0

我正在尝试使用 opencv 的 VideoWriter 编写视频。这是代码:

int main() {
    //read image from file:
    Mat image(cvLoadImage("temp.bmp"));
    //create videowriter (DivX codec):
    VideoWriter record("output.avi", CV_FOURCC('D','I','V','X'), 30, image.size(), true);
    for (int i=0; i<100; ++i) {
        //write frame to video:
        record<<image;
    }
}

这是我正在尝试编写的图像(temp.bmp): 输入

(我可以上传原始 bmp 文件,但即使使用此 png 结果也是相同的 - 见下文)。

但是当我打开视频(output.avi)时,我看到了: 在此处输入图像描述

视频为何如此偏移?我尝试了不同的编解码器并使用cvtColor (CV_BGR2xxx)将图像转换为不同的类型,但没有运气。

是时候报告错误了吗?

4

2 回答 2

0

我刚刚在 OpenCV 2.4.1 上测试过这个问题(之前我在 2.3.1 版上测试过),效果很好!似乎这是一个错误。

于 2012-06-29T17:28:40.317 回答
0

我遇到了和你一样的问题:

VideoWriter out_capture("video.avi",CV_FOURCC('M','J','P','G'), 30, RESULTS[0].size() ,true);

for(int i = 0 ; i < RESULTS.size() ; i++)
{
    Mat img;
    RESULTS[i].copyTo(img);

    if(img.empty())
        break;
    out_capture << img;
}

RESULTS是存储我所有图像的向量。

这是视频的一帧: 在此处输入图像描述

我想要的是这样的: 在此处输入图像描述

于 2014-04-01T14:54:24.217 回答