关键词:Agisoft Metashape
PhotoScan
Python module
库
日期:4/6/2021 - 5/6/2021
1. Metashape脚本在客户端中调试很费劲
用Agisoft Metashape (原名PhotoScan)好多年了,一开始只是各种界面操作,后来慢慢地用到了它的API,自己写脚本实现某项功能。然而,一直困扰我的一个问题是:
如何方便地在Metashape中调试脚本?
以前每次都在
Sublime
中写代码,然后用Metashape
中的run script
工具运行代码,只要报错,就很难调试,因为没有设置断点的功能,导致我每次都要各种print()
,一点一点的分析;很多时候也采用直接在
console
中直接粘贴代码,分析哪里可能出错。但一方面得保证语句的缩进格式,另一方面不得不一行一行地粘贴和运行;后来发现Metashape其实集成了
Ipython
模块,在Tools
-Preference
-Advanced
中勾选enable rich python console
即可(图1)。但即使这样,依然有非常多的不便之处,不适合较长代码的调试工作
2. Metashape的独立python模块
一次偶然的时间,我在网上发现,Metashape其实提供了一个
stand-alone
python 模块(下载)即类似于Numpy
之类的,可以独立地使用(图2)。那如果安装上这个模块,我就不必非得在Metashape客户端调试代码了,直接在任意python IDE中(比如 pycharm)中调试就好了。
我大致按照这个流程操作,竟然失败了,后面发现其中有两个重要的坑,提醒大家注意:
目前仅仅支持 python 3.5, 3.6, 3.7, 3.8
,不支持python 3.9
哦,因为下载的python 3.9所以总是报错,后来注意到.whl
文件名才意识到这个问题。建议大家安装python 3.8
;
我用的是Windows系统,但是在运行 python3.exe -m pip install Metashape-1.7.1-cp35.cp36.cp37.cp38-none-win_amd64.whl
这句话时没有反应。经查看python安装目录后发现,并没有python3.exe
,所以应当采用python.exe
替代。避免这两个坑之后,应该就能安装成功了。
可以检查一下Python的安装目录下的
...PythonPython38Libsite-packages
,是否有Metashape文件夹及相应文件存在。
但是,安装成功并不代表能用!因为还需要进行激活,通过
import Metashape.Metashape as Metashape
语句测试发现,尚无license key
(图3),毕竟这是一个商业软件,人家是要赚钱的。所以需要采用语句
Metashape.License().activate("AAAAA-BBBBB-CCCCC-DDDDD-EEEEE")
进行激活。我采用以前购买的Photoscan
的激活码进行激活,却被报告已被使用(图4);而使用网上找的激活码激活,却被报告无效图5)。看来,我不得不购买一个激活码了!哎,人穷志气短,想办法筹钱去了。
如果后面搞成功了,再来更新吧。