一、问题描述
在学习openCV的过程中使用了SIFT的时候,发现书上的代码用不了,报错:
module 'cv2.cv2' has no attribute 'xfeatures2d'
二、问题原因
算法被申请了专利,将opencv版本退到3.4.2即可解决,必须小于等于Python3.7
三、解决方案
遇到这个问题 首先检查自己配置的python版本python --version ,这里要求是3.7版本的。
如果高版本无法转换到3.7的话建议重新创建一个虚拟环境。
在满足条件后键入pip3 install opencv-contrib-python==3.4.2.17就能解决了。
conda安装虚拟环境
#这样就创建了一个名字为my_env_name,基于python版本3.7的一个虚拟环境了。 conda create -n my_env_name python=3.7
conda虚拟环境的激活脚本
source activate my_env_name
安装虚拟环境的激活脚本3.4.2.17
#卸载opencv pip uninstall opencv-python #安装3.4.2.16 pip install opencv-python==3.4.2.16 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install opencv-contrib-python==3.4.2.16 -i https://pypi.tuna.tsinghua.edu.cn/simple