2017-03-10 51 views
0

我想從智能手機照片中提取地理座標圖。我們所有的照片都是地理參考的,而且這些信息嵌入在某處的標題中。有沒有可以告訴我圖片地理座標的matlab或python函數? 我想寫一個腳本,可以計算兩個圖像之間的距離,所以如果我可以提取兩張照片的地理座標,那麼我將能夠計算出距離。 感謝從智能手機照片中提取地理座標

+0

真的嗎?我喜歡聽到更多細節 – Gang

+0

https://www.howtogeek.com/211427/how-to-see-exactly-where-a-photo-was-taken-and-keep-your-location-private/就是一個例子只要您打開設備的位置服務。座標以度和分秒爲單位給出,所以你將不得不使用在線距離計算器或者使用海森或者Vincenty計算的python程序......後者比你需要的方式多得多,因爲GPS接收器可能不是很精確 – NaN

+0

感謝男人的幫助...看起來像一個很好的資源 –

回答

1

如果你想使用MATLAB,有一個叫imfinfo的函數,它從圖像文件中提取exif數據並將其保存在一個結構體中。您可以在GPSInfo字段中找到GPS信息。例如:

info = imfinfo('filename.png'); 
info.GPSInfo 

然後,要訪問各個緯度和經度值(度,分,秒錶示),您可以檢查領域GPSLatitudeGPSLongitude

info.GPSInfo.GPSLatitude 
info.GPSInfo.GPSLongitude 
+1

感謝男人這真的幫助...這正是我正在尋找... –

0

你允許使用外部工具?

使用jpegsnoopexiftools來提取txt文件。我不記得確切的命令,但你可以很容易地找到它。這兩個工具都有可執行文件和代碼。就我個人而言,我更喜歡jpegsnoop。

system('jpegsnoop.exe image/path ... output_image.txt); 

閱讀包含地理標籤的txt文件。可能有多達7個標籤,不同的相機品牌使用不同的標籤。其中,將選擇地理定位(我不記得確切的名稱,但它包含名稱中的變形和變形)。

您可以通過一個簡單的循環,而做到這一點:

while (line = readline) ~= EOF 
     if line.startsWith (geo-tags) 
      print line %or add to cell array etc. 

我的經驗,蟒蛇是不是jpegsnoop好。

由於NaN提到,請確保gps在您從智能手機拍照時開啓。