cv2.xfeatures2d.SIFT_create()报错

问题描述:

在数字图像处理课程实验中,特征匹配实验用到了sift算法,用vscode第一次运行使用了opencv4.4以及python3.8,出现了报错

module 'cv2.cv2' has no attribute 'xfeatures2d'

然后anaconda prompt中安装opencv-python 3.4.2.16 命令如下,出现无法找到相关版本的报错

pip install opencv-python==3.4.2.16

还有报错为

cv2.error: OpenCV(3.4.8) 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'

原因分析

第一次报错原因是因为opencv4.4版本由于sift专利原因已经无法使用;第二次报错则是因为opencv4.2与python3.8不匹配,需要降到3.6;这个报错仍然是opencv版本问题

解决方案:

如果是python3.6,只需要安装opencv相关版本的包就行了,在anaconda prompt中执行如下命令

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

因为我是python3.8,所以创建了一个虚拟环境py36,从而进行相关配置,关于创建虚拟环境和激活虚拟环境请参照博客anaconda中创建虚拟环境 - 简书,然后在激活的虚拟环境中执行上述命令

最后在VS code终端中运行py文件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值