没有配置opencv_contrib,需要导入opencv_contrib
解决方法是安装opencv_contrib,pip install opencv-contrib-python,但这种方法不能解决该问题
我的解决方法是:先卸载opencv,再将opencv版本改为3.4.2。【该版本的opencv截至2019.3有效,网传的其他低版本基本都已经无法从pip直接安装】
pip install opencv-contrib-python==3.4.2.16
pip install opencv-contrib-python==3.4.2.16
百度后找到如下博客windows系统下Python安装或升级模块报错:PermissionError: [WinError 5] 拒绝访问。的解决办法.看到在pip install后添加--user参数就解决了问题。于是我想到在安装python-contrib-opencv时添加--user参数。运行pip install --user python-contrib-opencv安装成功
原文:https://blog.csdn.net/liuweiyuxiang/article/details/80264081
在寻找合适版本的过程中经历了以下问题:(环境:anaconda自带 python3.7+新虚拟环境python3.7 无其他额外的版本,默认python为虚拟环境的)
anaconda 虚拟环境下无法读取到pip安装的包
pycharm下安装的包也无法在anaconda下显示
解决办法:修改默认的pip路径即可。
包括修改pycharm的pip为虚拟环境的pip,方法如图:
即当时配置pycharm的时候没有添加scripts,导致其使用的pip不是虚拟环境的pip
其实简单点也可以这样:直接打开anaconda prompt 切换至虚拟环境,在此环境下使用pip,绝对稳妥。
3.在测试sift的时候用了这个demo
import cv2
import numpy as np
imgname1 ="d:/lena.jpg"
im = cv2.imread(imgname1)
if im is not None:
im = cv2.resize(im,(768,512))
cv2.imshow('0',im)
cv2.waitKey()
gray=im
# gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
#opencv 读取图片默认BGR
# cv2.imshow('1',gray)
# cv2.waitKey(0)
sift = cv2.xfeatures2d.SIFT_create()
keypoints,descriptors = sift.detectAndCompute(gray,None)
img = cv2.drawKeypoints(gray,keypoints,im)
cv2.imshow('keypoints',img)
cv2.waitKey()
# cv2.destroyAllWindows()
else:
print('no pic')
然后发现显示了原图后没有后续了,注释掉第一个cv2.waitkey()后正常显示 图keypoints了,可能是代码有bug