直觀理解圖片的EXIF orientation

有些數據集會備註對圖像做了如下處理:

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信息,從而導致所顯示的圖片方向錯誤。

如此,就可以解答本文一開始的數據集預處理問題了。

以上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章