【问题标题】:Python+OpenCV 3 - cant use SIFTPython+OpenCV 3 - 不能使用 SIFT
【发布时间】:2014-11-11 00:55:25
【问题描述】:

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

请帮忙。我搜索&搜索&搜索并找不到任何与Opencv3相关的内容。

哦,我使用 Visual Studio 2013 构建它。

【问题讨论】:

    标签: python opencv sift


    【解决方案1】:

    从 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() 
    

    【讨论】:

    • 为什么官方教程没有提到额外的空间??!?
    • 刚建好opencv3,发现sift模块是这样的:sift = cv2.xfeatures2d.SIFT_create()
    • 如果你使用 brew 安装它,像这样:brew install opencv3 --with-contrib
    猜你喜欢
    • 2020-05-20
    • 2011-10-07
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 2014-05-08
    • 2016-02-03
    相关资源
    最近更新 更多