从读取视频程序比较opencv1.0与2.0以上版本

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版本代码更加简洁易懂
--------------------- 
作者:曾经的张 
来源:CSDN 
原文:https://blog.csdn.net/qq_27389855/article/details/51693618 
版权声明:本文为博主原创文章,转载请附上博文链接!

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版本代码更加简洁易懂
 

转:https://blog.csdn.net/qq_27389855/article/details/51693618

猜你喜欢

转载自blog.csdn.net/eric_e/article/details/85849869