python-PIL读取图片出现自动旋转的问题


参考:Python - PIL读取图片出现自动旋转的解决方案

1. 原因

  1. 采用电子设备拍摄照片时,如手机、相机等,由于手持朝向的不同,拍摄的照片可能会出现旋转 0、90、180、270 角度的情况,其 EXIF 信息中会保留相应的方位信息.
  2. 有些情况下,电脑上打开显示照片是正常的,但在用 PIL 或 OpenCV 读取图片后,图片出现旋转,且读取的图片尺寸也可能与直接在电脑上打开的尺寸不同的问题.

2. 解决方案

  1. 对此,需要在读取图片时,同时解析图片的 EXIF 中的方位信息,将图片转正,再进行后续的其他操作.

原代码:


from PIL import Image, ImageOps

 img = Image.open(img_path)

修改后:


from PIL import Image, ImageOps

 img = Image.open(img_path)
 img = ImageOps.exif_transpose(img)

文章作者: lilso
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 lilso !
  目录