基于python3+OpenCV如何实现人脸和眼睛识别
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍了基于python3+OpenCV如何实现人脸和眼睛识别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、OpenCV
千家信息网最后更新 2025年01月20日基于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安全错误
数据库的锁怎样保障安全
数据库查询sql实验
软件开发与设计专升本考什么
飞腾gpu 服务器
微果网络技术
如何删除数据库一列
软件开发项目 工作汇报
隆回悦尚软件开发
天采互联网科技有限公司
网络安全隔离控制系统
国家网络安全对国家和个人
说网络安全的重要性
东莞市网诚网络技术
电子商务中应用的网络技术
rds没有管理服务器
pes2018服务器
数据库权限申请
我的世界服务器帮玩家改地形
2017网络安全先进个人
数据库配置助手错误
服务器环境配置
宣威市百佳网络技术服务部
黄石靠谱的软件开发公司
手机服务器未响应
酒店网络安全机器安装
软件开发破解考勤
济南交易软件开发
大涌软件开发
小米音响软件开发版
云数据库多长时间可建成
服务器加raid