我使用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模块都应该包含在我安装的软件包中吗?
答案 0 :(得分:1)
要启用opencv-contrib模块,您必须从源重建opencv lib。在CMake配置中,您必须启用它,指定变量OPENCV_EXTRA_MODULES_PATH,其中包含opencv_contrib模块的路径,例如... wherever_you_downloaded_it / opencv_contrib / opencv_contrib-master / modules。
然后,使用make构建opencv将构建模块,make install将与其他opencv库一起安装这些库。