有些数据集会备注对图像做了如下处理:

Auto-orientation of pixel data (with EXIF-orientation stripping)。

应该如何理解这个处理到底是做了什么呢?

什么是EXIF?

EXIF用来规定除图片内容以外的附加详细信息的一种文件格式,比如图片的属性信息和拍摄数据。
称为可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif)。

Exif可以附加于JPEG、TIFF、RIFF等文件之中,但不支持png,webp等图片格式。

以JPEG为例,我们知道,JPEG是一种对图片进行编码和解码的标准。

但通常,一个JPEG文件不仅包含了图片内容的信息,还包含了该图片的属性信息和拍摄数据,比如图片拍摄地理坐标、时间戳、相机相关信息等。

EXIF规定了上述这些附加信息,应该以何种方式存储于JPEG等文件中。

这也是为何大家顾虑分享手机拍摄的原图会泄露个人隐私。

什么是EXIF orientation?

EXIF orientation是指代图片拍摄时相机的旋转信息。图片浏览器需根据这个参数,将图片自动旋转到正确方向。

为何需要有相机orientation的信息?

因为人们习惯看到的拍摄场景,是符合万有引力的、正向的图片,但相机只负责拍摄场景,并不能理解拍摄内容,所以需要将相机orientation信息记录下来,以便在图片解码时对图片方向进行补偿。

比如,下图中,左边是浏览器自动校正的图片,右边是实际上相机有旋转的拍摄的图片。(图片来源:http://dn-odum9helk.qbox.me/exif.png,http://dn-odum9helk.qbox.me/exif.png?imageMogr2/strip)

根据参考文章,上述图片的EXIF信息如下:

{"ColorSpace":{"val":"sRGB","type":3},"ExifVersion":{"val":"Exif Version 2.1","type":7},"FlashPixVersion":{"val":"FlashPix Version 1.0","type":7},"Orientation":{"val":"Right-top","type":3},"PixelXDimension":{"val":"3264","type":4},"PixelYDimension":{"val":"2448","type":4},"ResolutionUnit":{"val":"Inch","type":3},"XResolution":{"val":"72","type":5},"YResolution":{"val":"72","type":5}}

EXIF orientation tag的值是“right-top”,即图片拍摄时,相机的旋转信息是“right-top”,则通过查阅文档,可知,相机是逆时针旋转了90°的基础上拍摄的。

需知,并非所有的解码器都能自动纠正,有些解码器直接忽视了exif orientation信息,从而导致所显示的图片方向错误。

如此,就可以解答本文一开始的数据集预处理问题了。

以上。

直观理解图片的EXIF orientation相关推荐

  1. 图片上传被旋转,golang Exif 判断.jepg图片原始信息Orientation方向,并旋转,

    jepg图片上传后,换取的url在web的image标签上显示被旋转. 实例:iphone6ps竖拍图片原图上传显示 看图软件打开: 图片为正: 上传后,在image标签内显示为逆时针旋转90度. 此 ...

  2. [转]数码照片的JPG文件高级信息(用C#读取图片的EXIF信息)

    [转]数码照片的JPG文件高级信息(用C#读取图片的EXIF信息) 数码相机的照片很多,而且文件名也不直观,所以写了个程序批量改名,就是把文件名都改成相机的拍照日期,呵呵,谁知道拍照日期不是那么好取, ...

  3. C# 获取图片的EXIF 信息

    关于 EXIF 信息的介绍. 1  EXIF,是英文Exchangeable Image File(可交换图像文件)的缩写.EXIF是一种图像文件格式,只是文件的后缀名为jpg.EXIF信息是由数码相 ...

  4. “感受野”的直观理解

    感受野 定义 公式 定义 衡量某一层的特征图中某个像素点对应到原始输入的响应的大小区域: (另外一种定义) 卷积神经网络每一层的输出特征图上的像素点在原始图像上映射的区域大小 [直观理解]就是当前的每 ...

  5. 使用imageIO获取和修改图片的exif信息

    看到这篇文章.喜欢的不得了-转来分享给大家! 一幅图片除了包含我们能看见的像素信息,背后还包含了拍摄时间,光圈大小,曝光等信息.UIImage类将这些细节信息都隐藏了起来,只提供我们关心的图片尺寸,图 ...

  6. JS获取图片的EXIF信息+纠正图片方向

    前端图片处理碰到的一个离奇 bug , 关于图片的 EXIF 信息,特地记录下来 . 然后使用一下代码可以获取Orientation信息,并纠正Orientation带来的图片旋转问题 // from ...

  7. “损失函数”是如何设计出来的?直观理解“最小二乘法”和“极大似然估计法”

    [本文内容是自对视频:"损失函数"是如何设计出来的?的整理.补充和修正] 在大多数课程,尤其是帮助大家快速掌握深度学习的课程,损失函数似乎并不是一个需要额外关心的问题.因为它往往都 ...

  8. 获取图片的EXIF信息如此困难?

    对于数码相机所拍摄出的图片,Exif信息非常重要.Exif是英语Exchangeable Image File(可交换图像文件)的缩写,最初由日本电子工业发展协会(JEIDA --Japan Elec ...

  9. 2021.1.19 如何直观理解四元数

    如何直观理解四元数 1.首先提供一份很好的视频素材,来自B站的3Blue1Brown官方视频号,其中还有很多数学知识讲解很有用. https://www.bilibili.com/video/BV1S ...

  10. 用PYTHON画图 看股票/数字货币的趋势分析 带你直观理解指标 K线图

    用PYTHON画图 看股票/数字货币的趋势分析 带你直观理解指标 本文章将用PYTHON 画图 以比特币(BTC)为例 进行画图分析 (小白向) Pycharm平台编写 所用到的python库 imp ...

最新文章

  1. Rhel6-heartbeat配置文档
  2. 加州理工华人博士提出傅里叶神经算子,偏微分方程提速1000倍,告别超算!
  3. php zend框架入门,Zend Framework 入门——快速上手
  4. Codeforces Round #539 (Div. 1)
  5. Xcode12.5的自定义代码块的使用和函数注释(学会事半功倍)
  6. C# 读取文件内容/输出txt log
  7. 如何探测局域网中某台主机是否开机_「渲染」3Dmax 分布式渲染,局域网渲染,联机渲染教程...
  8. python click
  9. 梁宁:真正驱动你变强的,是痛苦
  10. GNS3全面详解系列-GNS3的前世今生
  11. 强化学习——From drew追寻Mitsuha的学习笔记
  12. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)签到题K Co-prime Permutation,L Let‘s Play Curling
  13. day9--Matplotlib--折线图
  14. mysql表的默认所有者_MySQL数据库基本管理-001
  15. 点餐系统数据库设计--SQL Server
  16. 轻松办公信息化 六大OA产品优劣点评
  17. 装系统缺少硬盘驱动_缺少操作系统-向我学习,请在今年备份您的硬盘!
  18. hp服务器修改bios设置,HP 服务器进入BIOS 按键总结
  19. 八卦掌桩功-定式八桩及相关资料
  20. 基于微信小程序的学院通知与文件分享系统app设计与实现-计算机毕业设计源码+LW文档

热门文章

  1. decimal 占位吗 负数_如何获取BigDecimal的负数
  2. 重构分析21: 被拒绝的遗赠(Refused Bequest)
  3. 荣耀v20屏幕测试软件,测量原来可以这么简单 荣耀V20 AR测量功能体验
  4. 华为 QOS服务质量基础知识总结
  5. ffmpeg将amr格式转成mp3格式
  6. html5防止屏幕休眠,防止休眠或屏幕关闭插件
  7. 江南大学计算机考研资料汇总
  8. 刨根究底字符编码之一——关键术语解释(上)
  9. 用elasticsearch和kibana 进行简单的实时数据报表分析
  10. android备份apk,无需手机助手,ABI帮你安装/备份安卓APK