从VideoCapture转换为Mat对象后,图像高度减半

时间:2018-11-08 14:21:18

标签: c++ image visual-studio opencv

我所做的操作非常简单:

我读取了一个尺寸为1280x720的.avi文件,将视频的一帧存储到Mat对象并显示了它。

这是代码的一部分:

VideoCapture capL;
capL.open("F:/renderoutput/cube/left.avi");
Mat frameL;
cout << capL.get(CAP_PROP_FRAME_WIDTH) << ", " << capL.get(CAP_PROP_FRAME_HEIGHT) << endl;

for (;;)
{
    capL.read(frameL);
    cout << frameL.size() << endl;
    if (frameL.empty())
        break;

    imshow("Output", frameL);
    waitKey(200);
}
......

但是capL和frameL的尺寸并不相同,前者是1280x720,后者是1280x360。为什么会这样呢?我在Visual Studio中使用OpenCV 3.3.1已有很长时间了,有一天这种情况发生了。

1 个答案:

答案 0 :(得分:0)

视频很可能是隔行扫描的。因此,每一帧只有一半的高度。

enter image description here