22 OpenCV 视频文件摄像头使用

22 视频文件摄像头使用

opencv知识点:

  • VIdeoCapture类

  • 读取视频/相机 - 三种方式

  • 读取视频帧 - 两种方式

本文所解决的问题:

  • 如何读取视频/相机?
  • 如何读取视频帧?

本课所解决的问题:

1.VideoCapture类以及视频读操作

引用文章:opencv学习—VideoCapture 类基础知识

opencv中,
关于视频的读操作是通过VideoCapture类来完成的;
关于视频的写操作是通过VideoWriter类来实现的。

读取视频/相机

当我们要读取一个视频文件,或者相机时,一般有3种方式

  • 从文件中读取视频

视频捕获对象创建以后,OpenCV将会打开文件并做好准备读取它。
如果打开成功,我们将可以开始读取视频的帧,并且cv::VideoCapture的成员函数isOpened()将会返回true。
(建议在打开视频或摄像头时都使用该成员函数判断是否打开成功)

VideoCapture capture(const string& filename);  // 从视频文件读取 
VideoCapture capture("D:/WorkSpace/Opencv/videos/mouse.mp4");  // 从视频文件读取 
  • 从摄像机中读取视频。

这种情况下,我们会给出一个标识符,用于表示我们想要访问的摄像机,及其与操作系统的握手方式。
对于摄像机而言,这个标志符就是一个标志数字

  • 如果只有1个摄像机,那么就是0
  • 如果系统中有多个摄像机,那么只要将其向上增加即可。
VideoCapture capture(0);       //从摄像机读取
  • 先创建一个视频捕获对象,然后通过成员函数open来设定打开的信息。
VideoCapture capture;
VideoCapture.open("D:/WorkSpace/Opencv/videos/mouse.mp4");  

读取视频捕获对象的视频帧

将视频帧读取到Mat矩阵中,一般有两种方式:

  • 一种是read()操作
  • 另一种是 “>>”操作。
Mat frame;  
cap.read(frame);             //读取方式一  
cap >> frame;                  //读取方式二  相当于输入流,cap流入frame中

2.对摄像头和视频进行读取

本文采取的方式为,

  • 先利用VideoCapture创建视频捕获对象
  • 再使用其方法read获取帧

现在我们对read方法进行解释

read
	抓取,解码并返回下一个视频帧
		共1个参数
			第1个参数 视频帧的输出图像

读取摄像头

这里简要说一下摄像头,本文只实现了对1个摄像头的读取

如果果只有1个摄像机,那么就是0,如果系统中有多个摄像机,那么只要将其向上增加即可

不过我们要注意一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值