我想从智能手机图片中提取地理图坐标。我们所有的照片都进行了地理化,该信息嵌入了某个地方的标题中。是否有MATLAB或PYTHON功能可以告诉我图片地理坐标?我想编写一个可以计算两个图像之间距离的脚本,因此,如果我可以提取这两个照片的地理坐标,那么我将能够计算距离。谢谢
如果要使用MATLAB,则有一个称为imfinfo
的函数,可以从图像文件中提取EXIF数据并将其保存在结构中。您可以在GPSInfo
字段中找到GPS信息。示例:
info = imfinfo('filename.png');
info.GPSInfo
然后,要访问单个纬度和经度值(以度,几分钟,秒表示),您可以检查字段GPSLatitude
和GPSLongitude
:
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打开。