问题描述
cv2.error: OpenCV(4.1.2) error: OpenCV(4.1.2) /io/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’

解决办法
原因是之前安装的版本太新,申请了算法专利保护,SIFT等已经不能够使用。

先卸载原先安装的库:pip uninstall opencv-python 或者 pip uninstall opencv-contrib-python
然后pip install opencv-contrib-python==3.4.2.17 或者(3.4.2.16, 3.4.3.18, 3.4.4.19, 3.4.5.20)
代码如下:

!pip uninstall opencv-python
!pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com opencv-contrib-python==3.4.2.17
# 内核重启
import os
os.kill(os.getpid(), 9)

注意:我是在colab中运行的,所以pip前面都加了!,大家如果在本机运行,不用加。另外最后内核重启也是只针对Colab。

最后成功运行!