手机或者相机拍摄照片后,传到电脑中,使用PIL读取时有时会发生旋转:
查看两类图像的具体属性,发现仅有EXIF值有差异


通过查阅资料发现:EXIF代表了图像的方位信息,包含旋转0°、90°、180°和270°;
在读取这些图像时读取到的为原始数据,并未判断EXIF值,可能导致发生异常旋转,对于这种情况利用可以利用PIL读取exif中的orientation信息,然后根据这个信息将图片转正后,再进行后续操作,具体如下:在这里插入代码片

        try:for orientation in ExifTags.TAGS.keys():if ExifTags.TAGS[orientation] == 'Orientation': breakexif = dict(im._getexif().items())if exif[orientation] == 3:im = im.rotate(180, expand=True)elif exif[orientation] == 6:im = im.rotate(270, expand=True)elif exif[orientation] == 8:im = im.rotate(90, expand=True)except:pass

rotate中的“expand = True”是将图片尺寸也进行相应的变换。如果不加这句,则size不变。
即可解决翻转问题

python 读取图像发生自动旋转的原因相关推荐

  1. 图像处理基础 || (一) python 读取图像的常用方式

    python 读取图像的常用方式 图像的读取与保存是图像处理或计算机视觉领域中最基本的操作,python中有众多的库支持图像的读取.显示与存储,常用的库包括 matplotlib.skimage 和 ...

  2. python读取图像的几种方式

    python读取图像的几种方式 本文介绍几种基于python的图像读取方式: 基于PIL库的图像读取.保存和显示 基于opencv-python的图像读取.保存和显示 基于matplotlib的图像读 ...

  3. python读取图像的exif信息

    python读取图像的exif信息 python 读取图像的exif信息 import exifread PIL函数实现 python 读取图像的exif信息 前几天用PYQT做了一个工具,打开图片发 ...

  4. vs下载python最后一点很慢-python读取大文件越来越慢的原因与解决

    背景: 今天同事写代码,用python读取一个四五百兆的文件,然后做一串逻辑上很直观的处理.结果处理了一天还没有出来结果.问题出在哪里呢? 解决: 1. 同事打印了在不同时间点的时间,在需要的地方插入 ...

  5. python读取图像数据流_【NUKE教程】Nuke Python 获取图像数据

    通过python有两种方式读取图像的像素数据: 创建分析图像的节点(比如,MinColor, CurveTool),执行,然后读取其结果的knob数值 sample方法可以直接抽样节点的像素. 使用C ...

  6. python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式

    本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...

  7. python读取图像并相加_python给图像加上mask,并提取mask区域实例

    python对图像提取mask部分: 代码: #coding:utf-8 import os import cv2 import numpy as np def add_mask2image_bina ...

  8. python读取图像的几种方法

    方法一:利用PIL中的Image函数,这个函数读取出来不是array格式 这时候需要用 np.asarray(im) 或者np.array()函数 区别是 np.array() 是深拷贝,np.asa ...

  9. python读取图像的方法总结

    以读取下面的图片为例:(其中前两种方法是我自己常用的方法) 1. 利用python图像处理类库PIL(Python Imaging Library)中的Image函数. import numpy as ...

最新文章

  1. COOKIE和SESSION关系和区别
  2. 深入基础(一)模块化
  3. Android 点击应用外的Url拉起应用
  4. proxy connect abort处理方法_Java代理设计模式(Proxy)的几种具体实现
  5. UVA 11426 GCD-Extreme(II) ★ (欧拉函数)
  6. 配置maven环境变量cmd控制台提示:mvn不是内部或外部命令,也不是可运行的程序或批处理文件...
  7. 工业互联网白皮书_发布|《工业互联网平台安全白皮书(2020)》发布
  8. 关于QueryRunner数据查询以及常用方法
  9. 软考信息安全工程师考试历年真题汇总及试题分布统计
  10. python中head_Python(Head First)学习笔记:二
  11. 万字详解自动驾驶定位技术
  12. 计算机机房岗位管理制度,机房管理规定-机房管理制度.doc
  13. Java项目集成工作流引擎解决方案及实例展示(前后分离版)
  14. 光纤跳线接口_如何为SFP光模块搭配对应的光纤跳线?
  15. Martin Fowler微服务论文--译文
  16. QueryDSL 自定义返回结果集类型
  17. Win10下用SCP命令免密码上传、下载阿里云服务器上的文件
  18. Mysql中的七种常用查询连接详解
  19. WPS word表格中的神秘的底色
  20. php简单的商城系统,DouPHP轻量级商城管理系统

热门文章

  1. 史上最全桥梁主动防撞预警系统通航净高系统实施方案,花30分钟让您秒变专家
  2. Linux系统清理缓存方法
  3. 【嘉立创EDA】复合焊盘的引线居中对齐,typc接口引线对齐方法
  4. 一睹为快!阿里内部绝密爆款设计模式进阶宝典到底有何魅力?
  5. 网页看板娘 js版(论坛娘、博客娘。总之就是梦娘 V (-1) 代码
  6. MyEclipse网站服务器,myeclipse配置web服务器
  7. Java 可变参数基本使用
  8. slam十四讲ch4
  9. 听Sensoro讲iBeacon如何定位
  10. c# python_从C#到Python —— 谈谈我学习Python一周来的体会