基于肤色的人脸检测

编程入门 行业动态 更新时间:2024-10-26 16:35:52

基于肤色<a href=https://www.elefans.com/category/jswz/34/1769694.html style=的人脸检测"/>

基于肤色的人脸检测

转载网址:/

一个颜色空间,是由三种基色基色构成。计算机存储彩色照片是以三个平面矩阵数据结构来保存照片的信息的。其中每个平面矩阵里的数值代表一个颜色空间的一种基色值——像素值。平面矩阵里的元素与照片像素位置一一对应,由三个平面矩阵里的像素值按固定规律组合起来,就能代表各种颜色。

    人的皮肤有着特征性的颜色,能跟外界背景较明显地区分开来。因而,皮肤的颜色在颜色空间的基色中,只占据一定的范围,算出这个范围的值,就能把皮肤从背景中过滤出来。例如,在NTSC颜色空间中,肤色在第二个平面矩阵里的像素值,大都集中在0.03—0.2这个范围内,把第二个平面矩阵里的提取出来,再转成二值图像,把0.03—0.2范围内的值都转成白色,其他值转成黑色,这样就能皮肤过滤出来。

从过滤出来的皮肤中,脸部皮肤在照片中,有着一定的位置与外形规律,就能把脸部皮肤再分割出来。脸部皮肤包含着眼睛的位置,而眼睛与皮肤有着明显的不同。把分割出来的脸部皮肤转成二值图像后,皮肤与眼睛就能很好地区分开,即白色的皮肤包含着黑色的眼睛。只要算出黑色的部分的质心坐标,此坐标,即眼睛的位置。此时,算出来的质心不只两个,会有眉毛、鼻子、嘴巴等质心的干拢。可以得用双眼在脸部所固有位置规律,就能把两眼的质心选择出来。

% 只能检测一张脸
clear all; 
close all; 
clc; 
I=imread('FaceDetect1.png');
O=rgb2ntsc(I);
G=O(:,:,2);
[m n]=size(G);
U=zeros(m,n);
for i=1:mfor j=1:nif G(i,j)>0.03&&G(i,j)<0.16U(i,j)=1;endend
end
sr=strel('disk',6); % 形态学算子
C=imclose(U,sr);    % 闭运算
figure;
imshow(C,[]);
title('二值化结果');
L=bwlabel(C);
B=regionprops(L,'area'); % 计算二值图像的面积
Se=[B.Area];Sm=max(Se);  % 最大面积区域
Threshold = 27;          % 人脸的最小面积
if Sm>m*n/ThresholdB1=bwareaopen(C,Sm); % 删除面积小于Sm的值figure;imshow(B1,[]);title('删除部分小区域后的结果');k_y1=m;k2=m;l2=n;for i=1:mif any(B1(i,:))==1k_y1=i;breakendendfor i=k_y1:mif B1(i,:)==0k2=i;breakendendfor j=1:nif any(B1(:,j))==1l_y1=j;breakendendfor j=l_y1:nif B1(:,j)==0l2=j;breakendendk_y=k2-k_y1;l=l2-l_y1;% 画框if k_y>.5*l&&k_y<3*lI1=imcrop(B1,[l_y1 k_y1 l .4*k_y]);[n1 m1]=size(I1);L1=bwlabel(I1);E=regionprops(L1,'area');Si=[E.Area];Sm=max(Si);if Sm/(n1*m1)>.3B2=bwareaopen(I1,floor(.5*Sm));g_y1=m1;g2=m1;for j=1:m1if any(B2(:,j))==1g_y1=j;breakendendfor j=g_y1:m1if B2(:,j)==0;g2=j;breakendendg=g2-g_y1;figure;imshow(I);hold onh1=line([l_y1+g_y1,l_y1+g_y1+g],[k_y1,k_y1]);h2=line([l_y1+g_y1+g,l_y1+g_y1+g],[k_y1,k_y1+1.1*g]);h3=line([l_y1+g_y1+g,l_y1+g_y1],[k_y1+1.1*g,k_y1+1.1*g]);h4=line([l_y1+g_y1,l_y1+g_y1],[k_y1+1.1*g,k_y1]);h=[h1 h2 h3 h4];set(h,'Color',[1 0 0],'LineWidth',2);elsefigure;imshow(I);endelsefigure;imshow(I);end
elsefigure;imshow(I);
end

 

更多推荐

基于肤色的人脸检测

本文发布于:2023-06-23 07:01:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/845329.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:的人   肤色

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!