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

标签 opencv

这是我使用 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
}

关于opencv - 在 Ubuntu 上使用 OpenCV 2.4.1 从图像创建视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11131770/

相关文章:

python - Python 中二维图像的非均匀采样

Ubuntu 网络摄像头 (Logitech C270) 上的 Opencv 错误捕获 -> HIGHGUI 错误 : V4L/V4L2: VIDIOC_S_CROP

c++ - 如何计算二值图像上的白色物体?

c++ - 有没有办法使用 OpenCV 来均衡每个样本图像 16 位的直方图?

c++ - 使用 OpenCV 的 MLESAC 而不是 RANSAC

c++ - C++ OpenCV 2.3 中缺少 MoveWindow()

python - 根据图像 numpy 数组中饱和度和值的色调值计算颜色可见性

python - 带有 GoPiGo 的错误库 Raspbian

python - 无法将像素以正确的形状从 cv 代码传输到 cv2 代码

python-3.x - 如何在Python中使用线程调用HTTP API