GaryBradski&Adrian Kaebler写的学习OpenCV教程中介绍的视频播放函数是:cvCaptrue类来实现的。但是在使用的时候发现它对很多格式的视频都不支持,比如手机视频中常用的mp4格式;在网络上搜索用opencv读mp4格式视频的时候,发现很多介绍用ffdshow来弄,我尝试了一下,发现可以实现,但是很麻烦;偶然发现可以用VideoCapture类则可以轻松替代。
#include<highgui.hpp>
using namespace cv;
int main(int argc, char *argv[])
{
char* path1 = "F:/avi1.mp4";
cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE);
//CvCapture* capture1 = cvCreateFileCapture(path1);
VideoCapture capture1;
Mat frame;
capture1.open(path1);
while (1)
{
capture1 >> frame;
if (frame.empty())
{
break;
}
imshow("Example2", frame);
waitKey(30);
}
capture1.release();
waitKey(0);
cvDestroyAllWindows();
return 0;
}
亲测可用。