- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 pyopencv 绑定(bind)。这个 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)
最佳答案
您只需像调用函数一样调用它。如果surf_inst
是 SURF
的一个实例类,你会调用:
newKeyPoints = surf_inst(img, mask, keypoints)
参数keypoints
预计是一个元组,并且 img
和 mask
应该是 Mat
的实例类(class)。 C++ 函数修改其 keypoints
范围。 Python 版本反而返回修改后的关键点。
C++ 的 operator()
类似于 Python 的 __call__
: 它使用与函数调用相同的语法使对象可调用。
编辑:对于你的第二个问题:正如你在错误中看到的那样,keypoints
应该是一个元组,你给了它一个列表。尝试将其改为元组。
关于c++ - 如何使用 boost::python (pyopencv) 在 python 中使用 C++ 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2209889/
我使用来自 here 的预构建二进制文件在我的树莓派上安装了 pyOpenCV。 .它似乎根本不起作用。我写了这个小脚本来测试: import cv2 webcam = cv2.VideoCaptur
我使用 pyopencv 来查找轮廓,但无法绘制找到的轮廓。我得到了错误: 23 color = Scalar(255) 24 print type(color) ---> 25 drawCont
是否可以使用 GPU 编写 PyOpenCV 代码?我想知道我是否可以在 Python 上编写以下内容: #include #include using namespace cv; int mai
我在用 python 2.6.1 对应的numpy(http://space.dl.sourceforge.net/project/numpy/NumPy/1.5.0/numpy-1.5.0-win3
我正在尝试使用安装工具在 Ubuntu 14.04 上安装 PyOpenCV。当我尝试 python setup.py config 我得到了错误 ImportError: cannot import
当我第一次尝试安装 pyopencv 时 ./vendor/venv/bin/pip install pyopencv 它说使用 CMake 时出现问题。 我按照说明在计算机上构建了 OpenCV h
我正在尝试在我的 Raspberry Pi 上安装 PyOpenCV,以便我可以使用它的网络摄像头捕获功能。不幸的是,我似乎在这方面遇到了很多困难,因为我无法为我 build 该死的东西。 我已经阅读
我正在尝试将 pyopencv 安装到使用 --no-site-packages 选项创建的 virtualenv: pip install pyopencv 但我在 Ubuntu 10.04.3 上
我正在尝试安装 pyopencv。我已经通过 Brew 安装了 Python 和 OpenCV。快速 which python/pip 表明我正在使用通过 Brew 安装的 Python 版本作为默认
我正在尝试在 OS X Mountain Lion 中使用 pip 安装 pyopencv,但由于导入 setuptools 而失败。以下是我的工作。设置工具中的“库”是什么?我以前没见过。我已经通过
我正在使用 pyopencv 绑定(bind)。这个 python 库使用 boost::python 连接到 OopenCV。现在我正在尝试使用 SURF 类,但不知道如何在我的 python 代码
我在安装 pyopencv 2.1.0 和 opencv-2.4.2 时遇到了一些错误,我的 python 版本是 2.7.3,我的操作系统是 OS X Mountain Lion, 下面是过程信息,
我是一名优秀的程序员,十分优秀!