【问题标题】:extracting geographic coordinates from a smartphone photo从智能手机照片中提取地理坐标
【发布时间】:2017-03-10 03:11:02
【问题描述】:

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

【问题讨论】:

  • 真的吗?我想了解更多详情
  • howtogeek.com/211427/… 就是一个例子,只要您为您的设备开启定位服务。坐标以度分和秒的形式给出,因此您将不得不使用在线距离计算器或使用 hasrsine 或 Vincenty 计算的 python 程序......后者比您需要的多,因为 gps 接收器可能不是很准确
  • 感谢您的帮助...看起来不错的资源

标签: python matlab geolocation geospatial photos


【解决方案1】:

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

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

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

info.GPSInfo.GPSLatitude
info.GPSInfo.GPSLongitude

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      你可以使用外部工具吗?

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

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

      读取包含地理标签的 txt 文件。最多可能有 7 个标签,不同的相机品牌使用不同的标签。其中,会选择geolocation(具体的名字我记不得了,但是名字中包含了经度和纬度)。

      你可以通过一个简单的while循环来做到这一点:

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

      根据我的经验,python 不如jpegsnoop

      正如 NaN 所述,当您从智能手机拍照时,请确保 GPS 已开启。

      【讨论】:

        猜你喜欢
        • 2012-06-18
        • 1970-01-01
        • 2016-07-09
        • 1970-01-01
        • 2013-07-06
        • 1970-01-01
        • 2013-03-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多