sift = cv2.xfeatures2d.SIFT_create()即使安装了contrib也无法正常工作的解决办法
一、安装额外的opencv-contrib-python库,并保持版本一致
首先安装contrib
,并检查和opencv-python
版本是否一致
pip install opencv-contrib-python
pip list
但是依然报错
sift = cv2.xfeatures2d.SIFT_create()
# 报错信息
AttributeError: module 'cv2.cv2' has no attribute 'xfeatures2d'
二、两个库同时回退版本到3.4.2.16的版本
首先卸载当前版本
pip uninstall opencv-python
pip uninstall opencv-contrib-python
然后重新安装
pip install opencv-python==3.4.2.16
pip install opencv-contrib-python==3.4.2.16
如果还是不行,重启一下anaconda,问题解决。
三、测试SIFT算子匹配点的一个案例
核心公式
# 新建一个sift算子
sift = cv2.xfeatures2d.SIFT_create()
# 计算特征点和特征点周围的特征向量
kp1, des1 = sift.detectAndCompute(img1,None)
# 进行KNN特征匹配,k设置为2
matches = cv2.BFMatcher().knnMatch(