基于肤色和眼睛定位的人脸检测算法——MATLAB实现.docVIP

基于肤色和眼睛定位的人脸检测算法——MATLAB实现.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE / NUMPAGES 本文提出了一种基于肤色信息和眼睛粗略定位的人脸检测算法。该算法先对 Anil K.Jain 的 Cb 、 Cr 椭圆聚类方法进行了改进,用改进的算法进行肤色提取,经过肤色区域的分析,对人脸区域进行预检测,确定人脸可能区域,然后再依据眼睛的粗略定位进一步确定人脸区域。一、肤色分析(skin.m) Anil K.Jain提出的基于YCbCr颜色空间的肤色模型,依据当前点的Cb Cr值推断是否为肤色。 % Anil K.Jain提出的基于YCbCr颜色空间的肤色模型 % 依据当前点的Cb Cr值推断是否为肤色 function result = skin(Y,Cb,Cr) % 参数 a = 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(Y > 230) 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/a^2 + (temp(2) - ecy)^2/b^2; % 大于1那么不是肤色,返回0;否那么为肤色,返回1 if value > 1 result = 0; else result = 1; end 二、眼睛粗略定位(findeye.m) % 推断二值图像中是否含有可能是眼睛的块 % bImage二值图像 % x矩形左上角顶点X坐标 % y矩形左上角顶点Y坐标 % w矩形宽度 % h矩形长度 % 假设有那么返回值eye等于1,否那么为0 function eye = findeye(bImage,x,y,w,h) % 依据矩形相关属性得到二值图像中矩形区域中的数据 % 存放矩形区域二值图像信息 part = zeros(h,w); % 二值化 for i = y:(y+h) for j = x:(x+w) if bImage(i,j) == 0 part(i-y+1,j-x+1) = 255; else part(i-y+1,j-x+1) = 0; end end end [L,num] = bwlabel(part,8); % 假设区域中有两个以上的矩形那么认为有眼睛 if num < 2 eye = 0; else eye = 1; end 三、人脸检测(facedetection.m) function facedetection(img_name) % 读取RGB图像 I = imread(img_name); % 转换为灰度图像 gray = rgb2gray(I); % 将图像转化为YCbCr颜色空间 YCbCr = rgb2ycbcr(I); % 获得图像宽度和高度 heigth = size(gray,1); width = size(gray,2); % 依据肤色模型将图像二值化 for i = 1:heigth for j = 1:width Y = YCbCr(i,j,1); Cb = YCbCr(i,j,2); Cr = YCbCr(i,j,3); if(Y < 80) gray(i,j) = 0; else if(skin(Y,Cb,Cr) == 1) gray(i,j) = 255; else gray(i,j) = 0; end end end end % 二值图像形态学处理 SE=s

文档评论(0)

188****7657 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档