我编译了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'
请帮忙。我搜索过&amp;搜索和搜索并找不到与Opencv3相关的任何内容。
哦,我使用Visual Studio 2013来构建它。
答案 0 :(得分:12)
从3.0开始,SIFT,SURF,Brief和FREAK被转移到单独的opencv_contrib repo。
您必须下载它,将其添加到主cmake设置(请参阅那里的README),然后重建主opencv仓库。 'make install'之后你的python应该有一个新的cv2.pyd,它再次包含那些。然后:
# note the additional namespace:
sift = cv2.xfeatures2d.SIFT_create()