1
我正在使用pyopencv綁定。這個python庫使用boost :: python連接到OopenCV。現在我試圖使用SURF類,但不知道如何處理我的Python代碼中的類運算符。如何在python中使用boost :: python(pyopencv)使用C++運算符
C++的類定義爲:
void SURF::operator()(const Mat& img, const Mat& mask,
vector<KeyPoint>& keypoints) const
{...}
我怎樣才能把我的論點這門課嗎?
更新: 由於interjay我可以調用的方法,但現在我得到類型錯誤。什麼是python boost :: python :: tuple?
import pyopencv as cv
img = cv.imread('myImage.jpg')
surf = cv.SURF();
key = []
mask = cv.Mat()
print surf(img, mask, key, False)
給我說:
Traceback (most recent call last):
File "client.py", line 18, in <module>
print surf(img, mask, key, False)
Boost.Python.ArgumentError: Python argument types in
SURF.__call__(SURF, Mat, Mat, list, bool)
did not match C++ signature:
__call__(cv::SURF inst, cv::Mat img, cv::Mat mask,
boost::python::tuple keypoints,
bool useProvidedKeypoints=False)
__call__(cv::SURF inst, cv::Mat img, cv::Mat mask)
感謝interjay,這工作。但現在我得到一個類型錯誤。我已經更新了我的問題。你有什麼建議嗎? – dan 2010-02-05 22:15:35
@dan看我的編輯 – interjay 2010-02-05 22:23:57