C++&Python&C# 三语言OpenCV从零开发(4):视频流读取

这篇具有很好参考价值的文章主要介绍了C++&Python&C# 三语言OpenCV从零开发(4):视频流读取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相关链接

C++&Python&Csharp in OpenCV 专栏

【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程(附带课程课件资料+课件笔记)

OpenCV 教程中文文档|OpenCV中文

OpenCV教程中文文档|W3Cschool

OpenCV基础教程——视频的读取与写入(超详细+附代码)

视频流读取

我之前写过一篇基于Python的,我现在重新写一次

Python+OpenCV 零基础学习笔记(4-5):计算机图形基础+Python相对文件路径+OpenCV图像+OpenCV视频

如果你想要一个简单的B站视频流下载器,这里推荐一个

哔哩下载姬downkyi_v1.6.1 下载

C++&Python&C# 三语言OpenCV从零开发(4):视频流读取,C++&Python&Csharp in OpenCV,c++,python,c#

如果想获取视频流,B站上面随便搜一下就可以

卓特视觉视频素材 B站账号

于我何方 B站账号

比如我这里下载一个视频素材

【4K】群山无版权视频素材-6

C++&Python&C# 三语言OpenCV从零开发(4):视频流读取,C++&Python&Csharp in OpenCV,c++,python,c#

C++

OpenCV基础教程——视频的读取与写入(超详细+附代码)


#include <opencv2/opencv.hpp>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include <opencv2/imgproc.hpp>  
#include<iostream>  
using namespace std;
using namespace cv;
int main()
{
    
    VideoCapture video("D:/workSpace/OpenCV/HellOpenCV/Resources/video/test.mp4");
    //video.open("");
    auto isOpen = false;
    Mat frame;



    if (video.isOpened()) {
        //读取第一帧视频
        isOpen = video.read(frame);
    }
    else {
        cout<< "不存在此视频" << endl;
    }

    while (isOpen)
    {   
        //不断的判断下一帧是否为空
        isOpen = video.read(frame);
        //如果为空则跳出循环
        if(frame.empty()){
            break;
        }
        imshow("C++", frame);
        int keyValue = waitKey(10);
        //27是ESC的ASCLL码,按下ESC退出
        if (keyValue == 27) {
            break;
        }
    }

    cout << "播放结束" << endl;
    //释放视频流
    video.release();
    
    //关闭所有窗口
    destroyAllWindows();
    return 0;
}

C++&Python&C# 三语言OpenCV从零开发(4):视频流读取,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

C++&Python&C# 三语言OpenCV从零开发(4):视频流读取,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#
C++&Python&C# 三语言OpenCV从零开发(4):视频流读取,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

CSharp

internal class Program
{
    static void Main(string[] args)
    {

        VideoCapture video = new("D:/workSpace/OpenCV/HellOpenCV/Resources/video/test.mp4");
        //video.open("");
        var isOpen = false;
        Mat frame = new Mat();
        if (video.IsOpened())
        {
            //读取第一帧视频
            isOpen = video.Read(frame);
        }
        else
        {
            Console.WriteLine("不存在此视频");
        }

        while (isOpen)
        {
            //不断的判断下一帧是否为空
            isOpen = video.Read(frame);
            //如果为空则跳出循环
            if (frame.Empty())
            {
                break;
            }
            Cv2.ImShow("CSharp", frame);
            int keyValue =Cv2.WaitKey(10);
            //27是ESC的ASCLL码,按下ESC退出
            if (keyValue == 27)
            {
                break;
            }
        }

        Console.WriteLine("播放结束");
        //释放视频流
        video.Release();

        //关闭所有窗口
        Cv2.DestroyAllWindows();
    }
}

C++&Python&C# 三语言OpenCV从零开发(4):视频流读取,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

Python

Python我们改改代码,试着输出一下灰度视频流

# %%
# 导入包
import cv2
import matplotlib.pyplot as plt
import numpy as np

# 导入视频
input_video = {}
# 下载好的视频文件
input_video['vc'] = cv2.VideoCapture('D:/workSpace/OpenCV/HellOpenCV/Resources/video/test.mp4')
# 判断是否读取成功
if input_video['vc'].isOpened():
    # Python语法,元组读取
    input_video['open'] = input_video['vc'].read()
else:
    input_video['open'] = False
    
# 循环帧读取,两个退出条件:视频播放完/输入'ESC'退出
while input_video['open']:
    open,frame = input_video['vc'].read()
    if frame is None:
        break;
    if open:
        # 我们先播放灰度图像
        gray = cv2.cvtColor(frame)
        # 打开一个名为result的窗口,播放帧
        cv2.imshow('result',gray)
        # 这个是特殊组合,waiteKey指每帧的时间,输入'esc'退出视频播放
        if cv2.waitKey(10) & 0xff == 27:
            break;
        
# 释放视频输入流
input_video['vc'].release();
# 关闭所有窗口
cv2.destroyAllWindows();

C++&Python&C# 三语言OpenCV从零开发(4):视频流读取,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#
这里图像显示有点问题,分辨率不对。我后面有空去网上找找解决方案

总结

详细的可以看这个博客,介绍的比较全面

OpenCV基础教程——视频的读取与写入(超详细+附代码)

经过这次代码书写,我发现确实,算子基本差不多,尤其是C++和Csharp,跑通了C++,Csharp也差不多就通了。Python简化的比较多,大致上也是调用算子。文章来源地址https://www.toymoban.com/news/detail-810731.html

到了这里,关于C++&Python&C# 三语言OpenCV从零开发(4):视频流读取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Opencv保存ESP32-CAM视频流

    Opencv保存ESP32-CAM视频流 esp32cam是一个很便宜的视频模组,可以用作监控等功能。此时就需要保存esp32的视频流,方便查看等操作,python代码如下 前置条件:视频流正常,已安装opencv

    2024年02月08日
    浏览(36)
  • OpenCV获取网络摄像头实时视频流

    参考文章: [常用工具] OpenCV获取网络摄像头实时视频流_opencv网络摄像头 [常用工具] OpenCV获取网络摄像头实时视频流_opencv网络摄像头_落痕的寒假的博客-CSDN博客 在使用OpenCv处理视频时,无论是视频文件还是摄像头画面,都要使用VideoCapture类来进行每一帧图像的处理。当我们

    2024年02月01日
    浏览(28)
  • 【精选】基于OpenCV的实时视频流车牌识别(源码&教程)

    近年来,智能交通系统(ITS)在我国应用日益广泛。作为ITS重要组成部分的自动车牌识别系统在交通流量检测、交通诱导控制、违章车辆监控等方面有着广泛的应用,是确保道路安全畅通的重要手段,也为统计有关资料,为管理者决策提供有效数字依据的重要途径。由于一般的识别系

    2024年01月23日
    浏览(35)
  • 基于OpenCv+Django的网络实时视频流传输(前后端分离)

    秋风阁——北溪入江流:https://focus-wind.com/ 秋风阁——基于OpenCv+Django的网络实时视频流传输(前后端分离) 使用OpenCv捕获摄像机画面后,我们有时候需要将画面显示在界面上。本博客基于Django的前后端分离模式,将视频流从后端读取,传送给前端显示。 在使用Django进行视频

    2024年02月08日
    浏览(32)
  • 树莓派学习:学习opencv+用opencv获取树莓派mjpg摄像头视频流

    目录 前提步骤 打开树莓派摄像头 查看是否有图像,登录游览器打开树莓派IP地址的8080端口 获取mjpg的视频流url 代码 先设定好mjpg的视频流的url 利用opencv库中的v2.VideoCapture类读取mjpg视频流   cv2.VideoCapture() 检查摄像头是否成功打开,如果没有,则打印错误消息并退出程序 

    2024年02月03日
    浏览(32)
  • 使用Flask+OpenCV实现浏览器/微信小程序的视频流传输

    前言 一、 Flask+浏览器实现 二、 Flask+微信小程序实现 三、Flask+uni-app小程序实现 后记 近期在做的东西涉及到实时视频的处理,碰到一些问题,因此将之记录下来,便于日后翻看,同时也希望能给遇到同样问题的小伙伴提供帮助。 实现代码如下: 分为 app.py 和index.html。 1. F

    2024年02月06日
    浏览(46)
  • VS+QT+Opencv使用YOLOv4对视频流进行目标检测

    对单张图像的检测,请参考:https://blog.csdn.net/qq_45445740/article/details/109659938

    2024年02月12日
    浏览(27)
  • 视频流识别---python

    在Python中实现预处理,需要用到一些常见的图像处理库,如OpenCV、PIL等。 首先,需要加载视频并读取视频帧。可以使用OpenCV库中的cv2.VideoCapture()函数读取视频,然后使用cv2.read()函数读取视频的每一帧。读取到的每一帧是一个numpy数组,可以对其进行各种图像处理操作。 以下

    2024年01月17日
    浏览(38)
  • C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示

    C++PythonCsharp in OpenCV 专栏 【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程(附带课程课件资料+课件笔记) OpenCV4 C++ 快速入门视频30讲 - 系列合集 OpenCV4 C++ 课程笔记 在上一章纠结过教程的选择之后,还是觉得老老实实从零开始学OpenCV,从OpenCV C++视频教程开始。 这

    2024年01月21日
    浏览(43)
  • WSL2通过OpenCV调用并展示本机摄像头的RTSP视频流

    本篇博客的由来如上图哈哈,WSL2 相关安装教程可以参考我之前的博客:Win11安装WSL2和Nvidia驱动 更多文章欢迎来我的博客小站看呀,会有更多的技术细节~ ubuntu上请执行 或者编译安装 如果报错 Could NOT find OpenSSL ,安装如下依赖即可解决 下载解压 EasyDarwin Easydarwin是国内团队开

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包