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



我想从智能手机图片中提取地理图坐标。我们所有的照片都进行了地理化,该信息嵌入了某个地方的标题中。是否有MATLAB或PYTHON功能可以告诉我图片地理坐标?我想编写一个可以计算两个图像之间距离的脚本,因此,如果我可以提取这两个照片的地理坐标,那么我将能够计算距离。谢谢

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

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

然后,要访问单个纬度和经度值(以度,几分钟,秒表示),您可以检查字段GPSLatitudeGPSLongitude

info.GPSInfo.GPSLatitude
info.GPSInfo.GPSLongitude

我建议您研究http://python-pillow.org

以下枕头文档为您提供了您要寻找的东西的起点。

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

您是否允许使用外部工具?

使用jpegsnoop或Exiftools提取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.

根据我的经验,Python不如jpegsnoop

AS NAN 提到,请确保从智能手机拍摄照片时GPS打开。

最新更新