基于某matlab程序实现人脸识别.doc

上传人:桔**** 文档编号:557762863 上传时间:2022-12-31 格式:DOC 页数:15 大小:26.50KB
返回 下载 相关 举报
基于某matlab程序实现人脸识别.doc_第1页
第1页 / 共15页
基于某matlab程序实现人脸识别.doc_第2页
第2页 / 共15页
基于某matlab程序实现人脸识别.doc_第3页
第3页 / 共15页
基于某matlab程序实现人脸识别.doc_第4页
第4页 / 共15页
基于某matlab程序实现人脸识别.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《基于某matlab程序实现人脸识别.doc》由会员分享,可在线阅读,更多相关《基于某matlab程序实现人脸识别.doc(15页珍藏版)》请在金锄头文库上搜索。

1、基于某matlab程序实现人脸识别基于matlab程序实现人脸识别1. 人脸识别流程1.1.1基本原理基于YCbCr颜色空间的肤色模型进行肤色分割。在YCbCr色彩空间对肤色进行了建模发现,肤色聚类区域在CbCr子平面上的投影将缩减,与中心区域显著不同。采用这种方法的图像分割已经能够较为精确的将人脸和非人脸分割开来。1.1.2流程图人脸识别流程图读入原始图像将图像转化为YCbCr颜色空间利用肤色模型二值化图像并作形态学处理选取出二值图像中的白色区域,度量区域属性,筛选后得到所有矩形块否筛选特定区域(高度和宽度的比率在(0.62)之间,眼睛特征)是存储人脸的矩形区域特殊区域根据其他信息筛选,标记

2、最终的人脸区域2. 人脸识别程序(1)人脸和非人脸区域分割程序functionresult=skin(Y,Cb,Cr)%SKINSummaryofthisfunctiongoeshere% Detailedexplanationgoesherea=25.39;b=14.03;ecx=1.60;ecy=2.41;sita=2.53;cx=109.38;cy=152.02;xishu=cos(sita)sin(sita);-sin(sita)cos(sita);%如果亮度大于230,则将长短轴同时扩大为原来的1.1倍if(Y230)a=1.1*a;b=1.1*b;end%根据公式进行计算Cb=do

3、uble(Cb);Cr=double(Cr);t=(Cb-cx);(Cr-cy);temp=xishu*t;value=(temp(1)-ecx)2/a2+(temp(2)-ecy)2/b2;%大于1则不是肤色,返回0;否则为肤色,返回1ifvalue1result=0;elseresult=1;endend(2)人脸的确认程序functioneye=findeye(bImage,x,y,w,h)%FINDEYESummaryofthisfunctiongoeshere% Detailedexplanationgoesherepart=zeros(h,w);%二值化fori=y:(y+h)fo

4、rj=x:(x+w)ifbImage(i,j)=0part(i-y+1,j-x+1)=255;elsepart(i-y+1,j-x+1)=0;endendendL,num=bwlabel(part,8);%如果区域中有两个以上的矩形则认为有眼睛ifnum2eye=0;elseeye=1;endend(3)人脸识别主程序clearall;%读入原始图像I=imread(face3.jpg);gray=rgb2gray(I);ycbcr=rgb2ycbcr(I);%将图像转化为YCbCr空间heighth=size(gray,1);%读取图像尺寸width=size(gray,2);fori=1:

5、heighth%利用肤色模型二值化图像forj=1:widthY=ycbcr(i,j,1);Cb=ycbcr(i,j,2);Cr=ycbcr(i,j,3);if(Y1ux=ux-1;endifuy1uy=uy-1;endifw20|h20|w*h400%矩形长宽的围和矩形的面积可自行设定continueelseifratio0.6&findeye(gray,ux,uy,w,h)=1%根据“三庭五眼”规则高度和宽度比例应该在(0.6,2);result(n,:)=uxuywh;n=n+1;endendifsize(result,1)=1&result(1,1)0%对可能是人脸的区域进行标记rec

6、tangle(Position,result(1,1),result(1,2),result(1,3),result(1,4),EdgeColor,r);else%如果满足条件的矩形区域大于1,则再根据其他信息进行筛选a=0;arr1=;arr2=;form=1:size(result,1)m1=result(m,1);m2=result(m,2);m3=result(m,3);m4=result(m,4);%得到符合和人脸匹配的数据ifm1+m3width&m2+m4heighth&m30.2*widtha=a+1;arr1(a)=m3;arr2(a)=m4;%rectangle(Posit

7、ion,m1,m2,m3,m4,EdgeColor,r);endend%得到人脸长度和宽度的最小区域arr3=;arr3=sort(arr1,ascend);arr4=;arr4=sort(arr2,ascend);%根据得到的数据标定最终的人脸区域form=1:size(result,1)m1=result(m,1);m2=result(m,2);m3=result(m,3);m4=result(m,4);%最终标定人脸ifm1+m3width&m2+m4heighth&m30.2*widthm3=arr3(1);m4=arr4(1);rectangle(Position,m1,m2,m3,

8、m4,EdgeColor,r);endendend(4)程序说明人脸识别程序主要包含三个程序模块,人脸识别主程序由三部分构成。第一部分:将图像转化为YCbCr颜色空间,根据色彩模型进行图像二值化,二值化图像进行形态学处理、开运算,显示二值图像;第二部分:采用标记方法选取出图中的白色区域,度量区域属性,存放经过筛选以后得到的所有矩形块,筛选特定区域,存储人脸的矩形区域;第三部分:对于所有人脸的矩形区域,如果满足条件的矩形区域大于1则再根据其他信息进行筛选,标记最终的人脸区域。图像分割程序中,利用肤色可以较为精确的将人脸和非人脸区域分割开来,得到较为精确的二值化图像。人脸的确认程序,以存储的所有矩形区域作为研究对象,当区域有眼睛存在时,才认为此区域为人脸区域3 运行结果(1)第一幅图原始图像肤色分割的二值化图像人脸识别图像(2)第二幅图原始图像肤色分割的二值化图像人脸识别图像(3)第三幅图原始图像肤色分割的二值化图像人脸标定

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号