基于python3+OpenCV如何实现人脸和眼睛识别
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了基于python3+OpenCV如何实现人脸和眼睛识别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、OpenCV
千家信息网最后更新 2026年11月02日基于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安全错误
数据库的锁怎样保障安全
咖啡豆
互联网黑科技
互联网佳科技有限公司
科技和互联网公司
互联网下的科技发展
互联网科技未来
互联网科技开发公司
互联网 科技公司
广州互联网科技公司
互联网科技的发展
有马互联网科技
上海卓越科技 互联网
甘肃拓世互联网科技有限公司
随着互联网科技发展
互联网科技公司有风险吗
恒生互联网科技指数跳水
亳州好赞互联网科技有限公司
国大互联网教育科技有限公司薪资
广东工业互联网大赛深圳学泰科技
科技互联网专业务虚会材料
互联网科技园
互联网金融公司科技
互联网科技缩写
广州凡科互联网科技
现代科技和互联网有关系吗
恒银科技与互联网金融
港股科技和互联网
互联网科技和法律行业
长沙茂晟互联网科技有限公司
马化腾互联网科技教学