1

我正在使用 opencv3.3.1 运行 python3.6(32 位)。

我看到了这个教程,所以我尝试了与 SIFT 描述符的蛮力匹配:http: //opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_matcher/py_matcher.html

我读到包括 SIFT 在内的一些模块不再包含在默认安装中,需要单独安装。我在官方 python 网站上找到了带有 contrib 模块的 opencv3 下载(我假设它包含 SIFT)。具体来说,我从这里下载了 opencv_contrib_python-3.3.0.10-cp36-cp36m-win32.whl (md5):https ://pypi.python.org/pypi/opencv-contrib-python#downloads

我已经卸载了我以前的 opencv 并安装并导入了这个新版本的 opencv 并验证我正在运行新版本。

但是,当我尝试使用 cv2.SIFT() 时,我仍然收到模块 cv2.cv2 没有属性“SIFT”的错误。

我下载了正确的包吗?包括 SIFT 在内的所有 opencv 模块都应该包含在我安装的包中吗?

4

1 回答 1

1

要启用 opencv-contrib 模块,您必须从源代码重建您的 opencv 库。在 CMake 配置中,您必须启用它,指定变量 OPENCV_EXTRA_MODULES_PATH 以及您拥有 opencv_contrib 模块的路径,例如 ...wherever_you_downloaded_it/opencv_contrib/opencv_contrib-master/modules。

然后,使用 make 构建 opencv 将构建模块,而 make install 会将这些库与其他 opencv 库一起安装。

于 2017-11-05T19:00:49.960 回答