环境:Windows XP+MATLAB 2010b
基本思路:
1)将基于彩色空间的RGB模型转换为YCbCr模型(考虑到人脸的生理特征,只采取了Cr分量作为辅助)
2)阈值分割,根据多次实验发现,正常黄种人的Cr分量大约在140~·160之间
3)滤波,本实验采用性能较好的中值滤波
4)特征区域提取,利用matlab的bwlabel函数
5)对标记的特征区域利用高宽度之比和面积两个指数来进一步简化特征区域
具体实验代码及原理讲解
1)rgb->ycbcr
%公式 Y = 0.2990*R + 0.5780*G + 0.1140*B + 0
%公式 Cr = 0.5000*R - 0.4187*G - 0.0813*B + 128
%公式 Cb = -0.1687*R - 0.3313*G + 0.5000*B + 128
(参见http://en.wikipedia.org/wiki/YCbCr)
本实验直接采用mtalab自带函数rgb2ycbcr()转换就OK了。
I1=imread('blue_lg.jpg');
si=size(I1);
m=si(1);n=si(2);
img1=rgb2ycbcr(I1);
cr1=img1(:,:,3);%大小为mxn的二维矩阵
</