从 iPhone 相机拍摄的视频似乎被 OpenCV 旋转了 90 度?我该如何解决这个问题?

Videos captured from an iPhone camera appear to be rotated by 90 degrees by OpenCV? How do I get around this?

我从 iPhone 拍摄视频并将每一帧从彩色转换为灰度,但是,视频在 OpenCV(4.1,C++)中似乎旋转了 90 度

同样的问题没有出现在 MATLAB 或 VLC 播放器上(当我检查时)

示例代码

   // frame
    Mat current_frame;
VideoCapture capture("file_name.mov");

// Check - video file does not open for reading
if (!capture.isOpened())
    throw "Error when reading steam_avi";
capture >> current_frame;

拉吉,

Phone 摄像机可以以四种可能的方向录制视频: 风景 - 左边的相机 风景 - 相机在右边 纵向 - 相机在顶部 纵向 - 摄像头在底部。

在每一种情况下,旋转标志都会被编码到视频中,解码器会遵守该标志并在读取时执行适当的旋转。我相信这样做是为了提高编码性能。

MATLAB 在 Windows 10 上绝对尊重这一点。

Windows 另一方面,7 不支持此标志,您会看到旋转的视频。由于 MATLAB 似乎使用 Windows 阅读框架,它也会在 MATLAB 中轮换。

希望对您有所帮助。

迪内什