matlab人脸检测的原理,求助:人脸识别原理Matlab程序问题

%%%%% Reading of a RGB image

i=imread('E:\我的文档\光电子图像处理\face_detection\face_database\priyanshu.jpg');

I=rgb2gray(i);

BW=im2bw(I);

figure,imshow(BW)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%% minimisation of background portion

[n1 n2]=size(BW);

r=floor(n1/10);

c=floor(n2/10);

x1=1;x2=r;

s=r*c;

for i=1:10

y1=1;y2=c;

for j=1:10

if (y2<=c | y2>=9*c) | (x1==1 | x2==r*10)

loc=find(BW(x1:x2, y1:y2)==0);

[o p]=size(loc);

pr=o*100/s;

if pr<=100

BW(x1:x2, y1:y2)=0;

r1=x1;r2=x2;s1=y1;s2=y2;

pr1=0;

end

imshow(BW);

end

y1=y1+c;

y2=y2+c;

end

x1=x1+r;

x2=x2+r;

end

figure,imshow(BW)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%% detection of face object

L = bwlabel(BW,8);

BB  = regionprops(L, 'BoundingBox');

BB1=struct2cell(BB);

BB2=cell2mat(BB1);

[s1 s2]=size(BB2);

mx=0;

for k=3:4:s2-1

p=BB2(1,k)*BB2(1,k+1);

if p>mx & (BB2(1,k)/BB2(1,k+1))<1.8

mx=p;

j=k;

end

end

figure,imshow(I);

hold on;

rectangle('Position',[BB2(1,j-2),BB2(1,j-1),BB2(1,j),BB2(1,j+1)],'EdgeColor','r' )

-----------------------------------------------以上是总的程序-----------------------------------

L = bwlabel(BW,8);

BB  = regionprops(L, 'BoundingBox');

BB1=struct2cell(BB);

BB2=cell2mat(BB1);

不太明白,这个BB2算出来的是什么?

------------------------------------------------------------------------------------

s1 s2]=size(BB2);

mx=0;

for k=3:4:s2-1

p=BB2(1,k)*BB2(1,k+1);

if p>mx & (BB2(1,k)/BB2(1,k+1))<1.8

mx=p;

j=k;

end

end

这个if语句在判别什么?

非常感谢,本人菜鸟,刚开始接触matlab 很多东西不会,谢谢大侠们的指导

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值