Pycharm使用SURF算法时报错module ‘cv2.cv2‘ has no attribute ‘xfeatures2d等问题(完整版)

前景提要

前几天在编程的时候需要用到SURF算法,按照网上的提示,我用到了

surf = cv2.xfeatures2d.SURF_create()

然后报错 ‘’module ‘cv2.cv2‘ has no attribute ‘xfeatures2d‘’,显示找不到xfeatures2d

随后在网上翻箱倒柜找了一天才顺利解决


报错时相关环境配置

win10

python:3.11 

opencv-contrib-python:4.9.0.80

opencv-python:4.9.0.80

(后面会发现这些版本太高了...)


解决方案

尝试一:

首先我查找网上的资料显示SURF算法被注册专利了,后面就没被包含在opencv里面了

需要对库版本降级

^^^注意你的python版本也不能太高了,必须3.7(包含)以下^^^

像我python版本太高了就又去下了一个3.7的

开干!卸载原来的opencv-contrib-python和opencv-python

下载3.4.2.16的版本,我是在pycharm里面直接下的。如果搞不成,那就去自己手动装吧,下面代码是手动安装可能会用到的(注意两个等于号前后不要打空格,我看网上有的代码打错了)

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

如果幸运的话,降完你就可以运行了。But我还是不行...

但是你鼠标点上去他能看见xfeatures2d整个文件夹的内容,很迷

尝试二:

然后我又去搜,有人说3.4.2.16不行的话试试3.4.2.17

我又去下17,然后还是不行(麻了.jpg)

依然报错 ‘’module ‘cv2.cv2‘ has no attribute ‘xfeatures2d‘’

尝试三:

后面我折腾半天又换回3.4.2.16版本了(还是看网上好多人这个版本成功了)

看见有人说尝试把opencv-python卸载了试试,结果卸载完直接报错“No module named ‘cv2’”

折腾半天他就是找不到cv2

尝试四:

最后我看到一帖子说要先安装opencv-python,然后再安装opencv-contrib-python

虽然我不明白这是为什么,但它竟然跑起来了....神奇

解决问题时环境配置

python:3.7

opencv-python:3.4.2.16

opencv-contrib-python:3.4.2.16

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值