代碼如下:
#include"stdafx.h"#include <stdio.h>#include <cv.h>#include <highgui.h>int main(){int i = 0; IplImage* img = 0; char image_name[25]; CvVideoWriter *writer = 0; int isColor = 1; int fps = 30; // or 25 writer=cvCreateVideoWriter("..\\out.avi",CV_FOURCC('X','V','I','D'),fps,cvSize(640,480),isColor); cvNamedWindow("vivi"); while(1) { sprintf(image_name, "%s%d%s", "..\\tutu\\image", ++i, ".jpg");img = cvLoadImage(image_name, -1);if(img == NULL)break;cvShowImage("vivi", img); char key = cvWaitKey(20); cvWriteFrame(writer, img); img = NULL;} cvReleaseVideoWriter(&writer); cvDestroyWindow("vivi"); return 0;}
很簡單的代碼。
這個程式,第一次用來跑的時候,很順利 成功 產生了 avi 視頻。
第二次跑的時候,就發生地址衝突了。沒能成功產生視頻檔案。
很鬱悶== 應該是 cvWriteFrame 這個地方有問題。。。
就這麼簡短,還真沒看出哪裡有問題來。
如果你恰好看到了,請告訴我撒~~~
=================
後記:
後來搜了好多,看到好多網友也說 opencv2.1 cvVideoWriter 有問題。
換成 opencv2.2 之後就OK了。。。
額 。。 還沒有安裝 2.2, 但是 貌似看到網上寫的, 2.2 的 debug版本 是 OK的, release 版本 也有問題。
就是說 220d.dll 是OK的, 220.dll 是有點問題的。
具體,用到的時候再解決吧。