python实现人脸检测的实例分析
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"python实现人脸检测的实例分析"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python实现人脸检测的实例分析"文章能帮助大家解决问题。
千家信息网最后更新 2026年11月01日python实现人脸检测的实例分析
这篇文章主要介绍"python实现人脸检测的实例分析"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python实现人脸检测的实例分析"文章能帮助大家解决问题。
OpenCV
OpenCV 是计算机视觉领域最受欢迎的开源库,起初它由 C/C ++ 编写,现在用 Python 也能使用。
OpenCV 可以使用机器学习算法搜索图像中的人脸。由于人脸比较复杂,所以并没有一种简单的测试可以告诉我们它是否发现了人脸。但是,算法能够匹配到数千个很小的模式和特征。算法会将识别人脸的任务分解为几千个非常非常小的任务,像这种很小的任务,解决起来就比较容易了。这样的微小任务就被称为分类器。
代码结果:
方法如下:
寻找导入的xml文件
import cv2 print(cv2.__file__)
找到cv2安装的路径,在该路径下找到/data文件。
里面默认下载了一部分xml文件,不是全部的xml文件。如果需要的xml文件不在里面,需要自行在网上下载,然后放到该目录下,以备调用。比如自行安装('haarcascade_mcs_nose.xml','haarcascade_mcs_mouth.xml')
导入包:
import cv2
导入xml文件,可以根据任务需要,自行选择需要导入的xml文件
#人脸检测器face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')#眼睛检测器eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')#嘴巴检测器mouth_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_mcs_mouth.xml')#鼻子检测器nose_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_mcs_nose.xml')
设置窗口:
cv2.namedWindow('mytest', 0);cv2.resizeWindow('mytest', 1500, 1000)打开摄像头,人脸识别:
#获取摄像头cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)#打开摄像头cap.open(0)while cap.isOpened(): #获取画面 flag, frame = cap.read() #人脸检测 faces = face_cascade.detectMultiScale(frame, 1.3, 2) img = frame for (x, y, w, h) in faces: #根据人脸坐标和长度,宽度画出矩形 img = cv2.rectangle(img, (x, y), (x+w, y+h),(255, 0 ,0), 2) #确定人脸范围,在人脸上搜索其他特征 face_area = img[y:y+h, x:x+w] #人眼检测 eyes = eye_cascade.detectMultiScale(face_area, 1.3, 2) for (ex, ey, ew, eh) in eyes: cv2.rectangle(face_area, (ex, ey), (ex + ew, ey + eh), (255, 0 ,0), 1) #嘴巴检测 mouth = mouth_cascade.detectMultiScale(face_area, 1.5, 2) for (mx, my, mw, mh) in mouth: cv2.rectangle(face_area, (mx, my), (mx + mw, my + mh), (0, 0, 255), 2) # 鼻子检测 nose = nose_cascade.detectMultiScale(face_area, 1.2, 5) for (nx, ny, nw, nh) in nose: cv2.rectangle(face_area, (nx, ny), (nx + nw, ny + nh), (255, 0, 255), 2) #画面显示 cv2.imshow('mytest', img) #设置退出按钮 key_pressed = cv2.waitKey(100) print('单机窗口,输入按键,电脑按键为',key_pressed,'按esc键结束') if key_pressed == 27: break #关闭摄像头cap.release()#关闭图像窗口cv2.destroyAllWindows()完整代码:
import cv2#人脸检测器face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')#眼睛检测器eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')#嘴巴检测器mouth_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_mcs_mouth.xml')#鼻子检测器nose_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_mcs_nose.xml') #获取摄像头cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)#打开摄像头cap.open(0)cv2.namedWindow('mytest', 0);cv2.resizeWindow('mytest', 1500, 1000)while cap.isOpened(): #获取画面 flag, frame = cap.read() #人脸检测 faces = face_cascade.detectMultiScale(frame, 1.3, 2) img = frame for (x, y, w, h) in faces: #根据人脸坐标和长度,宽度画出矩形 img = cv2.rectangle(img, (x, y), (x+w, y+h),(255, 0 ,0), 2) #确定人脸范围,在人脸上搜索其他特征 face_area = img[y:y+h, x:x+w] #人眼检测 eyes = eye_cascade.detectMultiScale(face_area, 1.3, 2) for (ex, ey, ew, eh) in eyes: cv2.rectangle(face_area, (ex, ey), (ex + ew, ey + eh), (255, 0 ,0), 1) #嘴巴检测 mouth = mouth_cascade.detectMultiScale(face_area, 1.5, 2) for (mx, my, mw, mh) in mouth: cv2.rectangle(face_area, (mx, my), (mx + mw, my + mh), (0, 0, 255), 2) # 鼻子检测 nose = nose_cascade.detectMultiScale(face_area, 1.2, 5) for (nx, ny, nw, nh) in nose: cv2.rectangle(face_area, (nx, ny), (nx + nw, ny + nh), (255, 0, 255), 2) #画面显示 cv2.imshow('mytest', img) #设置退出按钮 key_pressed = cv2.waitKey(100) print('单机窗口,输入按键,电脑按键为',key_pressed,'按esc键结束') if key_pressed == 27: break #关闭摄像头cap.release()#关闭图像窗口cv2.destroyAllWindows()关于"python实现人脸检测的实例分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
检测
人脸
检测器
摄像头
文件
摄像
任务
嘴巴
按键
画面
鼻子
实例
实例分析
分析
图像
特征
知识
算法
搜索
人眼
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网黑科技
互联网是第几次科技革命的成果
互联网科技网
互联网科技产业
互联网科技官网
A股互联网金融科技公司
河南真二互联网科技有限公司
重庆互联网络科技
北京互联网络科技有限公司
南京欣网互联网科技
兼蜜互联网科技
互联网科技网站
互联网系的金融科技公司
互联网和黑科技的看法
智腾互联网科技有限公司
长沙茂晟互联网科技有限公司
互联网第三次科技革命特征
中国互联网公司的科技投入
好易买互联网科技
承德科技产业互联网平台
南京欣网互联网络科技有限公司
新华互联网科技学校
小马过河互联网科技
互联网科技公司有哪些
成都互联网科技公司100强
链环科技传统企业怎么转型互联网
上海京穆互联网科技有限公司
互联网科技实习生岗位
上海万顺科技互联网有限公司招聘
互联网科技创业计划的风险分析