Python下opencv3.X版本不能使用sift,surf算法问题解决

问题没解决前本人的环境配置:Anaconda2(Python 2.7.15)、opencv3.20

问题1AttributeError: '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 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_35154529/article/details/81196667