Pycharm 出错 module 'cv2.cv2' has no attribute 'xfeatures2d'

这是由于SIFT已经申请专利,在后面的opencv版本里面已经不能再调用这个函数。

解决办法

卸载原来的opencv版本,在cmd里面输入如下代码:

pip uninstall opencv-python

显示成这样,输入y ,然后回车

Pycharm 出错 module 'cv2.cv2' has no attribute 'xfeatures2d'_第1张图片

最后显示卸载成功:

Successfully uninstalled opencv-python-3.4.0.12

下载3.4.2版本

pip install opencv-python==3.4.2.16 -i "https://pypi.doubanio.com/simple/"
pip install opencv-contrib-python==3.4.2.16 -i "https://pypi.doubanio.com/simple/"

显示下载成功:Pycharm 出错 module 'cv2.cv2' has no attribute 'xfeatures2d'_第2张图片

这样在Pycharm里面运行测试程序

import cv2
import numpy as np

img = cv2.imread('1.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('1', img)
cv2.waitKey(0)

测试可用

Pycharm 出错 module 'cv2.cv2' has no attribute 'xfeatures2d'_第3张图片

参考文献

https://blog.csdn.net/linghugoolge/article/details/85229411

https://www.jb51.net/article/135366.htm

 

你可能感兴趣的:(Python)