【发布时间】:2010-02-05 19:41:23
【问题描述】:
我正在使用 pyopencv 绑定。这个 python 库使用 boost::python 连接到 OopenCV。现在我正在尝试使用 SURF 类,但不知道如何在我的 python 代码中处理类运算符。
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)
【问题讨论】:
标签: c++ python operators operator-overloading boost-python