进行肤色检测之后怎么定位人脸,基于肤色模型的人脸检测
作者:hacker | 分类:网络攻防 | 浏览:94 | 日期:2022年07月14日目录:
毕业设计 基于matlab的人脸检测 彩色图像进行肤色分割分离出肤 *** 域后,怎么检测出肤色中的人脸啊
clear;
I=imread('E:\matlab\11.jpg'); %输入图像
O=rgb2ntsc(I);
G=O(:,:,2);
[m n]=size(G);
U=zeros(m,n);
for i=1:m
for j=1:n
if G(i,j)0.03G(i,j)0.16
U(i,j)=1;
end
end
end
sr=strel('disk',6);
C=imclose(U,sr);
L=bwlabel(C);
B=regionprops(L,'area');
Se=[B.Area];Sm=max(Se);
if Smm*n/27
B1=bwareaopen(C,Sm);
k_y1=m;k2=m;l2=n;
for i=1:m
if any(B1(i,:))==1
k_y1=i;
break
end
end
for i=k_y1:m
if B1(i,:)==0
k2=i;
break
end
end
for j=1:n
if any(B1(:,j))==1
l_y1=j;
break
end
end
for j=l_y1:n
if B1(:,j)==0
l2=j;
break
end
end
k_y=k2-k_y1;
l=l2-l_y1;
if k_y.5*lk_y3*l
I1=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).3
B2=bwareaopen(I1,floor(.5*Sm));
g_y1=m1;g2=m1;
for j=1:m1
if any(B2(:,j))==1
g_y1=j;
break
end
end
for j=g_y1:m1
if B2(:,j)==0;
g2=j;break
end
end
g=g2-g_y1;
figure;imshow(I);
hold on
h1=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);
else
figure;imshow(I);
end
else
figure;imshow(I);
end
else
figure;imshow(I);
end
给分!
相机的人脸捕捉技术的原理是什么?
现在小dc上自动对焦原理是场景对比度对焦(单反是相位对焦),而人脸捕捉技术是对比度对焦的一种特例。人的脸与周围的景物轮廓、特征等是不同的,比如大体上圆形,一定的肤色,还有五官特征等。工程师就把这些归纳的信息编到相机图像处理软件中,当镜头捕获含有这些信息的场景时,相机就会对焦到所谓的“人脸”了。
相机的面部识别是根据什么原理呢?
1.基本上所说的“人脸识别”,学术上只能称作“人脸定位”,即在场景中寻找可能是人脸的区域~~
2.人脸识别,一般指“照片中的张三是不是昨天见过的那个科长”这一类问题~~
3.“人脸定位”采用的技术,有许多种;一种是肤色检测,及寻找画面中与人的肤色接近的区域;另外就是五官检测,利用五官的对称型,眼睛部位的特殊性等等特征,来定位可能的脸;一般会综合运用~你在纸上画两个直径3毫米的圆代表眼睛,一个椭圆代表嘴,周围画一圈轮廓代表脸,相机也会识别为一个人脸的~
4.人脸定位技术目前比较可靠了;人脸识别技术,应该说还差得远,比指纹、虹膜等,差距甚大~~