python3.6.3+opencv3.3.0实现动态人脸捕获

作者:艾克思工作室 时间:2022-12-21 11:59:41 

本文实例为大家分享了python实现动态人脸捕获的具体代码,供大家参考,具体内容如下

步骤

  1. 载入cv2

  2. 捕获摄像头

  3. 获取第一帧图像

  4. 定义人脸识别信息

  5. 开始循环

  6. 对第一帧图像进行识别

  7. 标示脸部特征和方框

  8. 显示帧

  9. 如果一切正常则读入下一帧

  10. 循环直至捕获失败

  11. 如果键入‘q'退出循环

  12. 循环结束清零

程序


import cv2
import numpy as np

cv2.namedWindow("Face_Detect") #定义一个窗口
cap=cv2.VideoCapture(0) #捕获摄像头图像
success,frame=cap.read() #读入第一帧

classifier=cv2.CascadeClassifier("C:/opencv-3.3.0/data/haarcascades/haarcascade_frontalface_alt.xml")
**#定义人脸识别的分类数据集,需要自己查找,在opencv的目录下,参考上面我的路径**

while success:#如果读入帧正常
size=frame.shape[:2]
image=np.zeros(size,dtype=np.float16)
image=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
cv2.equalizeHist(image,image)
divisor=8
h,w=size
minSize=(int(w/divisor),int(h/divisor)) #像素一定是整数,或者用w//divisor

faceRects=classifier.detectMultiScale(image,1.2,2,cv2.CASCADE_SCALE_IMAGE,minSize)
#人脸识别

if len(faceRects)> 0:
 for faceRect in faceRects:
  x,y,w,h=faceRect
  cv2.circle(frame,(x+w//2,y+h//2),min(w//2,h//2),(255,0,0),2) #圆形轮廓
  cv2.circle(frame,(x+w//4,y+2*h//5),min(w//8,h//8),(0,255,0),2) #左眼轮廓
  cv2.circle(frame,(x+3*w//4,y+2*h//5),min(w//8,h//8),(0,255,0),2)#右眼轮廓
  cv2.circle(frame,(x+w//2,y+2*h//3),min(w//8,h//8),(0,255,0),2) #鼻子轮廓
  cv2.rectangle(frame, (x, y), (x+w, y+h), (0,0,255),2)   #矩形轮廓

cv2.imshow("Face_Detect",frame)
#显示轮廓
success,frame=cap.read()#如正常则读入下一帧

c=chr(key&255)
if c in ['q','Q',chr(27)]:#如果键入‘q'退出循环
 print('exit'\n)
 break#退出循环

#循环结束则清零
cap.release()
cv2.destroyAllWindows()

运行后如下:

python3.6.3+opencv3.3.0实现动态人脸捕获

python3.6.3+opencv3.3.0实现动态人脸捕获

python3.6.3+opencv3.3.0实现动态人脸捕获

来源:https://blog.csdn.net/m0_37606112/article/details/78278427

标签:python,opencv,人脸捕获
0
投稿

猜你喜欢

  • python爬虫之urllib,伪装,超时设置,异常处理的方法

    2022-07-23 23:47:10
  • Python实现调用摄像头拍摄照片

    2021-01-22 12:22:25
  • 解读python基于netconf协议获取网元的数据

    2023-06-29 20:26:23
  • 通过mod_python配置运行在Apache上的Django框架

    2021-07-09 17:54:45
  • 基于Python3制作一个带GUI界面的小说爬虫工具

    2023-04-02 17:33:04
  • 利用Vue实现卡牌翻转的特效

    2024-04-30 10:30:45
  • OpenCV 图像分割实现Kmean聚类的示例代码

    2023-08-10 18:59:41
  • PHP5中新增stdClass 内部保留类

    2024-05-09 14:47:55
  • PyQt5 matplotlib画图不刷新的解决方案

    2021-06-14 14:43:39
  • jquery实用技巧之输入框提示语句

    2024-04-22 12:49:10
  • Jupyter notebook远程访问服务器的方法

    2022-12-25 22:04:36
  • python实现数通设备tftp备份配置文件示例

    2022-12-02 13:59:21
  • python项目报错:bs4.FeatureNotFound: Couldn‘t find a tree builder with the features you requests

    2022-07-17 05:39:02
  • 网页屏蔽鼠标左右键和键盘按键功能

    2007-10-17 21:30:00
  • python实现的批量分析xml标签中各个类别个数功能示例

    2021-01-16 00:22:00
  • Python Numpy实现计算矩阵的均值和标准差详解

    2021-12-20 09:51:20
  • 详解Python中的装饰器、闭包和functools的教程

    2023-12-30 13:43:03
  • 基于Python正确读取资源文件

    2022-04-10 11:34:18
  • MySQL启用慢查询日志记录方法

    2024-01-25 11:42:16
  • Python实现扫码工具的示例代码

    2022-07-06 06:06:36
  • asp之家 网络编程 m.aspxhome.com