基于python3+OpenCV如何实现人脸和眼睛识别
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章主要介绍了基于python3+OpenCV如何实现人脸和眼睛识别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、OpenCV
千家信息网最后更新 2024年11月26日基于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安全错误
数据库的锁怎样保障安全
夸克怎么取消代理服务器
苹果手机为什么老是连不上服务器
棋牌软件开发公司湖南
关服务器需要停
山东省移动套餐总显示服务器错误
网络安全的死敌全集
温州共赢网络技术有限公司
苹果有软件开发的软件吗
监控系统中管理服务器
学校网络安全用语宣传标语
想学网络技术怎么选择
ps连接mc自定义服务器
数据库 表复制语句
长沙app软件开发报价
数据库查询每天的数据java
黑龙江北斗授时服务器云空间
微盟服务器管理地址
cc软件开发
金蝶自动安装数据库连接
网络安全使用哪些网络活动
字节跳动软件开发公司
数据库中经常遇到的英文
简述网络安全的要素
苏州人工智能软件开发服务
通用dns服务器
苏州戴尔刀片式服务器
在银行软件开发工作好
杨浦区创新数据库服务商报价行情
access数据库难不难
数据库中的基数是什么意思