我正在运行带有 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 模块(我假设包含 SIFT)的 opencv3 下载。具体来说,我从这里下载了 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 模块都应该包含在我安装的包中吗?
最佳答案
要启用 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 库一起安装。
关于python - 使用 contrib 模块安装 openCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47118488/