cv2.xfeatures2d.SIFT_create()报错后,配置OpenCV+contrib+Python

opencv做一些特征检测匹配,所以需要用到opencv-contrib-python这个包,因为SIFT,SURF算法都已经申请专利了,所以这两个算法不免费,在opencv3.4.2之后的版本都不再包含这两个算法。只能使用3.4.1.15或者早期版本。

具体可以查询,我用的是opencv-contrib3.4.1.15版本,Python版本为3.6.5),而且还有限制条件是Python版本为3.6才能支持,真的是气的吐血,对新手及其不友好。
下面是官网支持的版本:
在这里插入图片描述

解决办法:
1 :卸载之前的opencv-python和opencv-contrib-python 版本。
pip uninstall opencv-python
pip uninstall opencv-contrib-python

2 :使用清华的镜像源,下载速度快的飞起。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn opencv-python==4.1.2

pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com opencv-contrib-python==3.4.0.12

3:opencv版本现在可以与opencv-contrib版本不一致(之前网上有人说需要匹配,但现在不用了),但是必须跟Python版本匹配。

建议:尽量不要下载最新版本的软件和包,因为很容易出现版本不兼容,从而引发各种棘手的问题,除非你真的特别需要刚刚更新的内容。

结果:
在这里插入图片描述