python opecv3.4.5 contirb版本 无法使用sift surf等算法
没有配置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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理