C#使用OpenCvSharp4实现读取本地视频

 更新时间:2024年01月30日 09:54:56   作者:雪域迷影  
OpenCvSharp4库是一个基于.Net封装的OpenCV库,这篇文章主要介绍了C#使用OpenCvSharp4实现读取本地视频的详细教程,有需要的小伙伴可以参考下

OpenCvSharp4库

OpenCvSharp4库是一个基于.Net封装的OpenCV库,Github源代码地址为:https://github.com/shimat/opencvsharp,里面有关于Windows下安装OpenCvSharp4库的描述,如下图所示:

视频资源地址

视频资源可以到https://github.com/murtazahassan/Learn-OpenCV-in-3-hours/blob/master/Resources/test_video.mp4下载

新建一个C# .Net控制台程序OpenCVExample,并安装OpenCvSharp4和OpenCvSharp4.runtime.win两个NuGet包,或者直接安装OpenCvSharp4.Windows

C#示例代码

C#示例代码如下,如下代码展示了怎么使用VideoCapture和Cv2.ImShow读取本地视频:

using OpenCvSharp;
using System;

namespace OpenCVExample
{
    public class Program
    {
        /// <summary>
        ///  读取本地视频并逐帧显示
        /// </summary>
        public static void ReadLocalVideo()
        {
            VideoCapture cap = new VideoCapture("Resources\\test_video.mp4");   // 读取本地视频文件
            if (!cap.IsOpened())
            {
                Console.WriteLine("VidepCapture open failed");
                return;
            }
            while (true)
            {    // 如果cap初始化成功
                Mat frame = new Mat();
                if (cap.Read(frame))    // 抓取和解码,返回下一帧
                {
                    Cv2.ImShow("video Result", frame);
                    if (Cv2.WaitKey(1) == (int)('q'))   // 用户输入q键退出
                    {
                        break;
                    }
                }
                else
                {
                    // 当视频播放完毕,也退出
                    Console.WriteLine("there is no frame to read");
                    break;
                }

            }
        }

        static void Main(string[] args)
        {
            ReadLocalVideo();
           
            //Console.ReadKey();
        }
    }
}

运行结果

程序运行结果如下图所示:

到此这篇关于C#使用OpenCvSharp4实现读取本地视频的文章就介绍到这了,更多相关C# OpenCvSharp4读取视频内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#异步下载文件

    C#异步下载文件

    这篇文章主要介绍了C#异步下载文件的相关资料,需要的朋友可以参考下
    2016-01-01
  • Unity 实现框选游戏战斗单位的思路详解

    Unity 实现框选游戏战斗单位的思路详解

    这篇文章主要介绍了Unity 如何实现框选游戏战斗单位,本文简单介绍如何实现即时战略游戏中框选战斗单位的功能,需要的朋友可以参考下
    2022-12-12
  • C#/Java连接sqlite与使用技巧

    C#/Java连接sqlite与使用技巧

    无意中发现的,C#/Java连接sqlite与使用技巧。看了下,还挺不错的。与大家分享一下。
    2013-04-04
  • C#中可枚举类型详解

    C#中可枚举类型详解

    这篇文章主要介绍了C#中可枚举类型,IEnumerable和IEnumerator接口j及其泛型实现和迭代器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • C#中值类型和引用类型的区别深度分析

    C#中值类型和引用类型的区别深度分析

    这篇文章主要介绍了C#中值类型和引用类型的区别深度分析,以通俗易懂的语言形象化的分析了C#中值类型和引用类型的区别,对于深入理解C#数据类型有着不错的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • 无焦点获取条码枪返回值示例

    无焦点获取条码枪返回值示例

    这篇文章主要介绍了使用C#获取条码枪的返回值,实现了获取条码信息、条码是否有效、扫描时间、扫描码等参数
    2014-01-01
  • 关于C#版Nebula客户端编译的问题

    关于C#版Nebula客户端编译的问题

    这篇文章主要介绍了C#版Nebula客户端编译的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • C#中winform窗体实现注册/登录功能实例(DBHelper类)

    C#中winform窗体实现注册/登录功能实例(DBHelper类)

    在编写项目时,编写了一部分关于登录页面的一些代码,下面这篇文章主要给大家介绍了关于C#中winform窗体实现注册/登录功能(DBHelper类)的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • C#如何获取当前路径的父路径

    C#如何获取当前路径的父路径

    这篇文章主要介绍了C#如何获取当前路径的父路径问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 给c#添加SetTimeout和SetInterval函数

    给c#添加SetTimeout和SetInterval函数

    Javascript中的SetTimeout和SetInterval函数很方便,把他们移植到c#中来。
    2008-03-03

最新评论