Python 图片库:图片转了90度?
Python Image Library: Image is turned by 90 degree?
我的计算机上有一张图像,其尺寸为宽度=1932 和高度=2576。它是用智能手机制作的,使用 "jpeg"-格式。
如果我使用我喜欢的任何工具打开图像,它就会正确显示。
我尝试用python打开它:
from PIL import Image
img_in = Image.open(input_image_path)
不幸的是,在 python 中,它的尺寸始终为 width=2576 和 height=1932。如果这总是会发生,我可以修复它,但它似乎只发生在我的一些图像上。图片总是顺时针旋转。
我是不是用错了 open-function 或者我该如何解决这个问题?
非常感谢。
此致
凯文
-- 编辑--
解决方案:
1) 请阅读接受的答案
2) 下面的代码可以用来避免这个问题:
当你用你的 smartphone 拍人像照片和拍风景照片时,两者都将使用相同的坐标系,即相对于你 [=20] 中成像传感器的方向=].
但是,phone的陀螺仪会检测设备的旋转,因此"knows"无论是纵向还是横向图片。此信息保存在 JPEG 的元数据中。
显示图像的软件通常会评估此信息以相应地旋转图片。在图像编辑软件中,通常会询问您是否要对图片应用旋转(例如 Gimp 就是这样做的)。
但是,图像处理库通常会完全忽略此信息。它们只访问图像像素,并且按照它们存储的顺序访问它们。如你所见,python成像没有任何问题,但是如果有一个接口也可以读取这些信息,你会很感兴趣,所以你可以相应地处理它。
我的计算机上有一张图像,其尺寸为宽度=1932 和高度=2576。它是用智能手机制作的,使用 "jpeg"-格式。
如果我使用我喜欢的任何工具打开图像,它就会正确显示。
我尝试用python打开它:
from PIL import Image
img_in = Image.open(input_image_path)
不幸的是,在 python 中,它的尺寸始终为 width=2576 和 height=1932。如果这总是会发生,我可以修复它,但它似乎只发生在我的一些图像上。图片总是顺时针旋转。
我是不是用错了 open-function 或者我该如何解决这个问题?
非常感谢。
此致
凯文
-- 编辑--
解决方案:
1) 请阅读接受的答案
2) 下面的代码可以用来避免这个问题:
当你用你的 smartphone 拍人像照片和拍风景照片时,两者都将使用相同的坐标系,即相对于你 [=20] 中成像传感器的方向=].
但是,phone的陀螺仪会检测设备的旋转,因此"knows"无论是纵向还是横向图片。此信息保存在 JPEG 的元数据中。
显示图像的软件通常会评估此信息以相应地旋转图片。在图像编辑软件中,通常会询问您是否要对图片应用旋转(例如 Gimp 就是这样做的)。
但是,图像处理库通常会完全忽略此信息。它们只访问图像像素,并且按照它们存储的顺序访问它们。如你所见,python成像没有任何问题,但是如果有一个接口也可以读取这些信息,你会很感兴趣,所以你可以相应地处理它。