opencv - imread返回false大小

时间:2015-12-30 17:58:45

标签: c++ opencv imread

我的图像是720x1280。我尝试加载ans显示它。但我看到90度旋转图像(1280x720)。

我的简单代码是:

cout << "Size = " << imread(fileName).size() << endl;

结果是:

Size = [1280x720]

enter image description here

如何使用opencv加载并显示大尺寸图像?我使用opencv 2.4.10。

1 个答案:

答案 0 :(得分:2)

图像可能就是这样编码的。智能手机通常每次都以相同的方向编码图像,无论其如何保持,但会将元数据添加到图像中,以便查看程序可以按预期的方式显示图像。 OpenCV不会考虑此元数据。您可以自己旋转图像。 (如果图像上下颠倒,请使用1而不是0。)

cv::transpose(image, image);
cv::flip(image, image, 0);

如果您希望修改磁盘上的图像,则可以使用gimp。只需打开图像并保存/导出即可。 Gimp将在打开图像时使用元数据,但在没有图像的情况下重新编码图像。