OpenCV VideoCapture部分框架腐败

时间:2017-06-29 17:08:49

标签: c++ opencv

我最近开始将OpenCV用于涉及阅读视频的项目。我按照在线教程进行视频阅读,视频似乎没有任何问题。但是,当我显示视频中的任何帧时,最右边的列似乎已损坏。这是我用来读取和显示第一帧的代码。

VideoCapture cap("6.avi");
Mat frame;
cap>>frame;
imshow("test",frame);
waitKey(0);

这导致了一个框架,除了最右边的列之外,大部分看起来都很好。请参阅here

在显示视频或帧之前,我没有对其进行任何修改。任何人都可以帮助弄清楚为什么会这样吗?

注意:我正在运行Ubuntu 14.04,OpenCV版本2.4.8

可以找到完整视频here

1 个答案:

答案 0 :(得分:1)

您的代码对我来说很好。你确定框架已损坏吗?调整大小,最大化,最小化“测试”GUI窗口,以查看右边缘是否仍然损坏。有时在显示非常小的图像时,我已经看到GUI窗口的右边缘显示不正确,即使框架是正确的。您也可以尝试imwrite("test.png",frame)查看保存的图片是否仍然已损坏。

如果这没有用,那看起来就像是一个编解码器问题。确保您拥有最新版本的opencv,ffmpeg。

如果这仍然无效,则视频本身可能已损坏。您可以尝试使用ffmpeg

将其转换为其他格式