【问题标题】:Merging of frames code is not giving output in opencv合并帧代码在opencv中没有给出输出
【发布时间】:2014-09-03 14:55:09
【问题描述】:

我正在尝试合并多个帧以获取视频作为输出。

我的代码:

double fps = 20;
IplImage *image;
CvSize size = cvSize(320,240);

image = cvLoadImage("image1.jpg",1);
CvVideoWriter *writer = cvCreateVideoWriter("Video from Images.mpeg",CV_FOURCC('M','P','E','G'),fps,size);
for(int counter=0;counter < 376;counter++)
{
    cvWriteFrame( writer, image);
}
image = cvLoadImage("imag2.jpg",1);

for(int counter=0;counter < 376;counter++)
{
    cvWriteFrame(writer,image);
}

cvWaitKey(0); /*wait till a key is pressed..*/
cvReleaseVideoWriter(&writer);
cvReleaseImage(&image);
}

结果视频是一个空文件,我无法打开它。我在这里做错了什么?

【问题讨论】:

  • 关闭} 比打开{ 多……
  • 哦!感谢您指出我在这里发生的错误,但不幸的是这不是解决方案。

标签: c opencv video merge frames


【解决方案1】:

根据您的代码,有几处可能会出错:

  • 所有cvLoadImage() 调用都可能失败并且未加载输入图像;
  • 如果加载的图片不是320x240,那就有问题了;
  • cvCreateVideoWriter() 可能失败了;
  • 如果第一张和第二张图片的尺寸不同,那就是另一个问题了;

要解决其中一些问题,请安全编码!始终检查调用的返回(代码未经测试):

IplImage* image = cvLoadImage("image1.jpg",1);
if (!image) {
    printf("!!! Failed cvLoadImage #1");
    return;
}

IplImage* image2 = cvLoadImage("imag2.jpg",1);
if (!image2) {
    printf("!!! Failed cvLoadImage #2");
    return;
}

if (image->width  != image2->width || 
    image->height != image2->height) {
    printf("!!! Images have different sizes!");
    return;
}

CvSize size;
size.width = image->width;
size.height= image->height;

double fps = 20;
CvVideoWriter *writer = cvCreateVideoWriter("Video from Images.mpeg", CV_FOURCC('M','P','E','G'), fps, size);
if (!writer) {
    printf("!!! Failed cvCreateVideoWriter");
    return;
}

for(int counter=0;counter < 376;counter++)
{
    cvWriteFrame( writer, image);
}

for(int counter=0;counter < 376;counter++)
{
    cvWriteFrame(writer,image2);
}

cvReleaseVideoWriter(&writer);
cvReleaseImage(&image);
cvReleaseImage(&image2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    相关资源
    最近更新 更多