私はopencvを使用してC++コードを作成しました。C++コードを「DLL」として変換しましたcv::Mat
。データ型として受け取るpythonでこのdllからメソッドを呼び出す必要があります。しかし、ここでエラーが発生します。以下は、C++ コードと Python コードのサンプルです。
グーグルで調べたところ、Boost ライブラリを使用する必要があることがわかりましたがPython mat
、C++ に変換するcv::Mat
方法とそれらの間のインターフェイスを作成する方法がわかりません。
C++ dll コード:
DLLEXPORT int FromPython ( cv :: Mat InputSrc) {
imshow ( "FromPython", InputSrc );
return 0;
}
Python コード
import cv2 as cv
from ctypes import cdll
cap = cv.VideoCapture(0)
while(1):
ret, frame = cap.read()
cv.imshow('frame',frame)
mydll = cdll.LoadLibrary('C:\Users\Documents\FromPythonDLL.dll')
i = mydll.FromPython(frame)
print(i)
k = cv.waitKey(1) & 0xff
if k == 27:
break
cap.release()
cv.destroyAllWindows()