AttributeError: module ‘cv2‘ has no attribute ‘SIFT‘解决总结

本文介绍了在升级OpenCV到3.4.3版本后,由于SIFT算法被整合到xfeatures2d模块中,用户在使用SIFT_detector时遇到错误。解决方案是设置OPENCV_ENABLE_NONFREE选项并回滚到3.4.2版本,同时更新相关依赖库。
摘要由CSDN通过智能技术生成

遇到该问题时,网友多是建议补个包,即pip install opencv-contrib-python
我在补完之后又出现下面这样的错误:
OpenCV(3.4.3) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cpp:1207: error: (-213:The function/feature is not implemented) This algorithm is patented(专利保护) and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function ‘cv::xfeatures2d::SIFT::create’
将opencv版本退到3.4.2即可解决,卸载之前的包(pip uninstall opencv-python),然后

pip install opencv-python==3.4.2.16
pip install opencv-contrib-python==3.4.2.16

注意以上两条命令==左右没有空格

如果错误:

  'module' object has no attribute 'xfeatures2d'

原因:opencv将SIFT等算法整合到xfeatures2d集合里面了。

siftDetector=cv2.SIFT()

变更后为

siftDetector= cv2.xfeatures2d.SIFT_create()

参考:AttributeError: module 'cv2' has no attribute 'SIFT'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值