【问题标题】:Videos captured from an iPhone camera appear to be rotated by 90 degrees by OpenCV? How do I get around this?从 iPhone 相机拍摄的视频似乎被 OpenCV 旋转了 90 度?我该如何解决这个问题?
【发布时间】:2020-01-06 07:35:15
【问题描述】:

我从 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;

【问题讨论】:

    标签: c++ opencv video computer-vision opencv4


    【解决方案1】:

    拉希特,

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

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

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

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

    希望这会有所帮助。

    饭菜

    【讨论】:

    • 感谢 Dinesh 的澄清,您的回复与我在 Windows 10 上看到的 MATLAB 完全相关。我认为 Apple 公开了包含此旋转标志详细信息的 API。
    猜你喜欢
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2023-01-12
    相关资源
    最近更新 更多