python环境下opencv安装与一些坑

这里就只是单纯讲一下opencv的安装与使用时遇到的坑,毕竟作为一个萌新还没资格对一个成熟的框架指手画脚。

安装:

一般直接pip3安装太慢了的话我们可以使用国内的镜像,这里我用的是清华源

pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

但是导入时是导入cv2,而不是opencv.

然后就是掉包它里面的分类器时,路径不好找的话就直接在电脑里搜索cv2里面有个data文件夹的就是,然后他里面有这些文件:

这些文件名还是挺明显的,所以当我们要使用脸部识别时,就用含frontalface的,这里我用的是默认的识别器:

import cv2 as cv
face_detect=cv.CascadeClassifier(r'C:\Users\csl\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\cv2\data\haarcascade_frontalface_default.xml')

调用cv.face.LBPHFaceRecognizer_create()报错

AttributeError: module ‘cv2‘ has no attribute ‘face‘

出现这个报错时,原因是我们库没有装全,opencv-contrib-python库

解决办法有两个:

1:重新装

pip3 install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple

2:之前装了但还是报错的话,建议删掉重装

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

waitkey无法接收键盘命令

waitkey(时间)用于在指定时间内接收键盘命令,但我觉得更主要的作用是实现摄像头帧数的更新,至于会有时候出现无法接收键盘命令的情况,通常是因为你鼠标的焦点在其他地方,而不在opencv给你弹出的图像框中,你只要用鼠标点一下图相框,对焦到图相框,就可以解决啦。

cv.putText给图像添加中文变成‘?’

https://blog.csdn.net/hijacklei/article/details/116010860?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=2

这个大佬的解决方法最好,而且它还提供了中文字体的安装包,很值得借鉴

cv.imwrite中文乱码问题

这个主要是因为这个函数下,你要保存的文件夹甚至是文件名都不能出现中文或是空格,只能用英文,当然也有解决办法,换一个函数即可:

#cv.imwrite(clerk_info_folder+'/'+str(id)+'.'+name+'.jpg',img)		#保存照片(而且文件夹名称不能含中文或者空格)	
cv.imencode('.jpg', img)[1].tofile(clerk_img_folder+'/'+str(id)+'.'+name+'.jpg')			#解决了中文问题

:SourceReaderCB::~SourceReaderCB terminating async callback

虽然这个只是一个警告不影响程序进行,但解决掉还是最好,只要把上面的代码换成下面的格式就行了:

cap=cv.VideoCapture(0)    #会有警告
cap=cv.VideoCapture(0,cv.CAP_DSHOW)    #解决办法

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值