【2】opencv视频读取

int main()
{
VideoCapture cap; //创建存储视频文件或者设备的对象
cap.open("C:/Users/86136/Desktop/opencv学习/图片输出测试/test_2.mp4"); //打开视频文件或者视频设备

/*if (!cap.isOpened())
{
cout << "could not open the VideoCapture !" << endl;
system("pause");
return -1;
}*/

//判断打开成功与否

int k = -1;

while (true)
{
Mat frame;
bool ok = cap.read(frame);
if (!ok) //判断视频文件是否读取结束
break;
imshow("Example", frame); //从视频对象中获取图片显示到窗口
k = waitKey(33);                  //每33毫秒一张图片
if (k == 27) break;                //按下退出键:Esc
}

waitKey(-1);
return 0;
}

 

VideoCapture    存储视频文件或者设备的类

 

waitkey()返回值:

其实只要将返回值打印出来看一下就知道,waitkey函数的返回值(在按了按键的前提下)就是对应按键的ASCAII码,而且是区分大小写的。
由于ascaii码中没有ctrl和alt等按键,所以单独按了这些按键,waitkey函数不会返回。

这里,esc 为27

 

判断读取结束的常用代码:

bool ok = cap.read(frame);
if (!ok) //判断视频文件是否读取结束
break;

 

posted @ 2022-03-13 21:55  0MrMKG  阅读(78)  评论(0)    收藏  举报