ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:278.50KB ,
资源ID:25313784      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25313784.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于matlab程序实现人脸识别.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、基于matlab程序实现人脸识别基于matlab程序实现人脸识别1。人脸识别流程1.1。1基本原理基于YCbCr颜色空间的肤色模型进行肤色分割.在YCbCr色彩空间内对肤色进行了建模发现,肤色聚类区域在CbCr子平面上的投影将缩减,与中心区域显著不同。采用这种方法的图像分割已经能够较为精确的将人脸和非人脸分割开来。1。1.2流程图人脸识别流程图2.人脸识别程序(1)人脸和非人脸区域分割程序function result = skin(Y,Cb,Cr)SKIN Summary of this function goes here Detailed explanation goes herea=2

2、5。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。1a; b=1.1*b;end%根据公式进行计算Cb=double(Cb);Cr=double(Cr);t=(Cb-cx);(Cr-cy);temp=xishut;value=(temp(1)ecx)2/a2+(temp(2)ecy)2/b2;%大于1则不是肤色,返回0;否则为肤色,返回1if valu

3、e1 result=0;else result=1;endend(2)人脸的确认程序function eye = 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)=0 part(i-y+1,jx+1)=255; else part(i-y+1,j-x+1)=0; end endendL,num=bwlabel(part,8);%

4、如果区域中有两个以上的矩形则认为有眼睛if num2 eye=0;else eye=1;endend(3)人脸识别主程序clear all;读入原始图像I=imread(face3。jpg);gray=rgb2gray(I);ycbcr=rgb2ycbcr(I);%将图像转化为YCbCr空间heighth=size(gray,1);%读取图像尺寸width=size(gray,2);for i=1:heighth %利用肤色模型二值化图像 for j=1:width Y=ycbcr(i,j,1); Cb=ycbcr(i,j,2); Cr=ycbcr(i,j,3); if(Y80) gray(i

5、,j)=0; else if(skin(Y,Cb,Cr)=1)%根据色彩模型进行图像二值化 gray(i,j)=255; else gray(i,j)=0; end end endendse=strel(arbitrary,eye(5);二值图像形态学处理gray=imopen(gray,se);figure;imshow(gray)L,num=bwlabel(gray,8);%采用标记方法选出图中的白色区域stats=regionprops(L,BoundingBox);%度量区域属性n=1;%存放经过筛选以后得到的所有矩形块result=zeros(n,4);figure,imshow(I

6、);hold on;for i=1:num 开始筛选特定区域 box=stats(i).BoundingBox; x=box(1);%矩形坐标X y=box(2);%矩形坐标Y w=box(3);矩形宽度w h=box(4);%矩形高度h ratio=h/w;%宽度和高度的比例 ux=uint16(x); uy=uint8(y); if ux1 ux=ux1; end if uy1 uy=uy-1; end if w20 | h20| wh400 矩形长宽的范围和矩形的面积可自行设定 continue elseif ratio0.6 & findeye(gray,ux,uy,w,h)=1 %根

7、据“三庭五眼”规则高度和宽度比例应该在(0。6,2)内; result(n,:)=ux uy w h; n=n+1; endendif size(result,1)=1 result(1,1)0 %对可能是人脸的区域进行标记 rectangle(Position,result(1,1),result(1,2),result(1,3),result(1,4),EdgeColor,r);else 如果满足条件的矩形区域大于1,则再根据其他信息进行筛选 a=0; arr1=;arr2=; for m=1:size(result,1) m1=result(m,1); m2=result(m,2); m

8、3=result(m,3); m4=result(m,4); 得到符合和人脸匹配的数据 if m1+m3width m2+m4heighth & m30。2*width a=a+1; arr1(a)=m3;arr2(a)=m4; %rectangle(Position,m1,m2,m3,m4,EdgeColor,r); end end 得到人脸长度和宽度的最小区域 arr3=;arr3=sort(arr1,ascend); arr4=;arr4=sort(arr2,ascend); 根据得到的数据标定最终的人脸区域 for m=1:size(result,1) m1=result(m,1);

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1