“ 这是MATLAB的实验报告,感兴趣的伙伴可以尝试。”
实验效果如图:
一.简介。
该课题为基于MATLAB的人数统计及切割人脸,带有丰富的人机交互GUI界面。实现照片人数的计数统计。书本遮住脸部、戴口罩必然无法采集到人脸,该课题采用人脸定位器进行人脸定位和人脸分割。本课题中,为了界面GUI的美观,刻意将分割出的人脸单独显示在GUI对应的axes里。
二.理论基础。
1.通过uigetfile函数标准化打开选择文件对话框选取图片
显示一个模态对话框,对话框列出了当前目录下的文件和目录,用于可以选择一个将要打开的文件名。如果文件名是有效的且该文件存在,则当用户点击Open时函数uigetfile返回该文件名。若不存在,uigetfile显示一个控制返回对话框值的错误提示信息,此时用户可以输入另外的文件名或点击Cancel按钮。如果用户点击Cancel按钮或关闭对话框,函数uigetfile将返回0。
[FileName,PathName,FilterIndex]= uigetfile(FilterSpec):创建并显示对话框,列出当前目录下的文件。
FilterSpec决定文件的初始显示,它可以为一个文件全名或者包含通配符*,我们选用了‘jpg’、‘png’、‘jpeg’、‘bmp’四种格式的图像格式。
2.读取图像判断是否为灰度图像,如果是彩色图像(即三维图像),则转化为灰度图像
ifnumel(size(img))>2
img_gray=rgb2gray(img);
3.人脸识别定位
使用Viola-Jones算法创建一个检测器来检测对象。
这个算法包含以下几个重要的部分:
1 利用Haar特征描述人脸的共有属性;
2 建立了一种称为积分图像的特征,并且基于积分图像,可以快速获取几种不同的矩形特征;
3 利用Adaboost算法进行训练;
4 建立层级分类器。
faceDetector = visi