c#判断视频是否能播放

c#判断视频是否能播放,第1张

一、简单的播放视频程序

1、读取视频文件

2、循环顺序读取视频中的每一帧

3、如何退出循环。

二、VideoCapture类

  Opencv中提供了专门 *** 作视频的接口类VideoCapture,VideoCapture类可以从文件或摄像头设备中读取视频,提供常用的三种构造方法如下:

VideoCapture::VideoCapture()

VideoCapture::VideoCapture(const string &filename)

参数filename表示视频文件的路径及名称;

VideoCapture::VideoCapture(int device)

device表示打开视频 *** 作索引号设置,如果是摄像头则设置为0。

三、VideoCapture方法

函数

功能

open

打开视频文件或视频获取装置

isOpened

判断视频文件是否正确,返回true则正确

release

关闭视频流文件

grab

抓住下一帧的视频文件或捕获设备

retrieve

解码并返回了视频帧

read

抓住,解码并返回下一个视频帧

get

返回指定视频类的相关参数信息

set

设置类信息的一个属性

read方法的输入是Mat的引用,这种方式得到的实际是VideoCapture解析得到的单帧图像的引用,当后续再读取帧时,Mat数据将会自动释放,自动更新成新的数据信息。

Mat复制构造函数和赋值 *** 作共享数据空间,当需要同时获取多帧图像源时,可以利用Mat提供的Mat.clone()方法进行复制 *** 作。

四、程序

参考:C#安装OpenCvSharp4的实 ***

1、程序C220807:从磁盘加载并在屏幕上播放视频的OpenCV程序。

using OpenCvSharp

using OpenCvSharp.Extensions

using System

using System.Collections.Generic

using System.Linq

using System.Text

using System.Threading.Tasks

namespace CvSharpDemo

{

class Program

{

static void Main(string[] args)

{

// 视频地址

string videoPath = @"e://opencv//1.avi"

// 打开视频文件

VideoCapture cap= VideoCapture.FromFile(videoPath)

//检查视频是否成功打开

if (!cap.IsOpened())

return

//取得帧速率

double rate = cap.Fps

bool stop = false

Mat frame=new Mat()

// 根据帧速率计算帧之间的等待时间,单位为ms

int delay = ((int)(1000 / rate))

//循环遍历视频中的全部帧

while (!stop)

{

//读取下一帧,如果有

if (!cap.Read(frame))

break

Cv2.ImShow("播放视频", frame)

//延时等待按键按下

if (Cv2.WaitKey(delay) >= 0)

stop = true

}

cap.Release()

}

编译OpenCV代码,用makeinstall命令默认将OpenCV装到/usr/local/目录下。在EclipseCDT中添加包含文件目录、库目录和所用到的OpenCV库文件即可。在项目属性->C/C++Build->Settings中设置编译参数。我使用的是GCCC++Compiler。在ToolSettings->GCCC++Compiler->Directories中添加OpenCV的头文件目:/usr/local/include然后,在ToolSettings->GCCC++Linker->Libraries中添加OpenCV的库文件目录:/usr/local/lib,并加入使用到的OpenCV库,不是库文件的名字libopencv_xxx.xxx,而是去掉开头和结尾,只留opencv_xxx,例如opencv_core等。设置之后就可以编译运行OpenCV程序了。

1、需要用到其他模块的函数,如:

for i in range(20) #循环次数

image=cv2.imread("D:\\picture\\%d.jpg"%(i))#路径自己选择。

2、可以先升级你的pip,另外看看你的版本是否匹配,包括py版本和32位64位。

3、关于python下使用opencv读取图像。首先需要导入opencv包,上面说的那个Ipython并没有opencv包,所以想使用的请先正确导入opencv包再说,至于怎么导入,先下载个opencv包,里面有关于python的opencv包。 

以下照片是关于Ipython的运行界面:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11756793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存