cv2.dnn.readNetFromDarknet()在python3上遇到的问题

问题描述:

代码如下

net = cv2.dnn.readNetFromDarknet(configPath,weightsPath)
#获取YOLO每一层的名称
#getLayerNames():获取网络所有层的名称。
ln = net.getLayerNames()
# 获取输出层的名称: [yolo-82,yolo-94,yolo-106]
# getUnconnectedOutLayers():获取输出层的索引
ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]

代码编写完毕之后 发现 i[0]的数值无法正确获取,仔细寻找之后发现cv2.dnn.readNetFromDarknet()要求在python2环境下运行

在python2.7的安装和cv2导入的过程中也遇到了一些问题,故做总结。

步骤:

1.用conda建一个python2虚拟环境

1. 显示可安装的python版本
conda search -f python
2. 安装虚拟环境,名称为py2
conda create -n py2 python=2.7
3. 激活py2
利用conda info –envs 或者conda env list 查询的虚拟环境,输入activate py2激活py2环境


#删除虚拟环境yourenvname 
conda remove -n yourenvname -all移除虚拟环境

2.修改项目的python版本,从python3.8切换到python2.7【注意】

打开File-setting,为该项目设置Python解释器,defaultSetting为PyCharm设置默认解释器,两者的设置过程一样的,建议都设置一下

在setting页面中选择,Project 项目名,Project Interpreter,在如下图右上角位置点击Add添加Python解释器

打开添加页面如下,在右边选项栏中选择第三项System Interpreter,点击右边选择位置按钮

找到Python解释器的python.exe文件(Python2和Python3都有这个文件)

添加成功后显示了Python2解释器的选项,同理设置Python3解释器,切换时就在setting中此处进行切换

 3.python2.7装cv2的解决方案

网上说的pip install opencv-python和换镜像源都不好使,因为新版的opencv不再支持python2.7 因此安装的时候需要指定版本

pip install opencv-python==4.2.0.32

安装成功

  4.运行python遇到SyntaxError: Non-ASCII character '\xe8' 报错

问题原因:因为没有指定文件的编码,默认情况下不能用中文。【不清楚为什么在python3的环境下无问题】

解决方案:在代码首行加入以下内容

# encoding:utf-8

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布尔大学士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值