基于Matlab平台人脸面部表情识别疲劳检测
- 格式:ppt
- 大小:730.00 KB
- 文档页数:34
使用Matlab进行人脸识别的基本步骤随着计算机视觉和人工智能的快速发展,人脸识别已经成为一项重要的技术。
而Matlab作为一种强大的数学计算软件,也能够用于人脸识别的研究和应用。
本文将介绍使用Matlab进行人脸识别的基本步骤。
一、数据采集和预处理人脸识别的第一步是数据采集和预处理。
数据采集包括收集大量的人脸图像,可以通过摄像头进行实时采集,或者使用已有的人脸数据库。
预处理则是对采集到的图像进行预处理,以便后续的特征提取和分类。
预处理包括图像的灰度化、直方图均衡化、尺寸归一化等。
二、特征提取特征提取是人脸识别的核心步骤。
在Matlab中,有很多经典的特征提取方法可以选择,例如主成分分析(PCA)、线性判别分析(LDA)、等距特征映射(ISOMAP)等。
这些方法可以将复杂的人脸图像转化为低维的特征向量,提取出人脸的独特特征,以便后续的分类和识别。
三、训练模型训练模型是使用Matlab进行人脸识别的关键步骤。
在训练阶段,我们需要使用提取到的人脸特征和对应的标签,训练一个分类器或者神经网络模型。
常用的分类算法包括支持向量机(SVM)、k近邻算法(KNN)、卷积神经网络(CNN)等。
通过训练模型,我们可以让计算机自动学习和寻找人脸特征和类别之间的关系。
四、测试和评估在测试阶段,我们需要使用已经训练好的模型对新的人脸进行识别。
首先,我们需要将测试图像进行与训练图像相同的预处理,然后提取测试图像的特征向量。
最后,使用预训练好的模型对特征向量进行分类,得到识别结果。
为了评估人脸识别系统的性能,常用的评估指标包括准确率、召回率、F1值等。
五、优化和改进人脸识别是一个持续改进的过程。
通过分析和评估识别结果,我们可以发现其中的不足之处,并进行优化和改进。
例如,可以增加训练样本的数量和质量,调节分类器或神经网络的参数,尝试不同的特征提取方法,以提高人脸识别系统的准确率和鲁棒性。
总之,使用Matlab进行人脸识别需要经过数据采集和预处理、特征提取、训练模型、测试和评估等基本步骤。
基于Matlab的一个最简单的人脸检测程序2010-08-09 20:28:39| 分类:默认分类| 标签:matlab 人脸检测程序|字号大中小订阅clear;I=imread('E:\Matlab\图片\q5.jpg');O=rgb2ntsc(I);G=O(:,:,2);[m n]=size(G);U=zeros(m,n);for i=1:mfor j=1:nif G(i,j)>0.03&&G(i,j)<0.16U(i,j)=1;endendendsr=strel('disk',6);C=imclose(U,sr);L=bwlabel(C);B=regionprops(L,'area');Se=[B.Area];Sm=max(Se);if Sm>m*n/27B1=bwareaopen(C,Sm);k_y1=m;k2=m;l2=n;if any(B1(i,:))==1k_y1=i;breakendendfor i=k_y1:mif B1(i,:)==0k2=i;breakendendfor j=1:nif any(B1(:,j))==1l_y1=j;breakendendfor j=l_y1:nif B1(:,j)==0l2=j;breakendendk_y=k2-k_y1;if k_y>.5*l&&k_y<3*lI1=imcrop(B1,[l_y1 k_y1 l .4*k_y]); [n1 m1]=size(I1);L1=bwlabel(I1);E=regionprops(L1,'area');Si=[E.Area];Sm=max(Si);if Sm/(n1*m1)>.3B2=bwareaopen(I1,floor(.5*Sm)); g_y1=m1;g2=m1;for j=1:m1if any(B2(:,j))==1g_y1=j;breakendendfor j=g_y1:m1if B2(:,j)==0;g2=j;breakendendg=g2-g_y1;figure;imshow(I);hold onh1=line([l_y1+g_y1,l_y1+g_y1+g],[k_y1,k_y1]);h2=line([l_y1+g_y1+g,l_y1+g_y1+g],[k_y1,k_y1+1.1*g]);h3=line([l_y1+g_y1+g,l_y1+g_y1],[k_y1+1.1*g,k_y1+1.1*g]);h4=line([l_y1+g_y1,l_y1+g_y1],[k_y1+1.1*g,k_y1]);h=[h1 h2 h3 h4];set(h,'Color',[1 0 0],'LineWidth',2);elsefigure;imshow(I);endelsefigure;imshow(I);endelsefigure;imshow(I);end注:本程序是基于肤色的人脸侦测程序,较为简单,只能检测出一个人脸,对于背景较单调的情况下的个体照,有较高的检测率,而且检测速度快。
基于Matlab的人脸识别系统设计与仿真摘要人脸识别即指利用分析比对人脸视觉特征信息从而达到身份鉴别效果的计算机技术。
人脸识别是一项当下十分热门的计算机技术的研究领域,该项技术可以人脸明暗侦测,并且自动调整动态曝光补偿,同时对人脸追踪侦测,并自动调整影像放大;这项技术属于生物特征识别技术的一种,是利用生物体(一般指人)本身的生物特征从而达到区分生物体个体的目的。
人脸识别技术目前主要用做身份识别。
由于视频监控的飞速普及,使这项应用迫切的需要一种能实现在用户非配合状态下、远距离的进行快速身份识别的技术,以求能在远距离之下快速识别人员身份,从而实现智能预警的功能。
最佳的选择无疑是人脸识别技术。
采用快速人脸检测识别技术可以从视频监控图象中实时捕获到人脸信息,并与人脸数据库中的已存信息进行实时比对,从而达到快速身份识别的效果。
报告利用MATLAB软件来实现人脸信息检测与识别,利用YCbCr空间以及灰度图像来实现人脸的边缘分割, 将真彩图像转换为灰度图像,并根据肤色在YCbCr色度空间上的分布范围,来设定门限阀值,从而实现人脸区域与非人脸区域的分割,通过图像处理等一系列的操作来剔除干扰因素,再通过长宽比和目标面积等方法在图像中定位出人脸区域,经试验,该方法能够排除面部表情、衣着背景、发型等干扰因素,从而定位出人脸区域。
关键词:Matlab软件;灰度图像;边缘分割;人脸区域AbstractFace recognition especially use comparative analysis face visual feature information for identification of computer technology. Face recognition is a hot research field computer technology, face detection, light and shade can be automatically adjusted dynamically exposure compensation, human face tracking detection, automatic adjustment of image magnification; It belongs to the biometric identification technology, it is of organisms (generally refers to a person) individual biological characteristics to distinguish between the organism itself.Face recognition is mainly used for identification. Because of the video monitoring is fast popularization, many of the video monitoring application is an urgent need to a long distance, the user not cooperate condition of rapid identification technology, in order . Face recognition technology is undoubtedly the best choice, the fast face detection technology to monitor in real-time video image search from face, and with real-time than face database, so as to realize rapid identification.Report using MATLAB software to realize face information detection and recognition, using YCbCr space and gray image to realize the face edge segmentation, the true color image is converted to a grayscale image, and according to the color of skin in YCbCr chroma space distribution, to set the threshold threshold, so as to realize the segmentation of face region with the face region, through a series of operations such as image processing to eliminate interference factors, and through such means as aspect ratio and the target area locate the face region in the image, the experiment, this method can eliminate facial expressions, clothes, hair background interference factors, so as to locate the face region. Keywords:Matlab;Gray image;edge segmentation;face region目录摘要 0ABSTRACT (1)目录 (2)第1章绪论 (3)1.1课题的研究背景、目的及意义 (3)1.1.1 课题的研究背景 (3)1.1.2 研究目的及意义 (4)1.2本课题的主要内容 (4)第2章图像处理的MATLAB实现 (5)2.1识别系统构成 (5)2.2人脸图像的读取与显示 (6)2.3图像类型的转换 (6)2.4图像增强 (7)2.5灰度图像平滑与锐化处理 (8)2.6边缘检测 (10)第3章人脸识别计算机系统 (11)3.1系统基本构架 (11)3.2人脸检测定位算法 (11)3.3匹配与识别 (16)结论 (23)致谢 (24)参考文献 (25)附录1 人脸识别的MATLAB源程序 (26)附录2 外文参考文献及翻译 (30)第1章绪论1.1 课题的研究背景、目的及意义1.1.1 课题的研究背景数字图像处理技术是20世纪60年代发展起来的一门新兴技术。
Matlab中的人脸识别和图像识别技术人脸识别和图像识别技术是计算机视觉领域的重要研究方向,它们在人脸识别、图像搜索、安防监控等领域有着广泛的应用。
Matlab作为一种强大的科学计算软件,提供了丰富的工具箱,可以方便地进行人脸识别和图像识别的开发和实现。
本文将介绍Matlab中的人脸识别和图像识别技术,并探讨其应用和挑战。
一、人脸识别技术在Matlab中的实现人脸识别技术是指通过计算机自动识别和验证人脸信息的一种技术。
在Matlab 中,可以利用图像处理和模式识别的工具箱来实现人脸识别。
首先,我们需要收集一批人脸图像进行训练,然后利用这些训练样本训练一个人脸识别模型。
训练过程中,可以使用特征提取算法来提取人脸图像的特征向量,常用的算法有主成分分析(PCA)和线性判别分析(LDA)。
接着,可以使用分类器来对待识别的人脸图像进行分类,常用的分类算法有支持向量机(SVM)和人工神经网络。
最后,可以通过对比待识别人脸图像与已知识别模型中的人脸特征进行比较,从而实现人脸识别。
在Matlab中,人脸识别技术的实现可以参考以下步骤:1. 数据准备:收集一批包含不同人脸图像的训练样本,标记好每个图像对应的人脸ID。
2. 特征提取:使用PCA或LDA等算法对训练样本的人脸图像进行特征提取,生成特征向量。
3. 模型训练:利用训练样本的特征向量训练一个分类模型,如SVM或神经网络。
4. 人脸识别:对待识别的人脸图像进行特征提取,然后使用训练好的分类模型进行分类,得到识别结果。
二、图像识别技术在Matlab中的应用除了人脸识别技术之外,图像识别技术在Matlab中的应用也非常广泛。
图像识别技术是指通过计算机自动识别和解析图像信息的一种技术。
在Matlab中,可以利用图像处理和模式识别的工具箱来实现图像识别。
常见的图像识别任务包括物体识别、场景识别、文字识别等。
在Matlab中,图像识别技术的实现可以参考以下步骤:1. 数据准备:收集一批包含不同类别图像的训练样本,标记好每个图像对应的类别。
电子技术‖77‖基于MATLAB的人脸识别考勤系统◆杨天成本文的主要研究内容是人脸识别技术。
在研究中了解人脸识别技术在国内外的研究现状及发展前景,掌握了部分MA TLAB 的图像处理功能,并按照人脸图像采集、图像预处理、人脸特征提取与识别这条技术路线开发实现了一个简易人脸识别系统。
本次设计中的核心部分是人脸的检测与识别,此人脸识别可应用于企业员工考勤签到上。
本设计分为图像采集、数据库信息存储与显示、人脸识别、数据库信息清除、退出程序几部分组成。
采集图像模块的目的就是采集所要存储的人脸图片,将其存入数据库中,为后面的人脸识别算法提供相应的训练素材。
模块代码如下:if chos==1, clc ;[namefile ,pathname]=uigetfile ('*.pgm','Select image');%读取.pgm 文件 if name fi le~=0[img ,map]=imread (strcat (pathname ,name fi le ));imshow (img ); elsewarndlg ('放入的图片必须是已采集的',' Warning ') end end其中的name fl ie ,和pathname 分别指的是文件名和查找文件的路径。
当点击“采集图像”时,系统会根据操作指令弹出要采集的图片,选择确定后,会将这个图片的路径以及图片名相关信息保存到变量pathname 和name fi le 里。
当采集到图片后要将采集的图片保存到数据库中,此目的是为了给后期人脸识别时提供相应的训练素材。
但是需要注意的是在进行保存图片时要对保存的图片划分类别,同一个人的不同照片要划分到同一类中。
设第一个人的所有图片组成的类别为1,第二个人的所有图片组成的类别就为2,由此以此类推。
每一类的图片种类越多,越能保证后期识别的成功率。
同时为了能够保证录入的信息正确,可以点击“数据库信息”就会显示出数据库中存入了多少张照片以及分了多少类别。
如何使用Matlab进行人脸表情识别与情感分析人类情感是复杂而广泛的。
通过表情可以传达出愤怒、快乐、悲伤等各种情感。
对于计算机来说,要理解人类表情并进行情感分析是一项具有挑战性的任务。
幸运的是,现代计算机视觉和机器学习技术的发展使我们能够利用工具如Matlab来实现人脸表情识别和情感分析。
在开始讨论如何使用Matlab进行人脸表情识别之前,有必要先了解一下人脸表情识别的背后原理。
人脸表情识别主要依赖于面部特征和模式识别算法。
Matlab提供了一系列工具和函数,帮助我们分析面部特征并应用模式识别算法。
在这里,我们将重点介绍几个重要的步骤。
第一步,人脸检测。
在进行人脸表情识别之前,我们需要先检测和定位人脸。
Matlab提供了许多人脸检测算法,如Haar级联分类器和基于特征值的方法。
这些算法可以帮助我们在图像中准确地检测到人脸。
第二步,特征提取。
提取面部特征是人脸表情识别的关键步骤之一。
在Matlab 中,我们可以使用特征提取算法如LBP(局部二值模式)和HOG(方向梯度直方图)来捕获面部的细微结构和纹理信息。
这些特征具有良好的不变性和判别性,有助于准确识别不同的表情。
第三步,分类器设计。
设计一个有效的分类器是实现准确的人脸表情识别的关键。
在Matlab中,我们可以使用机器学习算法如支持向量机(SVM)、K最近邻(KNN)和神经网络等来训练和构建分类模型。
这些算法可以根据输入的特征向量来学习和分类不同的表情。
第四步,情感分析。
除了识别表情,我们还希望能够进行情感分析,即根据表情来预测人类的情感状态。
在Matlab中,我们可以使用分类模型和情感词典来实现情感分析。
情感词典是一个包含情感标签和情感词汇的数据库,我们可以利用其中的信息来量化及预测人类的情感状态。
在实际应用中,人脸表情识别和情感分析有着广泛的应用潜力。
例如,在人机交互、情感计算和市场研究领域,人脸表情识别可以用来改善用户体验和情感交流。
情感分析则可以帮助我们了解用户的情感需求和对产品的评价。
Matlab在人脸识别中的应用示例人脸识别是计算机视觉领域中一项重要的技术,能够通过图像或视频中的人脸信息进行身份验证和识别。
在现实生活中,人脸识别技术的应用广泛,涉及到安全监控、个人身份识别等诸多领域。
而Matlab作为一种强大的科学计算软件,可以提供丰富的人脸识别工具,本文将介绍一些Matlab在人脸识别中的应用示例。
一、人脸检测人脸检测是人脸识别的第一步,通过定位图像中的人脸位置,为后续的特征提取和识别提供准确的目标区域。
Matlab提供了一些经典的人脸检测算法,如Viola-Jones算法和Haar特征分类器。
通过调用这些算法,我们可以实现快速准确的人脸检测。
二、人脸特征提取为了进行人脸识别,需要提取人脸的特征信息。
Matlab中有多种算法可以实现人脸特征提取,其中最常用的是主成分分析(PCA)算法和线性判别分析(LDA)算法。
PCA算法通过分析人脸图像中的主要变化模式,将原始高维数据降维到低维空间。
这样可以减少计算复杂度,并且保留了主要的人脸特征信息。
在Matlab中,我们可以使用eig函数来计算PCA特征向量和特征值,并利用这些信息提取人脸的主要特征。
LDA算法则是通过最大化类间距离和最小化类内距离,实现对人脸图像进行判别分析。
相比于PCA,LDA算法更加关注类别信息,能够从多个类别中提取不同类别的判别特征。
Matlab提供了lda函数来计算LDA的特征向量和特征值,从而实现人脸特征提取。
三、人脸识别在得到人脸的特征向量后,我们可以使用分类算法进行人脸识别。
常用的分类算法包括支持向量机(SVM)算法和人工神经网络(ANN)算法。
SVM算法是一种基于统计学习理论的非线性分类方法,在人脸识别领域有着广泛的应用。
在Matlab中,我们可以通过调用svmtrain函数训练SVM分类器,并使用svmclassify函数进行人脸识别。
ANN算法是一种基于人工神经网络的模式匹配方法,通过模拟人脑神经元之间的连接来进行学习和识别。
Matlab处理图像后实现简单的⼈脸检测⽬录1.⼈脸检测原理框图2 步骤2.1 均值滤波2.2 ⼆值化2.3.形态学边界提取2.4 纵向闭合与横向腐蚀2.5 消除边界多余连通域2.6 寻找最⼤连通域并画框3 检测结果1.⼈脸检测原理框图整体思路是寻找图⽚中最⼤的连通域,将其认定为⼈脸。
第⼀个环节均值滤波,是为了减弱图像的相关细节部分,以免⽑刺影响后期连通域的形成,⼆值化⽅便形态学处理,减少运算量。
考虑到⼈脸有⿊⼈和⽩⼈黄种⼈,⿊⼈肤⾊较深,在⼆值化之后⾯部区域不容易形成较⼤的连通域,如果采取形态学边界提取的办法,就可以避免这个问题,形态学边界提取,只要结构元素够⼤,也可以形成较⼤的封闭连通域。
然后就是纵向闭合操作,这⼀步我选择采⽤竖向长条状的结构元素进⾏闭合运算,因为⼈的脸部和颈部以及头发和⾐物等等都是纵向分布的,在进⾏形态学边界提取的时候,容易将这些靠近的成分割裂开来,这对连通域的判断极为不利,所以⽤竖向长条状的结构元素在在纵向进⾏闭合运算,将脸部上下部的区域重新连接起来。
紧接着我⼜⽤横向长条状结构元素进⾏横向腐蚀运算,这是因为,⼈的头部以下的⾝体部分存在有⼤量连通域的时候,容易对最⼤连通域的判决产⽣⼲扰,⼜因为下半部分,多半呈纵向分布,通过横向腐蚀可以将这些⼤块的连通域割裂开来,但是要注意的是,割裂程度不应太⼤,否则会使得上⼀步闭合操作丧失意义。
接着,由于背景杂物等因素,同样也会产⽣⼤量连通域,这会对最后结果的判决产⽣⼲扰,因此要予以剔除。
进⾏了层层筛选之后,在剩下的连通域⾥⾯挑⼀个最⼤的连通域,并且尺⼨形状满⾜要求的⽤矩形框框起来作为⼈脸检测结果。
2 步骤2.1 均值滤波h = ones(9)/81;I = uint8(conv2(I,h));figure,imshow(I),title('线性均值滤波')采⽤9x9模板进⾏线性均值滤波,因为后⾯调⽤gpuArray()函数转换对输⼊数据有要求,所以在进⾏了⼆维卷积之后重新将数据格式转换成8位⽆符号整形数据。
完整版)基于matlab程序实现人脸识别Based on MATLAB program。
face n is implemented。
1.Face n Process1.1.1 Basic PrincipleXXX carried out based on the YCbCr color space skin color model。
It has been found that the skin color clustering n in the Cb-Cr subplane n of the YCbCr color space will be XXX different from the central n。
Using this method。
image XXX-faces。
1.1.2 FlowchartXXX:1.Read the original image2.Convert the image to the YCbCr color spacee the skin color model to binarize the image and perform morphological processing4.Select the white area in the binary image。
measure the area attributes。
and filter to obtain all rectangular blocks5.Filter specific areas (height-to-width。
een 0.6 and 2.eye features)6.Store the rectangular area of the face7.Filter special areas based on other n and mark the final face area2.Face n Program1) Face and Non-XXXn result = skin(Y,Cb,Cr)SKIN Summary of this n goes hereDetailed n goes herea=25.39;b=14.03;ecx=1.60;ecy=2.41;sita=2.53;cx=109.38;cy=152.02;xishu=[cos(sita) sin(sita);-sin(sita) cos(sita)];If the brightness is greater than 230.the major and minor axes are expanded by 1.1 timesif(Y>230)a=1.1*a;b=1.1*b;endXXXCb=double(Cb);Cr=double(Cr);t=[(Cb-cx);(Cr-cy)];temp=xishu*t;value=(temp(1)-ecx)^2/a^2+(temp(2)-ecy)^2/b^2;If the value is greater than 1.it is not skin color and returns。
基于matlab程序实现人脸识别1.人脸识别流程1.1.1基本原理基于YCbCr颜色空间的肤色模型进行肤色分割。
在YCbCr色彩空间内对肤色进行了建模发现,肤色聚类区域在Cb—Cr子平面上的投影将缩减,与中心区域显著不同。
采用这种方法的图像分割已经能够较为精确的将人脸和非人脸分割开来。
1.1.2流程图人脸识别流程图读入原始图像将图像转化为YCbCr颜色空间利用肤色模型二值化图像并作形态学处理选取出二值图像中的白色区域,度量区域属性,筛选后得到所有矩形块否筛选特定区域(高度和宽度的比率在(0.6~2)之间,眼睛特征)是存储人脸的矩形区域特殊区域根据其他信息筛选,标记最终的人脸区域2.人脸识别程序(1)人脸和非人脸区域分割程序function result = skin(Y,Cb,Cr)%SKIN Summary of this function goes here% Detailed explanation goes herea=25.39;b=14.03;ecx=1.60;ecy=2.41;sita=2.53;cx=109.38;cy=152.02;xishu=[cos(sita) sin(sita);-sin(sita) cos(sita)]; %如果亮度大于230,则将长短轴同时扩大为原来的1.1倍if(Y>230)a=1.1*a;b=1.1*b;end%根据公式进行计算Cb=double(Cb);Cr=double(Cr);t=[(Cb-cx);(Cr-cy)];temp=xishu*t;value=(temp(1)-ecx)^2/a^2+(temp(2)-ecy)^2/b^2;%大于1则不是肤色,返回0;否则为肤色,返回1if value>1result=0;elseresult=1;endend(2)人脸的确认程序function eye = findeye(bImage,x,y,w,h)%FINDEYE Summary of this function goes here % Detailed explanation goes herepart=zeros(h,w);%二值化for i=y:(y+h)for j=x:(x+w)if bImage(i,j)==0part(i-y+1,j-x+1)=255;elsepart(i-y+1,j-x+1)=0;endendend[L,num]=bwlabel(part,8);%如果区域中有两个以上的矩形则认为有眼睛if num<2eye=0;elseeye=1;endend(3)人脸识别主程序clear all;%读入原始图像I=imread('face3.jpg');gray=rgb2gray(I);ycbcr=rgb2ycbcr(I);%将图像转化为YCbCr空间heighth=size(gray,1);%读取图像尺寸width=size(gray,2);for i=1:heighth %利用肤色模型二值化图像for j=1:widthY=ycbcr(i,j,1);Cb=ycbcr(i,j,2);Cr=ycbcr(i,j,3);if(Y<80)gray(i,j)=0;elseif(skin(Y,Cb,Cr)==1)%根据色彩模型进行图像二值化 gray(i,j)=255;elsegray(i,j)=0;endendendendse=strel('arbitrary',eye(5));%二值图像形态学处理gray=imopen(gray,se);figure;imshow(gray)[L,num]=bwlabel(gray,8);%采用标记方法选出图中的白色区域stats=regionprops(L,'BoundingBox');%度量区域属性n=1;%存放经过筛选以后得到的所有矩形块result=zeros(n,4);figure,imshow(I);hold on;for i=1:num %开始筛选特定区域box=stats(i).BoundingBox;x=box(1);%矩形坐标Xy=box(2);%矩形坐标Yw=box(3);%矩形宽度wh=box(4);%矩形高度hratio=h/w;%宽度和高度的比例ux=uint16(x);uy=uint8(y);if ux>1ux=ux-1;endif uy>1uy=uy-1;endif w<20 || h<20|| w*h<400 %矩形长宽的范围和矩形的面积可自行设定continueelseif ratio<2 && ratio>0.6 && findeye(gray,ux,uy,w,h)==1 %根据“三庭五眼”规则高度和宽度比例应该在(0.6,2)内;result(n,:)=[ux uy w h];n=n+1;endendif size(result,1)==1 && result(1,1)>0 %对可能是人脸的区域进行标记rectangle('Position',[result(1,1),result(1,2),result(1,3),result(1,4) ],'EdgeColor','r');else%如果满足条件的矩形区域大于1,则再根据其他信息进行筛选arr1=[];arr2=[];for m=1:size(result,1)m1=result(m,1);m2=result(m,2);m3=result(m,3);m4=result(m,4);%得到符合和人脸匹配的数据if m1+m3<width && m2+m4<heighth && m3<0.2*widtha=a+1;arr1(a)=m3;arr2(a)=m4;%rectangle('Position',[m1,m2,m3,m4],'EdgeColor','r');endend%得到人脸长度和宽度的最小区域arr3=[];arr3=sort(arr1,'ascend');arr4=[];arr4=sort(arr2,'ascend');%根据得到的数据标定最终的人脸区域for m=1:size(result,1)m1=result(m,1);m2=result(m,2);m3=result(m,3);m4=result(m,4);%最终标定人脸if m1+m3<width && m2+m4<heighth && m3<0.2*widthm3=arr3(1);m4=arr4(1);rectangle('Position',[m1,m2,m3,m4],'EdgeColor','r');endend(4)程序说明人脸识别程序主要包含三个程序模块,人脸识别主程序由三部分构成。