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;