Python + OpenCV 3 - 无法使用SIFT

Max*_*xim 7 python opencv sift

我从最新的源代码编译了OpenCV 3和opencv_contrib.将其安装到Python 2.7的site-packages文件夹中.我可以访问http://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html上的所有教程,但涉及SIFT 的教程除外.

这是我得到的错误:

Traceback (most recent call last):
  File "C:\Projects\icu\ex01.py", line 9, in <module>
    sift = cv2.SIFT()
AttributeError: 'module' object has no attribute 'SIFT'
Run Code Online (Sandbox Code Playgroud)

请帮忙.我搜索并搜索和搜索,无法找到任何与Opencv3相关的内容.

哦,我使用Visual Studio 2013来构建它.

ber*_*rak 12

从3.0开始,SIFT,SURF,Brief和FREAK被转移到一个单独的opencv_contrib仓库.

您必须下载它,将其添加到您的主要cmake设置(请参阅那里的README),并重建主opencv仓库.'make install'之后你的python应该有一个新的cv2.pyd,它再次包含那些.然后:

# note the additional namespace:
sift = cv2.xfeatures2d.SIFT_create() 
Run Code Online (Sandbox Code Playgroud)

  • 为什么世界上的官方教程没有提到额外的空间?!? (5认同)
  • 刚刚建立了opencv3,用这种方式找到了sift模块:`sift = cv2.xfeatures2d.SIFT_create()` (3认同)