Face detection in color images, 彩色图像中的人脸检测
人脸检测在视频监督,人机交互,人脸识别和人脸图像数据库管理等应用领域处于很重要的地位。
论文《Face detection in color images》中给出一种在YCbCr空间检测人脸的方法, 点击下载论文原版_中文翻译_matlab程序。
本文使用MATLAB实现该论文的肤色检测功能。
一、原理部分:
在论文第8页附录A中给出了色素和皮肤模型的非线性变换的公式:将Cb(Y), Cr(Y)通过公式(5)转换为Cb'(Y), Cr'(Y), 公式(5)的未知量可以通过公式(6), (7), (8)求得。公式中很多给定的常量请查阅原文。


在计算出Cb'(Y), Cr'(Y)之后,代入公式(10), 求得x, y, 在将x, y代入公式(9),判断点(x, y)落在椭圆内部还是外部,落在椭圆内部的点认为是肤色区域,用白色标记。落在椭圆外部的点不是肤色区域,用黑色标记。

二、matlab程序:
close all;
clear;
clc; Image_RGB = imread('test.jpg');
Image_YCbCr = rgb2ycbcr(Image_RGB); %得到图片的行数与列数
[row column dim] = size(Image_RGB); for i = : row
for j = : column Y = double(Image_YCbCr(i, j, ));
CbY = double(Image_YCbCr(i, j, ));
CrY = double(Image_YCbCr(i, j, )); if (Y < || Y > )
if (Y < )
%获得Cb,Cr的均值
CbY_Average = + ( - Y) * ( - ) / ( - );%公式()
CrY_Average = - ( - Y) * ( - ) / ( - );%公式() WCbY = + (Y - ) * (46.97 - ) / ( - );%公式()
WCrY = + (Y - ) * (38.76 - ) / ( - );
elseif (Y > )
CbY_Average = + (Y - ) * ( - ) / ( - );
CrY_Average = + (Y - ) * ( - ) / ( - ); WCbY = + ( - Y) * (46.97 - ) / ( - );
WCrY = + ( - Y) * (38.76 - ) / ( - );
end
%求Cb(Kh), Cr(Kh)的均值
CbKh_Anerage = + ( - ) * ( - ) / ( - );
CrKh_Average = + ( - ) * ( - ) / ( - ); Cb = (CbY - CbY_Average) * 46.97 / WCbY + CbKh_Anerage;%公式()
Cr = (CrY - CrY_Average) * 38.76 / WCbY + CrKh_Average; elseif (Y >= && Y <= )
Cb = CbY;%公式()
Cr = CrY;
end
%将Cb,Cr代入椭圆模型
cx=109.38; cy=152.02; ecx=1.60; ecy=2.41;
a=25.39; b=14.03; Theta = 2.53 / pi * ;
m = sin(Theta);
n = cos(Theta); temp = [n, m; -m, n] * [Cb - cx; Cr - cy];
x = temp(, );
y = temp(, );
ellipse = (x - ecx)^ / a^ + (y - ecy)^ / b^; if (ellipse <= )
Image_YCbCr(i, j, :) = ;
else
Image_YCbCr(i, j, :) = ;
end end
end figure;
subplot(); imshow(Image_RGB);title('原图像');
subplot(); imshow(Image_YCbCr);title('处理后图像');
三、运行结果:

Face detection in color images, 彩色图像中的人脸检测的更多相关文章
- Android 中使用 dlib+opencv 实现动态人脸检测
1 概述 完成 Android 相机预览功能以后,在此基础上我使用 dlib 与 opencv 库做了一个关于人脸检测的 demo.该 demo 在相机预览过程中对人脸进行实时检测,并将检测到的人脸用 ...
- 在opencv3中进行图片人脸检测
在opencv中,人脸检测用的是harr或LBP特征,分类算法用的是adaboost算法.这种算法需要提前训练大量的图片,非常耗时,因此opencv已经训练好了,把训练结果存放在一些xml文件里面.在 ...
- python中使用Opencv进行人脸检测
这两天学习了人脸识别,看了学长写的代码,边看边码边理解搞完了一边,再又是自己靠着理解和记忆硬码了一边,感觉还是很生疏,就只能来写个随笔加深一下印象了. 关于人脸识别,首先需要了解的是级联分类器Casc ...
- 实时人脸检测 (Real-Time Face Detection)
源地址:http://blog.sina.com.cn/s/blog_79b67dfe0102uzra.html 最近需要用到人脸检测,于是找了篇引用广泛的论文实现了一下:Robust Real-Ti ...
- 基于图形检测API(shape detection API)的人脸检测
原文:https://paul.kinlan.me/face-detection/ 在 Google 开发者峰会中,谷歌成员 Miguel Casas-Sanchez 跟我说:"嘿 Paul ...
- Dlib库中实现正脸人脸检测的测试代码
Dlib库中提供了正脸人脸检测的接口,这里参考dlib/examples/face_detection_ex.cpp中的代码,通过调用Dlib中的接口,实现正脸人脸检测的测试代码,测试代码如下: #i ...
- 基于TensorFlow Object Detection API进行迁移学习训练自己的人脸检测模型(二)
前言 已完成数据预处理工作,具体参照: 基于TensorFlow Object Detection API进行迁移学习训练自己的人脸检测模型(一) 设置配置文件 新建目录face_faster_rcn ...
- golang中的race检测
golang中的race检测 由于golang中的go是非常方便的,加上函数又非常容易隐藏go. 所以很多时候,当我们写出一个程序的时候,我们并不知道这个程序在并发情况下会不会出现什么问题. 所以在本 ...
- iOS中使用 Reachability 检测网络
iOS中使用 Reachability 检测网络 内容提示:下提供离线模式(Evernote).那么你会使用到Reachability来实现网络检测. 写本文的目的 了解Reachability都 ...
随机推荐
- Vim代码缩进设置
前段配置VPS,无奈只能使用Vim编辑Python代码,比较头疼的没法设置自动缩进,所以搜索了相关的配置,特记录如下. 将以下的设置加入到~/etc/vim/.vimrc中: set sw=4 set ...
- vue router使用query和params传参的使用
传参是前端经常需要用的一个操作,很多场景都会需要用到上个页面的参数,本文将会详细介绍vue router 是如何进行传参的,以及一些小细节问题.有需要的朋友可以做一下参考,希望可以帮到大家. Vue ...
- laravel中设置表单的方式,以及获取表单的提交的数据
- 【zznu-夏季队内积分赛3-G】2333
题目描述 “别人总说我瓜,其实我一点也不瓜,大多数时候我都机智的一批“ 宝儿姐考察你一道很简单的题目.给你一个数字串,你能判断有多少个连续子串能整除3吗? 输入 多实例输入,以EOF结尾,每行一个数字 ...
- Asp.net Core + EF Core + Bootstrap搭建的MVC后台通用管理系统模板(跨平台版本)
Asp.net Core + EF Core + Bootstrap搭建的MVC后台通用管理系统模板(跨平台版本) 原创 2016年07月22日 10:33:51 23125 6月随着.NET COR ...
- HDU 4549 M斐波那契数列(矩阵快速幂+费马小定理)
M斐波那契数列 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submi ...
- I/O流+统计文件词频
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- 【Android测试】UI自动化代码优化之路
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5993622.html 关于UI自动化的抱怨 听过不少人这样 ...
- 用国内镜像源pip加速安装模块
记住,如果使用了virtualenv,一定要先workon进入虚拟环境再执行包安装命令. pip install -i https://pypi.douban.com/simple/ 模块名(如:dj ...
- JavaScript的数组
属性: length(长度) 方法: join(字符);//把数组用指定字符拼接成一个字符串. 例:str.join("-"); //a-b-c-d sort();//排序(自然排 ...