2021-10-15 python编程问题总结与不定时补充

python编程的一些常见问题处理总结和不定时补充

文件读取问题

1、解决cv2.imread读取含有中文路径的文件
cv2.imread()直接读取含有中文路径的图片,会返回None,解决方法如下:

import cv2
import numpy as np
img=cv2.imdecode(np.fromfile(path+picname, dtype=np.uint8), cv2.IMREAD_GRAYSCALE)

2、txt文档如何判断是否读取到文末
需要对txt文档的每一行进行处理的时候,最后需要判断如何读取到文件的末尾即可跳出循环,解决办法如下:

f=open(path+'xx.txt','r')
    while(True):
        line=f.readline()[:-1]#去掉最后的换行符号‘\n’
        if not line:
            break
        #下方可继续编程处理数据

没有该属性的问题

一般而言没有该属性则选择pip install xx语句解决即可,但是有些时候会出现无法解决的情况,此处主要说明这些问题。
1、module ‘cv2.cv2’ has no attribute ‘face’
因为一般在学习opencv时我们只安装了opencv-python,如果需要实现人脸识别的一些算法,我们还需要安装opencv-contrib-python,所以理论上直接pip install opencv-contrib-python就行,但是实践发现这样不能成功安装,具体操作如下:

pip uninstall opencv-python
pip install opencv-python
pip install opencv-contrib-python

具体原因我也不太清楚,这样安装之后就神奇的好使了,有博客说可能原因是相关包没安装或者cv2的相关包没安装完【链接: link.】

其他问题

1、在人脸识别的时候出现:labels data type = 19 is not supported
原始代码如下:

model=cv2.face.EigenFaceRecognizer_create()
model.train(np.asarray(data[0]),np.asarray(data[1]))

报错如下:
在这里插入图片描述
这是因为model.train对标签的要求是int类型,所以只需要简单转换一下数据类型就可以解决,解决方法如下:

model=cv2.face.EigenFaceRecognizer_create()
model.train(np.asarray(data[0]),np.asarray(data[1],dtype=np.int32))
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LJhaha

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

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

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

打赏作者

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

抵扣说明:

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

余额充值