Opencv step by step


刚买了本 “学习Opencv” 这本书,慢慢看起来。


一开始就是加载视频了。当然了,首先你要有个视频大笑

从这里下载了一个:


tan@ubuntu:~$ wget http://www.mysticfractal.com/video/fractogene.avi
--2014-10-27 22:33:14--  http://www.mysticfractal.com/video/fractogene.avi
正在解析主机 www.mysticfractal.com (www.mysticfractal.com)... 98.139.135.199
正在连接 www.mysticfractal.com (www.mysticfractal.com)|98.139.135.199|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 未指定 [video/x-msvideo]
正在保存至: “fractogene.avi”

    [                   <=>                 ] 1,038,884   21.6K/s   用时 61s    

2014-10-27 22:34:26 (16.5 KB/s) - “fractogene.avi” 已保存 [1038884]



然后依样画葫芦抄了一下代码(略加修改了下style):


AVIPlayer.cpp

#include <cv.h>
#include <highgui.h>

#define KEY_ESC 27
#define DELAY_TIME 33
int main(int argc,char **argv)
{

	cvNamedWindow("good_player", CV_WINDOW_AUTOSIZE);
	CvCapture *capture = cvCreateFileCapture(argv[1]);
	IplImage *frame;
	while (true) {
		frame = cvQueryFrame(capture);
		if (!frame)
			break;
		cvShowImage("good_player",frame);
		char c = cvWaitKey(DELAY_TIME);
		if (KEY_ESC == c)
			break;
	}
	cvReleaseCapture(&capture);
	cvDestroyWindow("good_player");
	return 0;
}



编译运行:


tan@ubuntu:~/cv$ g++ AVIPlayer.cpp -o AVIPlayer `pkg-config opencv --cflags --libs`

tan@ubuntu:~/cv$ ./AVIPlayer ../fractogene.avi 


效果图:



这个例子其实挺简单的啊。这个网站上面下载的avi也挺神奇。

不知道这个播放器性能怎么样,改天试试高质量的AVI。




原文地址:https://www.cnblogs.com/tanhangbo/p/4282617.html