Python cv2.xFeature2D.SIFT_create()不工作

Python cv2.xFeature2D.SIFT_create()不工作,python,computer-vision,opencv3.0,Python,Computer Vision,Opencv3.0,我正在使用我的google colab中创建的cv2.xfeatures2d.SIFT_,但它显示了错误: OpenCV3.4.5/io/opencv_contrib/modules/xfeatures2d/src/sift.cpp:1207:错误:-213:未实现功能/特性此算法已获得专利,不包括在此配置中;设置OPENCV_ENABLE_NONFREE CMake选项并在函数“create”中重建库 我安装的贡献使用!pip安装opencv contrib python==3.4.5.20,

我正在使用我的google colab中创建的cv2.xfeatures2d.SIFT_,但它显示了错误:

OpenCV3.4.5/io/opencv_contrib/modules/xfeatures2d/src/sift.cpp:1207:错误:-213:未实现功能/特性此算法已获得专利,不包括在此配置中;设置OPENCV_ENABLE_NONFREE CMake选项并在函数“create”中重建库

我安装的贡献使用!pip安装opencv contrib python==3.4.5.20,但仍不工作

!pip install opencv-contrib-python==3.4.5.20

img_1= cv2.imread('pic1.JPG') 
img_2=cv2.imread("pic2.JPG")
img_1=cv2.cvtColor(img_1,cv2.COLOR_RGB2GRAY)
img_2=cv2.cvtColor(img_2,cv2.COLOR_RGB2GRAY)
sift = cv2.xfeatures2d.SIFT_create()
# find the keypoints and descriptors with SIFT
kp1, des1 = sift.detectAndCompute(img_1,None)
kp2, des2 = sift.detectAndCompute(img_2,None)

SIFT在Opencv版本>3.4.2中不可用,因此您需要降级:

!pip uninstall opencv-python -y
!pip install opencv-contrib-python==3.4.2.17 --force-reinstall

由于4.3.0版和3.4.10版的专利过期,预构建的opencv contrib python控制盘中已经提供了SIFT。