基于matlab的简单人脸识别程序代码Word文件下载.docx
- 文档编号:13166397
- 上传时间:2022-10-07
- 格式:DOCX
- 页数:3
- 大小:220.43KB
基于matlab的简单人脸识别程序代码Word文件下载.docx
《基于matlab的简单人脸识别程序代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于matlab的简单人脸识别程序代码Word文件下载.docx(3页珍藏版)》请在冰豆网上搜索。
%BLOG:
clc;
clearall;
closeall;
%载入图像
Img=imread('
face.jpg'
);
ifndims(Img)==3
I=rgb2gray(Img);
else
I=Img;
end
BW=im2bw(I,graythresh(I));
%二值化
figure;
subplot(2,2,1);
imshow(Img);
title('
原图像'
'
FontWeight'
Bold'
subplot(2,2,2);
网格标记图像'
holdon;
[xt,yt]=meshgrid(round(linspace(1,size(I,1),10)),...
round(linspace(1,size(I,2),10)));
mesh(yt,xt,zeros(size(xt)),'
FaceColor'
...
'
None'
LineWidth'
3,...
EdgeColor'
r'
subplot(2,2,3);
imshow(BW);
二值图像'
[n1,n2]=size(BW);
r=floor(n1/10);
%分成10块,行
c=floor(n2/10);
%分成10块,列
x1=1;
x2=r;
%对应行初始化
s=r*c;
%块面积
fori=1:
10
y1=1;
y2=c;
%对应列初始化
forj=1:
if(y2<
=c||y2>
=9*c)||(x1==1||x2==r*10)
%如果是在四周区域
loc=find(BW(x1:
x2,y1:
y2)==0);
[p,q]=size(loc);
pr=p/s*100;
%黑色像素所占的比例数
ifpr<
=100
BW(x1:
y2)=0;
y1=y1+c;
%列跳跃
y2=y2+c;
x1=x1+r;
%行跳跃
x2=x2+r;
[L,num]=bwlabel(BW,8);
%区域标记
stats=regionprops(L,'
BoundingBox'
%得到包围矩形框
Bd=cat(1,stats.BoundingBox);
[s1,s2]=size(Bd);
mx=0;
fork=1:
s1
p=Bd(k,3)*Bd(k,4);
%宽*高
ifp>
mx&
&
(Bd(k,3)/Bd(k,4))<
1.8
%如果满足面积块大,而且宽/高<
mx=p;
j=k;
subplot(2,2,4);
imshow(I);
holdon;
rectangle('
Position'
Bd(j,:
),...
3);
标记图像'
结果:
结论
通过对人脸图像做二值化,统计像素比例信息。
得到人脸识别结果。
当然,
这种方式处理并不稳定,但基于图像网格分析做处理,进而得到分析结果也是一
种经典的处理方式。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 简单 识别 程序代码