在练习sift算子的时候,发现出现这个问题:
AttributeError: 'module' object has no attribute 'xfeatures2d'原因
OpenCV版本问题,由于sift算子是有专利的,固原始OpenCV是无法包含该函数的,只能在扩展包中opencv-contrib-python。
解决办法分两个版本
- 如果opencv-python的版本是<=3.4:
- pip install opencv-contrib-python==3.4.2.17
sift = cv2.xfeatures2d.SIFT_create() kp = sift.detect(gray_img, None) img = cv2.drawKeypoints(gray_img, kp, img) plt.imshow(img)
- 如果opencv-python的版本是>=4.5:
- pip install opencv-contrib-python==4.5.3.56
- 使用的时候
sift = cv2.SIFT_create() kp = sift.detect(gray_img, None) img = cv2.drawKeypoints(gray_img, kp, img) plt.imshow(img)参考
- https://stackoverflow.com/questions/37039224/attributeerror-module-object-has-no-attribute-xfeatures2d-python-opencv-2
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)