我的计算机上有一个图像,其尺寸宽度= 1932,高度= 2576。它是用智能手机制作的,并使用“jpeg”格式。
如果我用我喜欢的任何工具打开图像,它就会正确显示。
我试图用python打开它:
from PIL import Image
img_in = Image.open(input_image_path)
不幸的是,在python中,它的尺寸总是宽度= 2576,高度= 1932。它会永远发生,我可以解决它,但似乎只有我的一些图像发生。图像始终顺时针旋转。
我是否使用了open-function错误或者我如何解决这个问题?
非常感谢。
此致
凯文
- 编辑 -
解决方案:
1)请阅读接受的答案
2)以下代码可用于避免此问题:https://stackoverflow.com/a/11543365/916672
答案 0 :(得分:1)
当您使用智能手机和风景照片拍摄人像照片时,两者都将使用相同的坐标系统完成,即相对于手机中成像传感器的方向。
然而,手机的陀螺仪检测到设备的旋转,因此它“知道”它是肖像还是风景图片。此信息保存在JPEG的元数据中。
显示图像的软件通常会评估此信息以相应地旋转图片。在图像编辑软件中,通常会询问您是否要将旋转应用于图片(例如,Gimp执行此操作)。
但是,图像处理库通常完全忽略此信息。它们只访问图像像素,并按照它们存储的顺序访问它们。正如您所看到的,python映像没有任何问题,但如果有一个接口也可以读取此信息,那么您会感兴趣,因此您可以相应地处理它。