OpenCV-Python 人脸眼睛嘴识别
# 识别眼睛、嘴巴、人脸
image = cv2.imread('./yong.jpg') gray = cv2.cvtColor(image,code=cv2.COLOR_BGR2BGRA)
# 加载算法
face_detector = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')
eye_detector = cv2.CascadeClassifier('./haarcascade_eye.xml')
mouth_detector = cv2.CascadeClassifier('./haarcascade_mcs_mouth.xml') face_zone = face_detector.detectMultiScale(gray,1.3,3,minSize=(80,80))
print(face_zone)
for x,y,w,h in face_zone:
cv2.rectangle(image, pt1=(x,y),pt2=(x+w,y+h), color=[0,0,255],thickness=2) # 人脸切分
h_up = int(face_zone[0,-1]*0.6)
x,y,w,h = face_zone.reshape(-1)
# 头部
head = gray[y:y+h,x:x+w]
head_up = head[0:h_up]
head_down = head[h_up:]
# 检测眼睛
eye_zone = eye_detector.detectMultiScale(head_up,1.3,3,minSize=(10,10))
for ex,ey,ew,eh in eye_zone:
cv2.rectangle(image, pt1=(ex + x,ey+y), pt2=(ex+ew+x,ey+eh+y),color=[0,255,0],thickness=1) # 检查嘴
mouth_zone = mouth_detector.detectMultiScale(head_down,1.3,3,minSize=(10,10))
for mx,my,mw,mh in mouth_zone:
cv2.rectangle(image, pt1=(mx + x,my+y+h_up), pt2=(mx+mw+x,my+mh+y+h_up),color=[255,0,0],thickness=1) cv2.imshow('liyong', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
代码第一行: 导入图片
第二行: 灰度化处理
第六--九行: 读取特征数据,并使用分类器对特征数据进行处理
第十--十三行: 进行人脸识别
第十五--二十一行: 进行人脸切分,在上部分识别眼睛;人脸下部分识别嘴的预处理
第二十三--二十五行: 识别眼睛
第二十八--三十行: 识别嘴
将人脸眼睛替换成自定义眼睛:
只需要将上面的第24到25行修改成
eye = cv2.imread('./eye.jpg')
for ex,ey,ew,eh in eye_zone:
# cv2.rectangle(image, pt1=(ex + x,ey+y), pt2=(ex+ew+x,ey+eh+y),color=[0,255,0],thickness=1)
# 眼睛缩放
eye2 = cv2.resize(eye,dsize=(ew,eh))
# 替换
image[y+ey: y+ey+eh,ex+x:ex+x+ew] = eye2
eye2 = cv2.resize(eye,dsize=(ew,eh)) 将读取的图片换成识别出的眼睛大小
OpenCV-Python 人脸眼睛嘴识别的更多相关文章
- OpenCV + Python 人脸检测
必备知识 Haar-like opencv api 读取图片 灰度转换 画图 显示图像 获取人脸识别训练数据 探测人脸 处理人脸探测的结果 实例 图片素材 人脸检测代码 人脸检测结果 总结 下午的时候 ...
- 基于OpenCv的人脸检测、识别系统学习制作笔记之三
1.在windows下编写人脸检测.识别系统.目前已完成:可利用摄像头提取图像,并将人脸检测出来,未进行识别. 2.在linux下进行编译在windows环境下已经能运行的代码. 为此进行了linux ...
- OpenCV+python 人脸识别
首先给大家推荐一本书:机器学习算法原理与编程实践 本文内容全部转载于书中,相当于一个读书笔记了吧 绪论 1992年麻省理工学院通过实验对比了基于结构特征的方法与基于模版匹配的方法,发现模版匹配的方法要 ...
- 基于QT和OpenCV的人脸检測识别系统(2)
紧接着上一篇博客的讲 第二步是识别部分 人脸识别 把上一阶段检測处理得到的人脸图像与数据库中的已知 人脸进行比对,判定人脸相应的人是谁(此处以白色文本显示). 人脸预处理 如今你已经得到一张人脸,你能 ...
- 基于Opencv的人脸检测及识别
一.实验目的:我这里完成的是,将8张人脸图片(4组,每组两张)存入库中,选取1张图片,程序识别出与其匹配的另一张. 这里介绍分三个步骤完成该工作,①程序读取摄像头.拍照 ②程序从电脑文档中读取图片 ...
- 基于OpenCv的人脸检测、识别系统学习制作笔记之一
基于OpenCv从视频文件到摄像头的人脸检测 在OpenCv中读取视频文件和读取摄像头的的视频流然后在放在一个窗口中显示结果其实是类似的一个实现过程. 先创建一个指向CvCapture结构的指针 Cv ...
- 基于QT和OpenCV的人脸检測识别系统(1)
人脸识别分为两大步骤 1.人脸检測 这个是首要实现的.你得实现人脸显示的时候把人脸框出来,当然算法非常多,另一些人眼检測鼻子检測什么的 主要用的是这个 const char *faceCascadeF ...
- 基于OpenCv的人脸检测、识别系统学习制作笔记之二
在网上找到了一个博客,里面有大量内容适合初学者接触和了解人脸检测的博文,正好符合我目前的学习方面,故将链接放上来,后续将分类原博客的博文并加上学习笔记. 传送门: http://blog.sina.c ...
- opencv+opencv_contrib 人脸识别和检测 python开发环境快速搭建(30分钟)图文教程
很多朋友为了学习python.ML(机器学习).DL(深度学习).opencv等花费了大量时间配置安装环境(一个朋友花了4天时间才配置好)各种搜索.下载.安装配置,出问题等. 市面上的配置资料很多,选 ...
随机推荐
- (转) 在PHP中使用全局变量
简介 即使开发一个新的大型PHP程序,你也不可避免的要使用到全局数据,因为有些数据是需要用到你的代码的不同部分的.一些常见的全局数据有:程序设定类.数据库连接类.用户资料等等.有很多方法能够使这些数据 ...
- GIT团队合作探讨之三--使用分支
这篇文章是一个作为对git branch的综合介绍.首先,我们会看看创建branch,这有点像是请求一个新的项目历史.然后,我们看看git checkout是如何能够被用来选择一个branch,最后看 ...
- Day01——Python简介
一.Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...
- Python学习---重点模块之shelve
简单示例 import shelve f = shelve.open(r'shelve.txt') f['info'] = {'name':'ftl', 'age':23, 'sex': 'male' ...
- 正则表达式 (python 2)
Python提供re模块,包含所有正则表达式的功能.由于Python的字符串本身也用\转义,所以要特别注意: s = 'ABC\\-001' # Python的字符串# 对应的正则表达式字符串变成:# ...
- July 21st 2017 Week 29th Friday
If you want to fly too high in relation to the horizon forget. 要想飞得高,就该把地平线忘掉. Always keep our eyes ...
- hive 的一个小问题
hive查询语句中如果包含中文,如like '%奥巴马%' ,并且所查hive表中的数据是utf-8的,可能会查不出正确结果. 原因可能是系统环境的LANG 设置不是utf-8,需要把环境变量LANG ...
- UVa 1638 - Pole Arrangement(dp)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- BZOJ2756:[SCOI2012]奇怪的游戏(最大流,二分)
Description Blinker最近喜欢上一个奇怪的游戏. 这个游戏在一个 N*M 的棋盘上玩,每个格子有一个数.每次 Blinker 会选择两个相邻 的格子,并使这两个数都加上 1. 现在 B ...
- C# Windows服务的安装和卸载批处理
@ECHO "请按任意键开始安装后台服务. . ."@ECHO "清理原有服务项. . ."%SystemRoot%\Microsoft.NET\Framewo ...