我正在尝试使用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)时,我看到了这个:
为什么视频如此转变? 我尝试different codecs并使用cvtColor(CV_BGR2xxx)将图片转换为不同类型,但没有运气。
是时候报告错误了吗?
答案 0 :(得分:0)
我刚刚在OpenCV 2.4.1上测试过这个问题(之前我在2.3.1版本上进行了测试),它运行正常!这似乎是一个错误。
答案 1 :(得分: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
是存储我所有图像的矢量。
以下是视频的框架:
我想要的是: