微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Ubuntu上使用OpenCV 2.4.1从图像创建视频

这是我使用OpenCV从图像创建视频的示例程序.
但我的输出视频无法正常工作并发生错误并声明“无法解复用流”
请帮忙.
#include<cv.h>
  #include<highgui.h>
  #include<cvaux.h>
  #include<cxcore.h>

  int main()
{
    //CvVideoWriter *writer = 0;
    int isColor = 1;
    int fps     = 25;  // or 30
    int frameW  = 320; // 744 for firewire cameras
    int frameH  = 240; // 480 for firewire cameras
    CvSize size;

    size.width = frameW;
    size.height = frameH;
    CvVideoWriter *writer = cvCreateVideoWriter(
            "data3.avi",CV_FOURCC('M','J','P','G'),fps,size);
    IplImage* img = 0; 
    img=cvLoadImage("IMG_0157.JPG");
    for(int counter=0;counter < 3000;counter++)
    {
    cvWriteFrame(writer,img);      // add the frame to the file
    }
    cvReleaseVideoWriter(&writer);
    return 0;
}
您可以尝试不同的FOURCC代码.其中一些不受OpenCV的正确支持,一些是多媒体应用程序.拥有一个适用于OpenCV和您最喜欢的视频播放器的是一个试验和错误的问题.

您可以尝试的方法:使用VLC(如果您不使用它).它是那里最强大的球员之一.

如果您只想在OpenCV中显示/处理一系列图像作为视频,您可以使用VideoCapture的未记录功能:加载一系列图像.

示例在C中,但您可以轻松将其转换为C.

// pics are a sequence of Pictures001.jpg,PicturesS002.jpg,etc
cv::VideoCapture cap("path/to/my/Pictures%03d.jpg");

cv::Mat frame;

for(;;)
{
    cap >> frame;
    if(frame.empty())
       break;

    // do some processing
}

原文地址:https://www.jb51.cc/ubuntu/349168.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐