久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python讀取與保存圖片的exif信息

 cslwp 2022-03-23

Z-Jeff 于 2021-12-02 17:17:05 發(fā)布 2868 收藏 1

文章標(biāo)簽: 圖像處理

版權(quán)聲明:本文為博主原創(chuàng)文章,遵循CC 4.0 BY-SA 版權(quán)協(xié)議,,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明,。

本文鏈接:https://blog.csdn.net/Jeff_zjf/article/details/121680347

版權(quán)

圖片的exif文件格式中保存了很多信息,比如GPS經(jīng)緯度,,高度,,焦距等信息。

在圖片的屬性中可以看到這些信息:

我們可以使用python來(lái)進(jìn)行exif數(shù)據(jù)的讀取和保存,。

1. 首先安裝piexif

pip3 install piexif

2.exif數(shù)據(jù)讀取代碼

import piexif
from PIL import Image

# Read Image
fname = './1.JPG'
img = Image.open(fname)
exif_dict = piexif.load(img.info['exif'])

# Read exif data
longitude = exif_dict['GPS'][piexif.GPSIFD.GPSLongitude]
latitude = exif_dict['GPS'][piexif.GPSIFD.GPSLatitude]
altitude = exif_dict['GPS'][piexif.GPSIFD.GPSAltitude]
focal_length = exif_dict['Exif'][piexif.ExifIFD.FocalLength]
print('longitude:', longitude)
print('latitude:', latitude)
print('altitude:', altitude)
print('focal length:', focal_length)

數(shù)據(jù)輸出如下:

longitude: ((117, 1), (17, 1), (532029, 10000))
latitude: ((31, 1), (43, 1), (299847, 10000))
altitude: (44783, 1000)
focal length: (880, 100)

 PS:exif數(shù)據(jù)用的是分?jǐn)?shù)格式和度分秒格式,。

比如 ((117, 1), (17, 1), (532029, 10000))的含義是117/1度17/1分532029/10000秒,即117°17′53.2029″,。

(44783, 1000)的含義是44783/1000,,即44.783

3.exif數(shù)據(jù)修改與保存代碼

# Modify exif data
exif_dict['GPS'][piexif.GPSIFD.GPSLongitude] = ((180, 1), (17, 1), (532029, 10000))

# Save image with modified exif data
exif_bytes = piexif.dump(exif_dict)
img.save('1_copy.JPG', exif=exif_bytes)

我在項(xiàng)目中遇到的一個(gè)需求:

無(wú)人機(jī)航拍圖像分辨率太大,需要對(duì)圖像進(jìn)行縮放,,同時(shí)保留GPS數(shù)據(jù)(因?yàn)楹罄m(xù)算法需要GPS數(shù)據(jù)),。

如果用opencv來(lái)resize圖片再imwrite的話,會(huì)丟失GPS信息,,不可行,。可用如下的代碼:

import piexif
from PIL import Image

# Read Image
fname = './DJI_0001.JPG'
img = Image.open(fname)
exif_dict = piexif.load(img.info['exif'])

# Resize image
resize_img = img.resize((1920, 1080), Image.ANTIALIAS) 

# Save resized image with original exif data
exif_bytes = piexif.dump(exif_dict)
resize_img.save('1_copy.JPG', exif=exif_bytes)

參考:How to modify EXIF data in python - Stack Overflow

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多