您好,登錄后才能下訂單哦!
今天小編給大家分享一下怎么用python讀取圖片屬性信息的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
從照片里面獲取GPS信息。可交換圖像文件常被簡稱為EXIF
(Exchangeable image file format),是專門為數碼相機的照片設定的,可以記錄數碼照片的屬性信息和拍攝數據,EXIF信息不支持png,webp等圖片格式。
Python中使用ExifRead包讀取圖片的屬性信息,安裝方式為:
pip install exifread
使用exifread.process_file獲取圖像的信息:
img_path = r"bei_012744.jpg" f = open(img_path, 'rb') contents = exifread.process_file(f) f.close()
單步調試,contents內容如下:
GPS坐標轉換:
通過exifread獲取的經緯度信息格式通常是下面這樣的:緯度 [28, 56, 109097/5000] 經度 [112, 38, 436353/10000],轉換公式如下:
度 = 度 + 分/60 + 秒/3600
[28, 56, 109097/5000] = 28 + 56 / 60 + 109097/5000 / 3600 = 28.93939427777778
因此坐標轉換代碼如下:
def convert_gps(coord_arr): arr = str(coord_arr).replace('[', '').replace(']', '').split(', ') d = float(arr[0]) m = float(arr[1]) s = float(arr[2].split('/')[0]) / float(arr[2].split('/')[1]) return float(d) + (float(m) / 60) + (float(s) / 3600)
完整代碼:
import exifread img_path = r"bei_012744.jpg" f = open(img_path, 'rb') contents = exifread.process_file(f) f.close() lon = contents['GPS GPSLongitude'].printable # 經度 lon = convert_gps(lon) lat = contents['GPS GPSLatitude'].printable # 緯度 lat = convert_gps(lat) altitude = contents['GPS GPSAltitude'].printable # 相對高度 altitude = float(altitude.split('/')[0]) / float(altitude.split('/')[1]) print("GPSLongitude:", lon, "\nGPSLatitude:", lat, "\naltitude:", altitude)
結果:
GPSLongitude: 112.64545425
GPSLatitude: 28.93939427777778
altitude: 58.009
以上就是“怎么用python讀取圖片屬性信息”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。