(详细教程)opencv+pycharm+笔记本摄像头 做一个人脸识别 | 您所在的位置:网站首页 › 电脑摄像头显示不出来 › (详细教程)opencv+pycharm+笔记本摄像头 做一个人脸识别 |
目录
一、安装opencv-python 二、准备分类器 三、代码讲解 四、运行结果 附录: 总结 一、安装opencv-python这里推荐使用pycharm直接安装opencv-python 打开文件——设置——python解释器——点击+号 搜索opencv-python,点击安装包,等待片刻即可安装好 检查是否安装好,新建一个项目输入以下代码,若无报错则安装好 import cv2 二、准备分类器咱们使用opencv官方提供的分类器,包括面部识别,侧脸识别,眼睛识别等,如果想训练自己的分类器可以看我另外一篇文章。 我下载好的三个分类器,老铁们自取 链接:https://pan.baidu.com/s/1TqunSL6ne0dXW5TyO7DGWw 提取码:9420 三、代码讲解准备好以上工作,开始进行操作过程 import cv2 camera = cv2.VideoCapture(0) face_casecade = cv2.CascadeClassifier(r'C:\Users\Gaomagic\PycharmProjects\kouzhaodetect\mask\xml\cascade.xml')导入cv2包。 cv2.VideoCapture(0)打开摄像头,0表示笔记本内置摄像头 cv2.CascadeClassifier()加载分类器,括号里面写入刚才下载的分类器的路径,注意:要英文路径,且前面加上r,否则\表示转义符号。 while (True): ret, frame = camera.read()进入一个while循环,camera.read()读取一帧图像,frame为读取到的图片,ret为bool变量要么true,要么flase,当读取到图像则为true if ret: gray_img = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) face = face_casecade.detectMultiScale(gray_img, 1.3, 2)ret为true时进入if判断,cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)表示把读取到的一帧图片frame转换为灰度图。face=face_casecade.detectMultiScale()第一个参数是转换完的灰度图。第二个参数是每次缩小图像的比例,默认1:1。第三个参数是匹配成功所需要的周围矩形框的数目,每一个特征匹配到的区域都是一个矩形框,只有多个矩形框同时存在时,才认为是匹配成功,比如人脸,这个默认值是3。 for (x, y, w, h) in face: cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 0, 255), 2) print("(x:",(x+w)/2,",y:",(y+h)/2,")") cv2.imshow("camera",frame);进入for循环,cv2.rectangle()在图上绘制矩形,第一个参数为读取到的图片,第二个参数为左上点的坐标,第二个参数是右下点的坐标,第三个参数是RGB值,第四个参数是矩形边框厚度。 cv2.imshow("camera",frame)将画面展示出来。 if cv2.waitKey(1) & 0xff == ord('q'): break如果键盘输入q则退出死循环,ord()是吧q转换为ASCALL码 camera.release() cv2.destroyAllWindows()关闭窗口和摄像头 四、运行结果新人博主,若有错误之处请指出。 |
CopyRight 2018-2019 实验室设备网 版权所有 |