Я использую привязки 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)