opencv入门的那本经典教材《学习opencv》上关于读取视频代码是基于1.0版本写的,笔者在2.4.9版本上改写了一下。
//《学习opencv》基于1.0版本读取视频源代码
#include"highgui.h"
int main(int argc, char**argv)
{
cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE);
CvCapture* capture = cvCreateFileCapture("c++.avi");
IplImage* frame;
while (1)
{
frame = cvQueryFrame(capture);
if (!frame)
break;
cvShowImage("Example2", frame);
char c = cvWaitKey(33);
if (c == 27)
break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("Example2");
}
//笔者改写的代码,运行在2.4.9版本
#include"opencv2/highgui/highgui.hpp"
using namespace cv;
int main()
{
namedWindow("Example2", CV_WINDOW_AUTOSIZE);
VideoCapture capture("c++.avi");
Mat frame;
while (1)
{
capture >> frame;
if (!frame.data)
break;
imshow("Example2_avi", frame);
char c=waitKey(33);
if ( c== 27)
break;
}
return 0;
}
代码较1.0版本代码更加简洁易懂