从智能手机照片中提取地理坐标

extracting geographic coordinates from a smartphone photo

我想从智能手机图片中提取地理坐标。我们所有的照片都经过地理参考,并且该信息嵌入在 headers 某处。有没有可以告诉我图片地理坐标的 matlab 或 python 函数? 我想写一个可以计算两张图片之间距离的脚本,所以如果我可以提取两张照片的地理坐标,那么我就可以计算出距离。 谢谢

我建议调查 http://python-pillow.org

以下枕头文档为您提供了获取所需内容的起点。

https://pillow.readthedocs.io/en/latest/reference/ExifTags.html#exiftags-module

可以使用外部工具吗?

使用jpegsnoop or exiftools提取一个txt文件。我不记得确切的命令,但你可以很容易地找到它。这两种工具都有可用的可执行文件和代码。就个人而言,我更喜欢jpegsnoop。

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

阅读包含地理标签的 txt 文件。最多可能有 7 个标签,不同的相机品牌使用不同的标签。其中,将选择地理定位(我不记得确切的名称,但名称中包含经度和纬度)。

您可以通过一个简单的 while 循环来完成:

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

根据我的经验,python 不如 jpegsnoop

NaN所述,当您从智能phone.

拍照时,请确保GPS已开启

如果你想使用 MATLAB,有一个名为 imfinfo 的函数可以从图像文件中提取 exif 数据并将其保存在结构中。您可以在 GPSInfo 字段中找到 GPS 信息。示例:

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

然后,要访问单独的纬度和经度值(以度、分、秒表示),您可以检查字段 GPSLatitudeGPSLongitude:

info.GPSInfo.GPSLatitude
info.GPSInfo.GPSLongitude