[Agisoft Metashape使用心得] 安装和使用MS独立Python模块

时间:2024-03-09 20:14:10

关键词: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)。但即使这样,依然有非常多的不便之处,不适合较长代码的调试工作

图1. Metashape中的ipython代码写作与调试
图1. Metashape中的ipython代码写作与调试

2. Metashape的独立python模块

一次偶然的时间,我在网上发现,Metashape其实提供了一个stand-alone python 模块(下载)即类似于Numpy之类的,可以独立地使用(图2)。那如果安装上这个模块,我就不必非得在Metashape客户端调试代码了,直接在任意python IDE中(比如 pycharm)中调试就好了。

图2. 官网提供的安装Metashape独立模python模块的流程
图2. 官网提供的安装Metashape独立模python模块的流程

我大致按照这个流程操作,竟然失败了,后面发现其中有两个重要的坑,提醒大家注意:

    1. 目前仅仅支持python 3.5, 3.6, 3.7, 3.8,不支持python 3.9哦,因为下载的python 3.9所以总是报错,后来注意到.whl文件名才意识到这个问题。建议大家安装python 3.8
    1. 我用的是Windows系统,但是在运行python3.exe -m pip install Metashape-1.7.1-cp35.cp36.cp37.cp38-none-win_amd64.whl这句话时没有反应。经查看python安装目录后发现,并没有python3.exe,所以应当采用python.exe替代。

避免这两个坑之后,应该就能安装成功了。

可以检查一下Python的安装目录下的...\Python\Python38\Lib\site-packages,是否有Metashape文件夹及相应文件存在。

但是,安装成功并不代表能用!因为还需要进行激活,通过import Metashape.Metashape as Metashape语句测试发现,尚无license key(图3),毕竟这是一个商业软件,人家是要赚钱的。

所以需要采用语句Metashape.License().activate("AAAAA-BBBBB-CCCCC-DDDDD-EEEEE")进行激活。我采用以前购买的Photoscan的激活码进行激活,却被报告已被使用(图4);而使用网上找的激活码激活,却被报告无效图5)。

看来,我不得不购买一个激活码了!哎,人穷志气短,想办法筹钱去了。

图3. 导入Metashape独立模块时要求激活
图3. 导入Metashape独立模块时要求激活
图4. 激活码已使用
图4. 激活码已使用
图5. 激活码无效
图5. 激活码无效

如果后面搞成功了,再来更新吧。