24.1 导言

HDevEngine/Python 接口与 HDevEngine/.NET 和 HDevEngine/C++ 接口类似。大多数概念和函数都是一一对应的。

有关 HDevEngine 的 C++ 类的简要参考资料,请参见 "类概述" 一节 。Python 类与之类似。

本章仅介绍 HDevEngine/Python 的具体内容。如果未提及错误处理等主题,则适用 "使用 HALCON/Python 编程"部分 的相关内容。

24.1.1 第一个示例

本节介绍如何创建一个简单的 HDevEngine/Python 应用程序。如需更全面的说明,请阅读 "HDevEngine/Python 接口" 一节

  1. 安装 HALCON 23.05。
  2. 在系统中安装 Python 3.8 或更新版本。
  3. 设置所选的 Python 环境,例如,使用 python -m venv path_to_new_virtual_environment
  4. 在 shell 中运行以下命令

    
    mkdir hdevengine_example
    cd hdevengine_example
    pip install mvtec-halcon==23050
    

  5. 创建名为 hdevengine_example.py 的文件,并将内容更改为

    import os
    
    import halcon as ha
    
    if __name__ == '__main__':
        example_dir = ha.get_system_s('example_dir')
        procedure_path = os.path.join(example_dir, 'hdevengine', 'procedures')
        
        hdev_engine = ha.HDevEngine()
        hdev_engine.set_procedure_path(procedure_path)
    
        img = ha.read_image('fin2')
    
        procedure = ha.HDevProcedure.load_external('detect_fin')
        proc_call = ha.HDevProcedureCall(procedure)
        
        proc_call.set_input_iconic_param_by_name('Image', img)
        proc_call.execute()
    
        fin_area = proc_call.get_output_control_param_by_name('FinArea')[0]
        print(f'Fin Area: {fin_area}')
    

  6. 要运行应用程序,请在同一 shell 中键入以下命令:

    python hdevengine_example.py
    

结果,您将看到以下输出 "Fin Area: 1634"。