注意:
CvVideoWriter *writer = cvCreateVideoWriter(out_video_name, -1, fps, cvSize(frameW,frameH), 1);
第二个参数改成-1,这样的话由电脑来决定编码的格式,不要指定什么MJPG之类的,不行,程序崩溃,害得我这个蒜片大的问题搞了几个小时。
#include "stdafx.h" void img2video() { IplImage *img; char image_name[200]; double fps = 25; int frameW = 320; int frameH = 240; static int count = 1; int num_frames = 150; const char *out_video_name = "F://source code//experiment//images2video//out.avi"; CvVideoWriter *writer = cvCreateVideoWriter(out_video_name, -1, fps, cvSize(frameW,frameH), 1); cvNamedWindow("mainWinvideo", CV_WINDOW_AUTOSIZE); if(NULL != writer) { while(count < num_frames) { sprintf(image_name, "F://source code//experiment//images2video//images//angleview_p01p02_followalways_a%d.jpg", count++); img = cvLoadImage(image_name,-1); // // IplImage *videoImage =cvCreateImage(cvSize(320,240),IPL_DEPTH_8S,3); // // cvCopy(img,videoImage,NULL); if (!img) { cout << "Could not load the images/n"; exit(0); } cvShowImage("mainWinvideo", img); char key = cvWaitKey(20); cvWriteFrame(writer,img); } } cvReleaseVideoWriter(&writer); cvReleaseImage(&img); cvDestroyWindow("mainWinvideo"); }