时间:2021-05-22
一、准备依赖库
pip install dlibpip python-opencv二、代码实现
#coding: utf-8"""从视屏中识别人脸,并实时标出面部特征点"""import dlib #人脸识别的库dlibimport cv2 #图像处理的库OpenCv# 使用特征提取器get_frontal_face_detectordetector = dlib.get_frontal_face_detector()# 读入视频文件# cap = cv2.VideoCapture("row.MP4")#建cv2摄像头对象,这里使用电脑自带摄像头,如果接了外部摄像头,则自动切换到外部摄像头cap = cv2.VideoCapture(0)# 设置视频参数,propId设置的视频参数,value设置的参数值cap.set(3, 480)# 截图screenshoot的计数器cnt = 0# cap.isOpened() 返回true/false 检查初始化是否成功while(cap.isOpened()): # cap.read() # 返回两个值: # 一个布尔值true/false,用来判断读取视频是否成功/是否到视频末尾 # 图像对象,图像的三维矩阵 flag, im_rd = cap.read() # 每帧数据延时1ms,延时为0读取的是静态帧 k = cv2.waitKey(1) # 取灰度 img_gray = cv2.cvtColor(im_rd, cv2.COLOR_RGB2GRAY) # 使用人脸检测器检测每一帧图像中的人脸。并返回人脸数rects faces = detector(img_gray, 0) # 待会要显示在屏幕上的字体 font = cv2.FONT_HERSHEY_SIMPLEX # 如果检测到人脸 if(len(faces)!=0): # 对每个人脸都画出框框 for i in range(len(faces)): # enumerate方法同时返回数据对象的索引和数据,k为索引,d为faces中的对象 for k, d in enumerate(faces): # 用红色矩形框出人脸 cv2.rectangle(im_rd, (d.left(), d.top()), (d.right(), d.bottom()), (0, 255, 0),2) # 计算人脸热别框边长 face_width = d.right() - d.left() #在上方显示文字 cv2.putText(im_rd, str(face_width) , (d.left(), d.top()-20), font, 0.5, (255, 0, 0), 1) # 标出人脸数 cv2.putText(im_rd, "Faces: "+str(len(faces)), (20,50), font, 1, (0, 0, 255), 1, cv2.LINE_AA) else: # 没有检测到人脸 cv2.putText(im_rd, "No Face", (20, 50), font, 1, (0, 0, 255), 1, cv2.LINE_AA) # 添加说明 im_rd = cv2.putText(im_rd, "S: screenshot", (20, 400), font, 0.8, (0, 0, 255), 1, cv2.LINE_AA) im_rd = cv2.putText(im_rd, "Q: quit", (20, 450), font, 0.8, (0, 0, 255), 1, cv2.LINE_AA) #检测按键 k = cv2.waitKey(1) # 按下s键截图保存 if (k == ord('s')): cnt+=1 cv2.imwrite("screenshoot"+str(cnt)+".jpg", im_rd) # 按下q键退出 if(k == ord('q')): break # 窗口显示 cv2.imshow("camera", im_rd)# 释放摄像头cap.release()# 删除建立的窗口cv2.destroyAllWindows()三、实验结果
到此这篇关于python3.8动态人脸识别的实现示例的文章就介绍到这了,更多相关python3.8动态人脸识别内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
python3.8新功能相关文章Python3.8新功能大揭秘【新手必学】Python3.8新功能来一波(大部分人都不知道)第一步下载python3.8,官网下
个人使用环境WIN10x64系统,Python3.8,PyCharm2020.01.03安装过程一、安装Python3.8(自己参考其他教程)二、安装PyQt5
Python3.8是Python语言的最新版本,它适合用于编写脚本、自动化以及机器学习和Web开发等各种任务。现在Python3.8已经进入官方的beta阶段,
前言我最近都在写一些Python3.8的新功能介绍的文章,在自己的项目中也在提前体验新的Python版本。为什么我对这个Python3.8这么有兴趣呢?主要是因
这篇文章主要介绍了python3.8微信发送服务器监控报警消息代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可