基于python3+OpenCV如何实现人脸和眼睛识别
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章主要介绍了基于python3+OpenCV如何实现人脸和眼睛识别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、OpenCV
千家信息网最后更新 2025年11月13日基于python3+OpenCV如何实现人脸和眼睛识别
这篇文章主要介绍了基于python3+OpenCV如何实现人脸和眼睛识别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
一、OpenCV人脸检测的xml文件下载
人脸检测和眼睛检测要用到haarcascade_eye.xml和haarcascade_frontalface_default.xml这两个文件,这两个文件可以在OpenCV的官网下载,具体下载方法如下:
1、打开要下载的xml文件,如下图:
2、点击Raw:
3、在新打开的网页中右击,选择另存为,最后保存就可以了。
二、人脸检测文件的导入以及图片的处理
接下来就可以在代码中载入刚才下载的两个xml文件,再将要识别的图片进行灰度处理了,代码如下:
import cv2# 载入人脸识别和眼睛识别的两个xml文件face_xml = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')eye_xml = cv2.CascadeClassifier('haarcascade_eye.xml')# 载入图片img = cv2.imread('face.jpg')cv2.imshow('src', img)# 灰度处理gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)我们用到的原图如下:
三、人脸识别并用方框显示人脸位置
利用face_xml.detectMultiScale()方法识别出人脸的位置,并利用cv2.rectangle()绘制方框,具体代码如下:
# 人脸识别face = face_xml.detectMultiScale(gray, 1.3, 2) # 参数:1、灰度图片, 2、缩放比例, 3、阈值print("这张图片中有%d张人脸" % len(face))# 绘制出识别到的人脸for (x, y, w, h) in face: cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2) # 绘制人脸方框 cv2.imshow('dst', img) cv2.waitkey(0)识别的效果如下:
四、眼睛识别并用方框显示眼睛位置
和人脸识别类似,不过眼睛识别是在人脸识别的基础上再进行识别的,所以将人脸的图片进行灰度化处理,再识别,代码如下:
# 在人脸的基础上识别眼睛 face_gray = gray[y:y+h, x:x+w] face_color = img[y:y+h, x:x+w] # 眼睛识别 eyes = eye_xml.detectMultiScale(face_gray) print("在这张脸上有%d个眼睛" % len(eyes)) # 绘制出识别到的眼睛 for (e_x, e_y, e_w, e_h) in eyes: cv2.rectangle(face_color, (e_x, e_y), (e_x+e_w, e_y+e_h), (0, 255, 0), 2) # 绘制眼睛方框五、源码及效果
源码如下:
# -*- coding: utf-8 -*-"""------------------------------------------------- File Name: 03-face.py Description : 基于OpenCV的人脸和眼睛识别 Author : 小恋莫小哀 Email: xiaowen0392@qq.com date: 2019/6/2------------------------------------------------- Change Activity: 2019/6/2:-------------------------------------------------"""__author__ = 'WWQ'import cv2# 载入人脸识别和眼睛识别的两个xml文件face_xml = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')eye_xml = cv2.CascadeClassifier('haarcascade_eye.xml')# 载入图片img = cv2.imread('face.jpg')cv2.imshow('src', img)# 灰度处理gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 人脸识别face = face_xml.detectMultiScale(gray, 1.3, 2) # 参数:1、灰度图片, 2、缩放比例, 3、阈值print("这张图片中有%d张人脸" % len(face))# 绘制出识别到的人脸for (x, y, w, h) in face: cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2) # 绘制人脸方框 # cv2.imshow('dst', img) # 在人脸的基础上识别眼睛 face_gray = gray[y:y+h, x:x+w] face_color = img[y:y+h, x:x+w] # 眼睛识别 eyes = eye_xml.detectMultiScale(face_gray) print("在这张脸上有%d个眼睛" % len(eyes)) # 绘制出识别到的眼睛 for (e_x, e_y, e_w, e_h) in eyes: cv2.rectangle(face_color, (e_x, e_y), (e_x+e_w, e_y+e_h), (0, 255, 0), 2) # 绘制眼睛方框cv2.imshow('dst', img)cv2.waitKey(0)效果如下:
感谢你能够认真阅读完这篇文章,希望小编分享的"基于python3+OpenCV如何实现人脸和眼睛识别"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
人脸
眼睛
图片
文件
方框
灰度
两个
处理
代码
篇文章
检测
位置
基础
效果
参数
方法
比例
源码
阈值
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
wow怀旧服五区服务器哪个好
电站网络安全通讯
怎么进入数据库管理编辑器
服务器如何开启ftp
手机网络软件开发
网络安全实训周记
服务器电源插座怎么选择
寝室网络安全短视频
重庆大数据软件开发价钱是多少
常州微型软件开发配置
魔兽十区服务器是电信
网络层网络技术术语
有关网络安全的小学数学问题
客源数据库
怎么把电脑主机当服务器
甘肃家庭教育和网络安全课
软件开发忙不
软件开发时间进度计划表
软件开发工程师 资质
怎么把共享文件上传到服务器
江阴品牌软件开发价格表
逻辑思维网络安全
崇明区专业型数据库销售品质保障
乐昂网络技术
小海聊软件开发
数据库创新应用实验室
证券软件开发有法律责任吗
榆林市易德软件开发有限公司
网络安全9月17日
租用的mc服务器怎么管理