实现功能: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使用pythonnet库调用Halcon的外部函数。首先将halcondotnet.dll和hdevenginedotnet.dll导入Python项目,然后安装pythonnet库。在代码中创建了一个HdevEnginePy类,该类能够获取所有外部函数的名称,并能执行指定的Halcon外部函数,例如无参数的'halcontest.hdvp'。

1549

被折叠的 条评论
为什么被折叠?



