python中如何調用halcon方法?
正常情況下Python是可以調用C++接口的,但是halcon中的數據結構是自定義類型,Python的基類型沒有定義, 不過可以嘗試中間層轉換。
1. Python調用C++接口方法
比如有接口動態庫
myHalcon.dll
封裝了兩個接口DLLEXPORT int sum(int a, int b) { return a + b; }
DLLEXPORT int sub(int a, int b) { return a-b; }
import ctypes
import os
CUR_PATH=os.path.dirname(__file__)
dllPath=os.path.join(CUR_PATH,"myHalcon.dll")
print (dllPath)
#mydll=ctypes.cdll.LoadLibrary(dllPath)
#print mydll
pDll=ctypes.WinDLL(dllPath)
print (pDll)
pResutl= pDll.sum(1,4)
pResult2=pDll.sub(1,4)
print (pResutl) print (pResult2)
好,有了以上知識,Python調用C++的接口,那么接下來可以使用自定義一個halcon動態庫
UseHalconByPyhon.dll
數據類型對應好,比如:
類型 halcon UseHalconByPyhon
圖像數據 HObject struct{unsighed char*pdata,int width, int height,int type}
int HTuple int
double HTuple double
string HTuple stirng
通過自定義接口,一一做對應接口參數,自己轉換一層就可以了。
如下表中,數據,一一來做對應, halcon->C->python這個過程
上面這個只是通過python可以調用C++接口而想到的,這樣做比較麻煩(我自己沒有測試過)