pythonnet调用halcon外部函数脚本编程环境搭建

实现功能:halcon写一个外部函数,用pythonnet调用。

首先把halcon自带的halcondotnet.dll和hdevenginedotnet.dll两个文件复制到python项目目录里。

python安装pythonnet库,代码头:

import clr
import sys
import System
from System import String, Char, Int32, Environment, IntPtr

d = clr.AddReference("./sources/halcondotnet")
print(d)
d = clr.AddReference("./sources/hdevenginedotnet")

print会打印出halcon的版本

类创建:

from HalconDotNet import *

class HdevEnginePy:
    Procedure = HDevProcedure()
    Program = HDevProgram()
    ourProcedure = "./myProcedures" #外部函数路径

    def __init__(self):
        self.MyEngine = HDevEngine()
        self.MyEngine.SetProcedurePath(self.ourProcedure)
        return

    #获得所有的外部函数名
    def get_proc_names(self):
        procedure_name = self.MyEngine.GetProcedureNames()
        return procedure_name

 可以开始调用:

func=HdevEnginePy()
print(func.get_proc_names())

#这三句一体才能执行其中一个外部函数
func.Procedure=HDevProcedure("halcontest")
func.ProcCall=HDevProcedureCall(func.Procedure)
func.ProcCall.Execute()

halcontest.hdvp是我写的一个非常简单无参数的halcon函数 

你可能感兴趣的:(python)