OpenCV 基本操作之摄像头

版权声明: https://blog.csdn.net/qq_33835307/article/details/81449353

参考:  Opencv打开内置摄像头

  opencv中通过VideoCaptrue类视频进行读取操作以及调用摄像头,下面是该类的API。

1.VideoCapture类的构造函数:

 
  1. C++: VideoCapture::VideoCapture();

  2. C++: VideoCapture::VideoCapture(const string& filename);

  3. C++: VideoCapture::VideoCapture(int device);

功能:创建一个VideoCapture类的实例,如果传入对应的参数,可以直接打开视频文件或者要调用的摄像头。

参数:
filename – 打开的视频文件名。

device – 打开的视频捕获设备id ,如果只有一个摄像头可以填0,表示打开默认的摄像

 
  1. VideoCapture capture;//初始化一个VideoCapture实例,名字叫做capture

  2. capture.open("dog.avi");//利用初始化的capture,打开视频"dog.avi"

  3. capture.open(0);//利用初始化的capture,打开ID为0的摄像头

  4. capture.release();//关闭视频文件或者摄像头

VideoCapture::read

 
  1. C++: VideoCapture& VideoCapture::operator>>(Mat& image);

  2. C++: bool VideoCapture::read(Mat& image);

功能:该函数结合VideoCapture::grab()和VideoCapture::retrieve()其中之一被调用,用于捕获、解码和返回下一个视频帧这是一个最方便的函数对于读取视频文件或者捕获数据从解码和返回刚刚捕获的帧,假如没有视频帧被捕获(相机没有连接或者视频文件中没有更多的帧)将返回false。

从上面的API中我们会发现获取视频帧可以有多种方法 :

// 方法一
capture.read(frame);
 
// 方法二
capture.grab();
 
// 方法三
capture.retrieve(frame);
 
// 方法四
capture >> frame;

现在就常用两种:

Mat frame;   //定义Mat变量

capture.read(frame);

capture >> frame;

猜你喜欢

转载自blog.csdn.net/qq_33835307/article/details/81449353