问题没解决前本人的环境配置:Anaconda2(Python 2.7.15)、opencv3.20
问题1:AttributeError: 'module' object has no attribute 'SIFT'或'SURF'
原因:opencv3.x将SIFT等算法整合到xfeatures2d集合里面了
解决:sift = cv2.SIFT() 更写成:sift = cv2.xfeatures2d.SIFT_create() //相同方法调用SURF
问题2:'module' object has no attribute 'xfeatures2d'
原因:没有配置opencv_contrib,需要导入opencv_contrib
解决:命令提示符下:pip install opencv-contrib-python
再查看OpenCV版本:
import cv2
cv2.__version__
Out[3]: '3.4.2'
试一试:
# -*-coding:utf-8-*-
import cv2
import numpy as np
img=cv2.imread('ZED.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)
效果图:
扫描二维码关注公众号,回复:
2892274 查看本文章