module 'cv2' has no attribute 'SIFT'
时间: 2023-12-01 11:43:03 浏览: 110
no moudel named cv2
SIFT是一种计算机视觉算法,用于在图像中检测和描述局部特征。在OpenCV 3.4.2及更高版本中,SIFT已被移除。因此,如果你使用的是OpenCV 3.4.2及更高版本,则会出现“module 'cv2' has no attribute 'SIFT'”的错误。如果你想使用SIFT算法,可以使用OpenCV的贡献模块xfeatures2d中的SIFT_create()函数。但是,在使用此函数之前,你需要确保已经安装了opencv-contrib-python包。如果你使用的是低于OpenCV 3.4.2版本的OpenCV,则可以直接使用cv2.SIFT()函数。
以下是使用xfeatures2d中的SIFT_create()函数的示例代码:
```python
import cv2
img = cv2.imread('image.jpg')
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
sift = cv2.xfeatures2d.SIFT_create()
kp = sift.detect(gray,None)
img=cv2.drawKeypoints(gray,kp,img)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文