从 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 中轮换。
希望对您有所帮助。
迪内什
我从 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 中轮换。
希望对您有所帮助。
迪内什