python - opencv 中的 SIFT() 不工作 : 'module' object has no attribute 'SURF'

标签 python opencv python-2.7 ubuntu sift

我正在尝试通过 Ubuntu 的 shell 运行最简单的 opencv SIFT 代码,但没有成功

我得到一个错误:

AttributeError: 'module' object has no attribute 'SURF'

代码:

import cv2
cv2.SIFT()

我的配置:

  • Ubuntu 版本为 13.10 64bit
  • cv2.__version__ 是 2.4.5
  • dir(cv2) 的输出是(只针对字母 S)

'scaleAdd', 'segmentMotion', 'sepFilter2D', 'setIdentity', 'setMouseCallback', 'setTrackbarPos', 'setUseOptimized', 'setWindowProperty', 'solve', 'solveCubic', 'solvePnP', 'solvePnPRansac', 'solvePoly', 'sort', 'sortIdx', 'split', 'sqrt', 'startWindowThread', 'stereoCalibrate', 'stereoRectify', 'stereoRectifyUncalibrated', 'subtract', 'sumElems'

最佳答案

这让我发疯,但忽略了所有其他建议,事实证明您现在只需两个终端命令即可获得 SIFT 和 SURF!

  1. 请确保您的计算机上没有其他 opencv...

    pip uninstall opencv-python
    
  2. 然后获取贡献版本(有 SIFT 和 SURF + 其他)...

    pip install opencv-contrib-python
    

它应该安装,但请注意名称略有不同。

import cv2
sift = cv2.xfeatures2d.SIFT_create()

!!!pip pip 万岁!!! (这只是一个双关语,不是代码的一部分)

关于python - opencv 中的 SIFT() 不工作 : 'module' object has no attribute 'SURF' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21663422/

相关文章:

python - 使用 json 数据在 python 中追加文本文件

c++ - opencv-3.0.0 ubuntu 14.04 "nonfree/nonfree.hpp"构建错误

C++ Opencv - 对 mat 的任何更改,也更改用于初始化 mat 的 vector

python 2.7 : Listen to requested connections + listen to already established connections at the same time

python - 如何使用Python编程语言发送带有客户端证书的https请求

python - 运行python程序时出现导入错误

python - 如何在搜索查询中加入文档

python - Python 的切片边界和 "stride"之间的神秘交互

java - 在android中使用opencv检测玩具车后面

python - 将动态用户输入插入到 text() 框中