我正在尝试通过 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!
请确保您的计算机上没有其他 opencv...
pip uninstall opencv-python
然后获取贡献版本(有 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/