matlab编程--基于肤色分割和匹配的人脸识别

matlab编程--基于肤色分割和匹配的人脸识别

ID:38850387

大小:411.00 KB

页数:14页

时间:2019-06-20

matlab编程--基于肤色分割和匹配的人脸识别_第1页
matlab编程--基于肤色分割和匹配的人脸识别_第2页
matlab编程--基于肤色分割和匹配的人脸识别_第3页
matlab编程--基于肤色分割和匹配的人脸识别_第4页
matlab编程--基于肤色分割和匹配的人脸识别_第5页
资源描述:

《matlab编程--基于肤色分割和匹配的人脸识别》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于肤色分割和匹配的人脸识别1.将RGB空间转换为YCbCr空间:为了把人脸区域从非人脸区域分割出来,需要使用适合不同肤色和不同光照条件的可靠的肤色模型。常用的RGB表示方法不适合于皮肤模型,在RGB空间,三基色(r、g、b)不仅代表颜色,还表示了亮度。由于周围环境光照的改变,亮度可能使人脸的检测变得更加复杂,在皮肤的分割过程中是不可靠的。为利用肤色在色度空间的聚类性,需要把颜色表达式中的色度信息与亮度信息分开,将R、G、B转换为色度与亮度分开的色彩表达空间可以达到这个目的。颜色空间的转换常用的颜色模型主要有:YCrCb、HSV

2、、YIQ等。在本文的实验中选用YCrCb空间作为肤色分布统计的映射空间,该空间的优点是受亮度变化的影响较小,而且是两维独立分布,能较好地限制肤色分布区域。使用函数为:YCBCR=rgb2ycbcr(RGB);2.将彩色图像转换为灰度图像,实验证明,不同的肤色具有相同的2D模型G(m,V^2)。灰度值对应属于皮肤区域的可能性,同过设定门限,就可以转换为二值图像,1,0分别表示皮肤和非皮肤区域。皮肤颜色在ycbcr色度空间的分布范围为:100<=cb<=127,138<=cr<=170,可以将彩色图像转换为二值图像:f_cb=f(:

3、,:,2);f_cr=f(:,:,3);f=(f_cb>=100)&(f_cb<=127)&(f_cr>=138)&(f_cr<=170);figure;imshow(f);3.转换后不可避免出现了噪声,有背景的噪声影响,以及人的衣服和裤子引起的噪声点,使用开闭运算的方法消除噪声:se=strel('square',3);f=imopen(f,se);f=imclose(f,se);figure(2),imshow(f);4.对图像做填孔处理f=imfill(f,'holes');figure(3),imshow(f);5.对图

4、像进行重构,即利用重构进行开运算,可准确恢复腐蚀后的对象形状.fe=imerode(f,ones(8,7));fo=imopen(f,ones(8,7));f=imreconstruct(fe,f);figure(4),imshow(f);6.相关匹配,实际作用效果不大,可以注释掉.%w=ones(3);%f=imfilter(f,w);%figure(5),imshow(f);%[M,N]=size(f);%f=fft2(f);%w=conj(fft2(w,M,N));%g=real(ifft2(w.*f));%gs=gsca

5、le(g);%figure,imshow(gs);7.人脸候选区筛选时,由于头部部分重合,以及头部与其他部分,例如衣服等的连接,对筛选造成了困难,故应先利用闭运算操作,断开连接,再进行处理.se1=strel('square',8);f=imerode(f,se1);f=imdilate(f,se1);figure(6),imshow(f);8.利用人脸候选区筛选,进一步确定人脸区域(判断规则如下):(1)若目标高宽比小于0.8而大于2.0,则认为不是人脸区域,删除此区域。(2)区域面积过大或过小,认为不是人脸区,删除此区域。矩

6、形面积area_sq=目标区长度*宽度,目标区面积为area,若area/area_sq<0.6,则认为不是人脸区域。其中条件1限定了要检测的人脸区域的比例大小,排除了一些颜色类似皮肤但长宽不符合要求的区域。(如颜色与皮肤接近的衣物)条件2排除一些不规则但色调和皮肤接近的物体,同时也可排除人体其他的非脸部区域,如四肢等。[L,num]=bwlabeln(f,4);fori=1:num;[r,c]=find(L==i);r_temp=max(r)-min(r);c_temp=max(c)-min(c);temp=size(r);s

7、um=sum+temp(1);area_sq=r_temp*c_temp;area=size(find(L==i),1);ratio=area/area_sq;if(r_temp/c_temp<0.8)

8、(r_temp/c_temp>2)

9、temp(1)>2000

10、temp(1)<200

11、ratio<0.6%脸部区域<200的去掉,一般为手或其他干扰.%利用脸部宽长比的大概上下限来确定一个模板范围.%矩形面积s=目标区长度*宽度,目标区面积为ss,若ss/s<0.6,认为不是%人脸区,删除之.forj=1:temp(1);L(r

12、(j),c(j))=0;endelsecontinue;endend9.利用边缘检测,检测出人脸;利用得到的边缘,对原图像进行处理,就可以在原图中画出人脸区域的框图.可以看出,由于人手交叉放置,所以不管从肤色还是形状以及面积比上,都很难将其识别和删除,所以出现了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。