zoukankan      html  css  js  c++  java
  • [Agisoft Metashape使用心得] 安装和使用MS独立Python模块

    关键词: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的安装目录下的...PythonPython38Libsite-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. 激活码无效

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

    >> 我的签名:我坚信,促进科学发展的动力之一就是共享<<
  • 相关阅读:
    重温Delphi之:面向对象
    Delphi2007卸载后无法再安装
    ERP开源框架 + 二次开发平台 介绍
    CodeGear RAD 2007 SP4 最新下载及破解
    Delphi XE中类成员的访问权限(新增了strict private和strict protected,还有automated)
    Delphi学习技巧
    Codeforce 101B. Buses(线段树or树状数组+离散化)
    Codeforce 101B. Buses(线段树or树状数组+离散化)
    codeforce -39E-What Has Dirichlet Got to Do with That?(博弈+dfs)
    codeforce -39E-What Has Dirichlet Got to Do with That?(博弈+dfs)
  • 原文地址:https://www.cnblogs.com/ludwig1860/p/14853911.html
Copyright © 2011-2022 走看看