电子产品世界 » 论坛首页 » 设计专区 » 方案讨论交流专区 » 上传一个自己用的:人脸识别的Matlab程序


共25条 1/3 1 2 3 跳转至

上传一个自己用的:人脸识别的Matlab程序

专家
2011-02-17 22:42:56    评分

%保存文件时扩展名是.m文件,安装了matlab的话可以试一试,目前只针对单脸的效果很好
i=imread('face8.jpg');%把图片的名称改为:'face8
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' )

可用此图片做实验:




关键词: 上传     一个     自己     用的     人脸     别的     Matlab         

院士
2011-02-18 08:46:01    评分
2楼
上面的看不懂,下面的看懂了~~~

高工
2011-02-18 11:31:08    评分
3楼

一定得试试,呵呵,偷偷的,要是被某些单位发现了,打卡肯定改成照相了,


专家
2011-02-18 14:19:13    评分
4楼
人脸识别是图像处理的一个小小的分支

工程师
2011-02-18 14:39:15    评分
5楼

只认识美女的脸哇!换成我的就只找了半个脸


专家
2011-02-18 15:00:21    评分
6楼
把你的图片放进去试一试?呵呵

工程师
2011-02-18 15:12:52    评分
7楼
已经试过啦——回复可见内容——
把旺仔的找到了。。还好找到半个

专家
2011-02-18 16:05:09    评分
8楼
这个程序对于单人脸识别的效果比较好,你把你自己的一个照片试一试,别的类似头像的外景没有的那种,这样的效果很好

工程师
2011-02-18 16:18:16    评分
9楼
看看这个。。不要告我侵权啊,看完我删——回复可见内容——照片删掉了,O(∩_∩)O~

院士
2011-02-18 16:27:53    评分
10楼
这个MM很PL

共25条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]