使用OpenCV播放视频,几乎与显示图片一样简单,只要加一个死循环和一个退出循环的事件就OK了。本例子实现了两种视频播放方式:读取视频文件和摄像头输入流播放。
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
VideoCapture cap;
if(argc == 1)
cap.open(0);
else if(argc == 2)
cap.open(argv[1]);
else
{
cout << "input parameter error." << endl;
exit(1);
}
if(!cap.isOpened()) return -1;
Mat frame;
namedWindow("edges", 1);
for(;;)
{
cap >> frame;
if(frame.empty())
{
cout << " < < < Video over! > > > " << endl;
break;
}
imshow("edges", frame);
if(waitKey(30) >= 0)
{
cout << " < < < Video over! > > > " << endl;
break;
}
}
return 0;
}