• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab 面部识别源码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

今天学习了matlab面部识别的的小算法,虽然功能不是很强大,但是感觉挺好玩的,分享一下

 1 clear all;
 2 %% 
 3 %读取原始图像,进行二值化处理
 4 
 5 img=imread(\'face.jpg\'); %读入图像
 6 subplot(221),imshow(img);
 7 title(\'原图\')
 8 I=rgb2gray(img);  %转换为灰度图像
 9 I=wiener2(I,[5 5]);
10 BW=im2bw(I);      %二值化
11 subplot(222),imshow(BW);
12 title(\'二值图像\')
13 
14 %%
15 % 对二值图像进行预处理,减少北京区域,尽量除去
16 % 背景区域,为应用人脸识别算法做准备
17 [n1 n2]=size(BW); %图片尺寸
18 r=floor(n1/10);    %尺寸除以10
19 c=floor(n2/10);
20 x1=1;
21 x2=r;
22 s=r*c;
23 %减小背景区域,将图像部分边缘区域设置为黑色
24 for i=1:10;
25     y1=1;y2=c;
26     for j=1:10
27         if(y2<=c|y2>=9*c)|(x1==1|x2==r*10)
28             BW(x1:x2,y1:y2)=0;
29         end
30         y1=y1+c;
31         y2=y2+c;
32     end
33     x1=x1+r;
34     x2=x2+r;
35 end
36 subplot(223),,imshow(BW)
37 title(\'预处理后的处理二维值图\')
38 
39 %%
40 % 通过确认人脸面积在包含连通域的矩形中面积最大,且面部的长度
41 % 与宽度比小于2来识别脸部区域
42 L=bwlabel(BW,4);
43 BB=regionprops(L,\'BoundingBox\');
44 BB1=struct2cell(BB);
45 BB2=cell2mat(BB1);
46 [s1 s2]=size(BB2);
47 mx=0;
48 for k=3:4:s2-1
49     p=BB2(1,k)*BB2(1,k+1);
50     if p>mx & (BB2(1,k+1)/BB2(1,k))<2
51         mx=p;
52         j=k;
53     end
54 end
55 subplot(224),imshow(img)
56 hold on;
57 rectangle(\'Position\',[BB2(1,j-2),BB2(1,j-1),BB2(1,j),BB2(1,j+1)],\'EdgeColor\',\'y\')
58 title(\'识别后的图像\')

网上找到的图片,希望不算是侵权吧。

处理后的图片


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab一次读取多张图片发布时间:2022-07-18
下一篇:
Win32全局钩子在Delphi下实现的关键技术发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap