1、基于 matlab 程序实现人脸识别1.人脸识别流程1.1.1 基本原理基于 YCbCr 颜色空间的肤色模型进行肤色分割。在 YCbCr 色彩空间内对肤色进行了建模发现,肤色聚类区域在 CbCr 子平面上的投影将缩减,与中心区域显著不同。采用这种方法的图像分割已经能够较为精确的将人脸和非人脸分割开来。1.1.2 流程图人脸识别流程图读 入 原 始 图 像将 图 像 转 化 为 YCbCr颜 色 空间利 用 肤 色 模 型 二 值 化 图 像 并作 形 态 学 处 理选 取 出 二 值 图 像 中 的 白 色 区域 , 度 量 区 域 属 性 , 筛 选 后得 到 所 有 矩 形 块筛 选 特
2、定 区 域 ( 高 度 和 宽 度 的 比 率在 ( 0.62) 之 间 , 眼 睛 特 征 )存 储 人 脸 的 矩 形 区 域是特 殊 区 域 根 据 其 他 信 息 筛选 , 标 记 最 终 的 人 脸 区 域否2.人脸识别程序(1)人脸和非人脸区域分割程序function result = skin(Y,Cb,Cr)%SKIN Summary of this function goes here% Detailed explanation goes herea=25.39;b=14.03;ecx=1.60;ecy=2.41;sita=2.53;cx=109.38;cy=152.02;x
3、ishu=cos(sita) sin(sita);-sin(sita) cos(sita);%如果亮度大于 230,则将长短轴同时扩大为原来的 1.1 倍if(Y230)a=1.1*a;b=1.1*b;end%根据公式进行计算Cb=double(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;否则为肤色,返回 1if value1result=0;elseresult=1;endend(2)人脸的确认程序function eye
4、 = findeye(bImage,x,y,w,h)%FINDEYE Summary of this function goes here% Detailed explanation goes herepart=zeros(h,w);%二值化for i=y:(y+h)for j=x:(x+w)if bImage(i,j)=0part(i-y+1,j-x+1)=255;elsepart(i-y+1,j-x+1)=0;endendendL,num=bwlabel(part,8);%如果区域中有两个以上的矩形则认为有眼睛if num1ux=ux-1;endif uy1uy=uy-1;endif w0
5、.6 n=n+1;endendif size(result,1)=1 else%如果满足条件的矩形区域大于 1,则再根据其他信息进行筛选a=0;arr1=;arr2=; for m=1:size(result,1)m1=result(m,1);m2=result(m,2);m3=result(m,3);m4=result(m,4);%得到符合和人脸匹配的数据if m1+m3width arr1(a)=m3;arr2(a)=m4;%rectangle(Position,m1,m2,m3,m4,EdgeColor,r);endend%得到人脸长度和宽度的最小区域arr3=;arr3=sort(ar
6、r1,ascend);arr4=;arr4=sort(arr2,ascend);%根据得到的数据标定最终的人脸区域for m=1:size(result,1)m1=result(m,1);m2=result(m,2);m3=result(m,3);m4=result(m,4);%最终标定人脸if m1+m3width m4=arr4(1);rectangle(Position,m1,m2,m3,m4,EdgeColor,r);endendend(4)程序说明人脸识别程序主要包含三个程序模块,人脸识别主程序由三部分构成。第一部分:将图像转化为 YCbCr 颜色空间,根据色彩模型进行图像二值化,二值化图像进行形态学处理、开运算,显示二值图像;第二部分:采用标记方法选取出图中的白色区域,度量区域属性,存放经过筛选以后得到的所有矩形块,筛选特定区域,存储人脸的矩形区域;第三部分:对于所有人脸的矩形区域,如果满足条件的矩形区域大于 1 则再根据其他信息进行筛选,标记最终的人脸区域。图像分割程序中,利用肤色可以较为精确的将人脸和非人脸区域分割开来,得到较为精确的二值化图像。人脸的确认程序,以存储的所有矩形区域作为研究对象,当区域内有眼睛存在时,才认为此区域为人脸区域3 运行结果(1)第一幅图原始图像肤色分割的二值化图像人脸识别图像