在用python使用opencv进行SIFT时候,编译出现这样问题:
Traceback (most recent call last):
File "F:/PyCharm/pydir/t3.py", line 4, in <module>
sift = cv2.SIFT()
AttributeError: module 'cv2' has no attribute 'SIFT'
这样的错误信息。代码如下:
import cv2
img = cv2.imread('test3.jpg')
sift = cv2.SIFT()
原因:opencv将SIFT等算法整合到xfeatures2d集合里面了。变更后写法如下:
import cv2
img = cv2.imread('test3.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.imwrite('sift_keypoints.jpg',img)
附:官方文档说明
http://docs.opencv.org/master/da/df5/tutorial_py_sift_intro.html