Mapillary命令行图像上载程序

mapillary-tools的Python项目详细描述


用于将离散图像上载到Mapillary的命令行工具。 不支持视频。在

重写

这是对官方地图工具的一部分重写: https://github.com/mapillary/mapillary_tools

官方的Mapillary工具被破坏了,因为python2已经死了。少校 发行版已经从标准安装中删除了python2。 2018年5月,有人要求提供一个官方的Python 3端口,但没有 到目前为止。在

快速浏览一下官方代码,就会发现它不值得移植。 很明显,这段代码是由许多不同的人编写的 了解Python,然后把管道粘在一起,让它看起来像一条 应用程序。它还引入了太多的依赖关系,比如一个完整的图像 操纵库,2个不同的Exif库(其中一个是自定义补丁) 还有一个高级密钥库。在

重写的代码使用python3和一些外部库。在

此代码不会更改图像文件,也不会复制它们。 所有数据和内务管理信息都保存在一个小文件中 每个图像。这使您的磁盘更精简,备份更小。侧车档案 包含JSON,因此调试很容易。在

使用

  1. 安装:

    pip install mapillary-tools
    
  2. 授权:这将提示您输入Mapillary密码:

    ^{pr2}$

    这一步只需要一次。您的凭据现在存储在文件中 ~/.config/mapillary/configs/<CLIENT_ID>。对这个文件保密。 Mapillary凭据未过期。在

  3. 预处理图像:

    mapillary_process.py ~/Pictures/Mapillary/*.jpg
    

    这一步从你的图像中提取GPS数据并将其存储在sidecar文件中。在

  4. 上传图片:

    mapillary_upload.py ~/Pictures/Mapillary/*.jpg
    

    脚本会记住哪些图像已成功上载。如果你运行 在相同的图片上再次上传脚本,已经上传的图片将不再上传 再次上传。在

  5. 清理:

    mapillary_process.py --clean ~/Pictures/Mapillary/*.jpg
    

    删除所有侧车文件。注意:这将清除所有关于 已上载的文件。在

使用“-h”运行脚本以查看更多选项。在

视频

此软件不支持视频。在

要将视频文件拆分为图像,请使用ffmpeg,然后使用exiftool设置exif 时间戳。在

建议的工作流程:

mkdir -p /tmp/frames
# extract I-frames for better clarity
ffmpeg -i ~/Videos/dash.mp4 -vf "select='eq(pict_type,PICT_TYPE_I)'" -vsync vfr -frame_pts true /tmp/frames/%08d.jpg
# figure out the start time and frame rate
ffprobe -v quiet ~/Videos/dash.mp4 -print_format json -show_streams
# set the same start time on all files
exiftool '-AllDates=2020:01:01 00:00:00' /tmp/frames/
# increment time according to frame number
exiftool '-AllDates+<0:0:${FileName;$_=substr($_,0,8)/30}' /tmp/frames/

参见:

GPS跟踪

此软件不支持与GPS轨迹同步。在

要将图像同步到GPS轨迹,请使用exiftool。在

建议的工作流程:

exiftool -geotag=track.gpx /tmp/frames

请参见:https://exiftool.org/geotag.html

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何运行一个在播放歌曲的同时创建和更改UI的方法?   eclipse错误:无法找到或加载主类Java,因为类文件anme和类名不同?   两个数字相加得到一个值的java算法   java我可以更改字符串吗?   java Hibernate 5.2:以编程方式从其他jar加载映射   java如何访问随机跳转到固定位置的二进制文件   java是解析器实现中文档的功能   Javasocket的两端齐平   java查找将两个非常大的整数之和除以相等块的步骤   java如何在Restlet中调用带超时的异步HTTP客户端   java如何从servlet请求将hashmap传递给jsp。塞塔提布特   java Spring MVC HTTP状态500–内部服务器错误,Servlet。servlet[dispatcher]的init()引发异常   java即使没有alpha通道,如何将PNGFiles加载为ARGB_8888?   java将subscribe的返回类型映射到其他类型   javascript如何在安卓 WebView中启用longpress操作下载图像?   java将字符串作为hashmap值的一部分添加到StringList中   JavaSpringAOP:代表类型声明其他方法或字段   Java将二进制序列转换为字符   java使用ApachePOI获取最后一行值   为什么要在FPS(每秒帧数)跟踪器中添加时间?(爪哇)