我从最新的源代码编译了 OpenCV 3 和 opencv_contrib。将它安装到 Python 2.7 的站点包文件夹中。我可以按照 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'
请帮忙。我搜索了又搜索,但找不到与 Opencv3 相关的任何内容。
哦,我使用 Visual Studio 2013 来构建它。
最佳答案
从 3.0 开始,SIFT、SURF、BRIEF 和 FREAK 被移动到单独的 opencv_contrib repo .
您必须下载它,将其添加到您的主要 cmake 设置(请参阅那里的自述文件),然后重建主要的 opencv 存储库。在“make install”之后你的 python 应该有一个新的 cv2.pyd,它再次包含那些。然后:
# note the additional namespace:
sift = cv2.xfeatures2d.SIFT_create()
关于Python+OpenCV 3 - 无法使用 SIFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26855753/