1. 程式人生 > >從讀取視訊程式比較opencv1.0與2.0以上版本

從讀取視訊程式比較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