opencv中通过VideoCaptrue类对视频进行读取操作以及调用摄像头.常用的操作如下:
1、常用构造函数
1.VideoCapture类的构造函数:
C++: VideoCapture::VideoCapture()
C++: VideoCapture::VideoCapture(const string& filename)
C++: VideoCapture::VideoCapture(int device)
2、判断是否打开
cap.isOpened()
3、获取视频相关属性
cout << "视频相关信息如下" << endl;
cout << "宽度:" << cap.get(CV_CAP_PROP_FRAME_WIDTH) << endl;
cout << "高度:" << cap.get(CV_CAP_PROP_FRAME_HEIGHT) << endl;
cout << "总帧数:" << cap.get(CV_CAP_PROP_FRAME_COUNT) << endl;
cout << "帧率(fps):" << cap.get(CV_CAP_PROP_FPS) << endl;
4、逐帧读取
Mat frame;
cap >> frame;
5、判断是否完毕
frame.empty()
6、显示视频
imshow("readvideo", frame);
1 1 include <opencv2\opencv.hpp> 2 2 #include <iostream> 3 3 using namespace std; 4 4 using namespace cv; 5 5 int main() 6 6 { 7 7 cout <<CV_VERSION << endl; 8 8 VideoCapture cap("c://dev//res//out.avi"); 9 9 if (!cap.isOpened()) 1010 { 1111 cout << "视频文件打开失败" << endl; 1212 } 1313 cout << "视频相关信息如下" << endl; 1414 cout << "宽度:" << cap.get(CV_CAP_PROP_FRAME_WIDTH) << endl; 1515 cout << "高度:" << cap.get(CV_CAP_PROP_FRAME_HEIGHT) << endl; 1616 cout << "总帧数:" << cap.get(CV_CAP_PROP_FRAME_COUNT) << endl; 1717 cout << "帧率(fps):" << cap.get(CV_CAP_PROP_FPS) << endl; 1818 1919 Mat frame; 2020 while (1) 2121 { 2222 cap >> frame; 2323 if (frame.empty()) 2424 { 2525 break; 2626 } 2727 imshow("readvideo", frame); 2828 waitKey(20);//win10 vs2015返回值-1 2929 } 3030 getchar(); 3131 return 0;