首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

人脸定位程序,有写地方看不懂,求指点!解决方案

2012-03-09 
人脸定位程序,有写地方看不懂,求指点!这是一个用matlab写的人脸定位的程序,经过测试,当背景颜色暗而且单一

人脸定位程序,有写地方看不懂,求指点!
这是一个用matlab写的人脸定位的程序,经过测试,当背景颜色暗而且单一,人脸较亮时,定位结果还可以。

上面的一些注释是我自己写的,不知道对不对。

剩下没有写注释的地方我就看不懂,有没有高手帮忙指点一下撒,多谢了!

C/C++ code
I=imread('face12.jpg');if ndims(I)>2    I=rgb2gray(I);%彩色图像灰度化end;%I=histeq(I);%imshow(I);BW=im2bw(I);%二值化imshow(BW);%显示二值化后的图片[n1 n2]=size(BW);%图片长和宽%把图片分成100块r=floor(n1/10);%每一小块长度(floor:向下取整)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)        if x1==1|x2==10*r|y1==1|y2==10*c            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        end            y1=y1+c;            y2=y2+c;    end x1=x1+r; x2=x2+r;endfigure,imshow(BW)%显示去边缘后的图片L=bwlabel(BW,8);%8连通区BB=regionprops(L, 'BoundingBox');%用来测量标注矩阵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;    endendfigure,imshow(I);hold on;rectangle('Position',[BB2(1,j-2),BB2(1,j-1),BB2(1,j),BB2(1,j+1)],'EdgeColor','r' )


[解决办法]
不懂matlab 但是顶!

热点排行