代码如下:
#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 是有点问题的。
具体,用到的时候再解决吧。