手把手解决opencv无法使用cv.xfeatures2d

一、问题描述

在学习openCV的过程中使用了SIFT的时候,发现书上的代码用不了。

sift=cv.xfeatures2d.SIFT_create()

代码报错:

二、问题原因

算法被申请了专利,能够调用这个程序包的opencv-python-3.4.2.16最高只支持python3.7,因此3.8及以后版本的python的使用者不能调用这个程序包,需要把Python 退回到3.7后,再安装opencv-python-3.4.2.16才能正常调用cv.xfeatures2d。

三、问题解决

3.1  安装Python3.7,需要建立虚拟环境

在pycharm界面打开终端窗口(不熟悉Python的我找了半天)

手把手解决opencv无法使用cv.xfeatures2d_第1张图片

输入:conda create -n py37 python=3.7

手把手解决opencv无法使用cv.xfeatures2d_第2张图片

手把手解决opencv无法使用cv.xfeatures2d_第3张图片

输入y确定,直至安装成功,安装成功后激活输入:activate py37

手把手解决opencv无法使用cv.xfeatures2d_第4张图片

没有报错代表虚拟环境建立成功。

3.2安装所需程序包

conda install opencv-python==3.4.2.16

conda install opencv-contrib-python==3.4.2.16

手把手解决opencv无法使用cv.xfeatures2d_第5张图片

安装结束。

3.3、修改自己编译环境中的解释器路径

File-settings-project:opencvmanual-python Interpreter-点击红框中的齿轮形状的设置打开virtualenv Enviroment

手把手解决opencv无法使用cv.xfeatures2d_第6张图片

在virtualenv Enviroment的Existing enviroment中设置interpreter,将Python环境设置为你刚才下载的虚拟环境py37,具体地址在你安装anaconda的位置下环境中(不知道安到哪可以参考现有环境的地址,譬如我的是安到了D盘software文件夹中D:\Software\anaconda\envs\py37\python.exe)

手把手解决opencv无法使用cv.xfeatures2d_第7张图片

手把手解决opencv无法使用cv.xfeatures2d_第8张图片

设置完后点击确认,回到刚才的settings界面,将编译环境变为了Python3.7(py37),至此环境设置完毕。

手把手解决opencv无法使用cv.xfeatures2d_第9张图片

第四步、重新运行程序,成功?

手把手解决opencv无法使用cv.xfeatures2d_第10张图片

出现了新的问题,就是新建的编译环境中程序包非常的少,需要添加程序包(pip install)

这已经是下一个问题了,解决到这的时候,我已经想要放弃调用那个cv.xfeatures2d了。

依旧是打开settings,点击+号添加程序包。

第五步:新问题

5.1、添加程序包

手把手解决opencv无法使用cv.xfeatures2d_第11张图片

搜索numpy程序包,点击下面的install package

手把手解决opencv无法使用cv.xfeatures2d_第12张图片

5.2升级pip安装程序包

报错:

“WARNING: You are using pip version 21.1.2; however, version 21.2.4 is available”

第一行:下载程序包的pip版本太低需要升级,第二行:提示需要在终端界面输入:

Python -m pip install --upgrade pip 升级pip包

继续报错:进度条进一阵就停了,升级失败(原因:服务器连接超时,使用一下代码即可解决)输入:python -m pip install --upgrade pip -i https://pypi.douban.com/simple

pip升级成功。

继续回到第五步添加numpy程序包

这里有两种方式:

1、还是按照settings中搜索程序包install package安装,可能成功但还有可能报错。

2、pip install numpy -i https://pypi.douban.com/simple 大几率安装成功。

然后按照这种方式把所需的所有程序包安装好后,运行程序,出图。

手把手解决opencv无法使用cv.xfeatures2d_第13张图片

第六步、哭

同志们我哭了,因为是Python新手,很多东西都摸不着地方,会发现我本来只想画个图,遇到一个问题,解决了一半又出现了一个问题,然后一个一个一个个的,远到已经不知道自己开始要干嘛了,然后不断搜索,在很多回答中不断尝试从中找出有用的方法,然后再一点点回来。。哭哭哭

感谢搜索过程中各位大佬分享的经验,搜得太多了,就不引用了,如果我能解决你的问题,快给我点赞,也希望大家能多多耐心分享,互相帮助,笔芯。

你可能感兴趣的:(python,opencv)