我的图像是720x1280。我尝试加载ans显示它。但我看到90度旋转图像(1280x720)。
我的简单代码是:
cout << "Size = " << imread(fileName).size() << endl;
结果是:
Size = [1280x720]
如何使用opencv加载并显示大尺寸图像?我使用opencv 2.4.10。
答案 0 :(得分:2)
图像可能就是这样编码的。智能手机通常每次都以相同的方向编码图像,无论其如何保持,但会将元数据添加到图像中,以便查看程序可以按预期的方式显示图像。 OpenCV不会考虑此元数据。您可以自己旋转图像。 (如果图像上下颠倒,请使用1而不是0。)
cv::transpose(image, image);
cv::flip(image, image, 0);
如果您希望修改磁盘上的图像,则可以使用gimp。只需打开图像并保存/导出即可。 Gimp将在打开图像时使用元数据,但在没有图像的情况下重新编码图像。