C++ 从iPhone摄像头捕获的视频似乎被OpenCV旋转了90度?我该怎么做?
我从iPhone上拍摄视频,并将每个帧从颜色转换为灰度,然而,在OpenCV(4.1,C++)中,视频似乎旋转了90度 同样的问题不会出现在MATLAB或VLC播放器上(当我检查时) 示例代码C++ 从iPhone摄像头捕获的视频似乎被OpenCV旋转了90度?我该怎么做?,c++,opencv,video,computer-vision,opencv4,C++,Opencv,Video,Computer Vision,Opencv4,我从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()) t
// 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;
拉希特
手机摄像头可以从四个可能的方向录制视频:
横向-相机在左侧
横向-相机在右侧
肖像-相机在顶部
肖像-相机在底部
在这些情况中的每一种情况下,旋转标志被编码到视频中,并且由解码器在读取时尊重该标志并执行适当的旋转。我相信这样做是为了更快的编码性能
MATLAB在Windows 10上绝对尊重这一点
另一方面,Windows 7不支持此标志,您将看到旋转的视频。由于MATLAB似乎使用Windows框架进行阅读,因此它也将在MATLAB中旋转
希望这有帮助
Dinesh感谢您的澄清,Dinesh,您的回答与我在Windows 10上看到的MATLAB完全相关。我认为苹果公开了API,其中包含了旋转标志的详细信息。