【已解决】cv2.xfeatures2d.SIFT_create()不可用

问题描述

在Jupyter Notebook的conda虚拟环境下,使用cv2实现SIFT算法。由于cv2申请专利,无法调用xfeatures2d.SIFT_create()。
报错提示
报错提示:(-213:该功能/特性尚未实现)此算法已获得专利,在此配置中被排除;在函数中设置OPENCV_ENABLE_NONFREE CMake 选项并重新构建库

解决方案及其分析

在较高版本的OpenCV中无法调用SIFT算法相关的函数,是由于该算法已被申请专利。可以通过 降低OpenCV的版本 解决该问题。
为了降低OpenCV的版本,需要卸载当前版本,然后安装低版本的 opencv-pythonopencv-contrib-python

# 卸载当前版本的OpenCV
pip uninstall opencv-python
pip uninstall opencv-contrib-python

# 安装低版本的OpenCV (在Python 3.6下的OpenCV 3.4.2.16)
pip install opencv-python==3.4.2.16
pip install opencv-contrib-python==3.4.2.16

安装成功
可以顺利调用

解决过程小记

最开始是在虚拟环境 cv_course 下进行尝试的,并且考虑导可能会出现 Python版本不支持OpenCV部分版本 的情况。因此在排查的时候可以首先看Python的版本,然后查看可用的OpenCV版本。
1.查看当前虚拟环境的 Python 版本

# 使用conda info命令查看当前虚拟环境的信息
conda info

在这里插入图片描述

2.查看当前可用的OpenCV版本


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值