pyopencvバインディングを使用しています。このpythonlibは、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)