Python+OpenCV 3 - 无法使用 SIFT

标签 python opencv sift

我从最新的源代码编译了 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/

相关文章:

python - 如何修复 "TypeError: a float is required"消息?

c++ - OpenCV 找不到库

matlab - Ubuntu 错误 : "filename" cannot execute binary file

android - openCV Android : knnMatcher returns only matches for 1 descriptor

Opencv 重复性结果没有意义?

python - ipv6 dns 名称无法从 ipv4 网络解析

python 3 : Opening A Magnet Link Contained In A Variable

python - 如何使用 Selenium 和 Python 3 查找 iframe

python - 递归删除python中的文件夹

android - OpenCV InRange 参数