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的运行界面:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)