基于exif信息进行图片方向旋转修正
基于exif信息进行图片方向旋转修正
在处理标注数据的时候,发现标注框不吻合经过分析发现标注软件在读取图片时,读取了图片的exif信息,并对图片进行了旋转,所以标注的坐标时旋转后的坐标。
解决方法有两种,一是旋转坐标,二是旋转图片,这里展示图片旋转的方法:
# coding:utf-8
import glob
import json
import osimport PIL.ExifTags
import PIL.Image
import PIL.ImageOps
import imageio
import numpy as npimport cv2
def update_image_files():# 图片所在的文件夹image_dir = "chinese_ocr_rec"# 过滤出jpg图片image_files = glob.glob(os.path.join(image_dir, "*.jpg"))image_files.sort()for image_file in image_files:with open(image_file, 'rb') as f:# 打开图片image = PIL.Image.open(f)# 图片旋转image = apply_exif_orientation(image)# 使用opencv读取,去除exif信息img = cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2BGR)# 保存图片cv2.imwrite(image_file, img)# 此方法为标注软件里图片旋转的方法
def apply_exif_orientation(image):try:exif = image._getexif()except AttributeError:exif = Noneif exif is None:return imageexif = {PIL.ExifTags.TAGS[k]: vfor k, v in exif.items()if k in PIL.ExifTags.TAGS}orientation = exif.get('Orientation', None)if orientation == 1:# do nothingreturn imageelif orientation == 2:# left-to-right mirrorreturn PIL.ImageOps.mirror(image)elif orientation == 3:# rotate 180return image.transpose(PIL.Image.ROTATE_180)elif orientation == 4:# top-to-bottom mirrorreturn PIL.ImageOps.flip(image)elif orientation == 5:# top-to-left mirrorreturn PIL.ImageOps.mirror(image.transpose(PIL.Image.ROTATE_270))elif orientation == 6:# rotate 270return image.transpose(PIL.Image.ROTATE_270)elif orientation == 7:# top-to-right mirrorreturn PIL.ImageOps.mirror(image.transpose(PIL.Image.ROTATE_90))elif orientation == 8:# rotate 90return image.transpose(PIL.Image.ROTATE_90)else:return image
旋转后:
基于exif信息进行图片方向旋转修正相关推荐
- JS获取图片的EXIF信息+纠正图片方向
前端图片处理碰到的一个离奇 bug , 关于图片的 EXIF 信息,特地记录下来 . 然后使用一下代码可以获取Orientation信息,并纠正Orientation带来的图片旋转问题 // from ...
- 在WebPart中上传图片到SharePoint图片库,读取Exif信息到图片的自定义属性
SharePoint 图片库是个不错的东西,默认就有很多的视图,省了很多事,上传图片的界面其实功能也很强大,但是有时候并不是完全符合需求,有些东西你没有办法控制,所以有时候我们也在WebPart中上传 ...
- iOS 15 照片应用新改进:支持查看 EXIF 信息以及图片来源
iOS15更新了许多内容,例如照片中,我们可以查看一张照片的各种信息,例如显示图像格式.用于捕获它的相机的详细信息以及拍摄位置,不过目前测试版只能看到具有文本信息的照片才有"信息" ...
- 使用imageIO获取和修改图片的exif信息
看到这篇文章.喜欢的不得了-转来分享给大家! 一幅图片除了包含我们能看见的像素信息,背后还包含了拍摄时间,光圈大小,曝光等信息.UIImage类将这些细节信息都隐藏了起来,只提供我们关心的图片尺寸,图 ...
- java exif 语言编码_Java读取图片EXIF信息的代码
Java读取图片EXIF信息的代码 本文实例讲述了Java读取图片EXIF信息的方法.分享给大家供大家参考.具体分析如下: 首先介绍一下什么是EXIF,EXIF是Exchangeable Image ...
- speedoffice(PPT)图片怎么旋转方向
我们有时向PPT插入的图片方向不是正的,这时候就需要旋转图片?那么PPT里面图片怎么旋转呢?看看小编是怎么操作的吧. 方法1:选中图片后,我们可以看到图片边框出现旋转图标,光标放在图标上拖动鼠标即可旋 ...
- 【基本的办公软件有哪些】万彩办公大师教程丨图片EXIF信息修改工具
关于万彩办公大师的图片EXIF信息修改工具 对于智能手机,数码相机拍摄的照片,图片EXIF信息修改工具能够编辑和修改图片的EXIF信息(包括时间,描述等),是各行各业工作人员,特别是摄影师用来编辑记录 ...
- java exif 怎么获取属性_Java如何读取图片EXIF信息
Java如何读取图片EXIF信息 大家知道Java如何读取图片属性信息吗?下面小编为大家整理了Java读取图片EXIF信息的方法,希望能帮到大家! 首先介绍一下什么是EXIF,EXIF是Exchang ...
- 为什么图片会旋转,旋转角是什么
目前从事主营业务为在线设计的一家公司,其中某个业务为用户在线设计,然后将用户创建的设计下载渲染成图片.前几天,我在工作中遇到了一个奇怪的问题.某张用苹果手机拍摄的图片在浏览器中使用时是正着的,但是当下 ...
最新文章
- free 内存 注意点的事
- 【算法竞赛学习】资金流入流出预测-挑战Baseline_时间序列规则
- 160-PHP 文本替换函数str_replace(一)
- java——springmvc——注册中央调度器
- matlab作业5答案,《matlab作业题答案》.doc
- 理解《Deblurring Text Images via L0-Regularized Intensity and Gradient Prior》
- java bean jsp_jsp+java bean+servlet开发的mvc简易鞋城在线商城系统
- Angr安装与使用之使用篇(七)
- mysql的sql优化工具_DBA的五款最佳SQL查询优化工具,收藏了
- 易优(eyoucms)CMS网站搬家教程
- 虚拟机 无法 ftp服务器系统,访问不到虚拟机上的ftp服务器上
- oracle财务官方文档,oracle财务软件简明操作.docx
- Algorithms 学习笔记——1.1
- Windows漏洞修复报告
- 数论概论 第三章 勾股数组与单位圆
- android exo解码问题,android – exoplayer-自动更改质量不起作用(hls)
- 举报合肥极宝网络信息科技有限公司,骗子平台
- GTD时间管理 | 高效能人士的工作习惯
- CSDN,我的良师益友
- VIVADO报错:[opt31-67]之MIG ip核综合失败