一、简介
基于matlab人脸门禁识别系统,该系统为基于MATLAB的疫情防护门禁系统。建立一个GUI可视化界面。测试的时候,采集一张全身照人脸图片,和库内人脸进行对比,如果是库内人脸,则判定为允许进入。如果不是库内人脸,则说明是可疑人员,不可以放行。如果输入正确密码,允许放行。
二、部分源码
function pushbutton1_Callback(hObject, eventdata, handles)
global TrainDatabasePath;
TrainDatabasePath = uigetdir(strcat(matlabroot,'\work'), '选择训练人脸库' );
msgbox('训练库已选择!')
function pushbutton2_Callback(hObject, eventdata, handles)
global TestDatabasePath;
TestDatabasePath = uigetdir(strcat(matlabroot,'\work'), '选择测试人脸库');
msgbox('测试库已选择!')
function pushbutton3_Callback(hObject, eventdata, handles)
global TestDatabasePath;
global TrainDatabasePath;
%读取人脸库的路径
prompt = {'输入库内测试人脸数字代表'};
dlg_title = 'Input of PCA-Based Face Recognition System';
num_lines= 1;
def = {'1'};
TestImage = inputdlg(prompt,dlg_title,num_lines,def);
temp = TestImage;
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
im = imread(TestImage);
T = CreateDatabase(TrainDatabasePath);
[m, A, Eigenfaces,D] = EigenfaceCore(T);
%画出特征值得图像
global OutputName;
OutputName = Recognition(TestImage, m, A, Eigenfaces);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
%输出测试图片
axes(handles.axes1);
imshow(im);
%输出匹配图片
axes(handles.axes2);
imshow(SelectedImage);
%结果显示名字
season = 'null';
function OutputName = Recognition(TestImage, m, A, Eigenfaces)
ProjectedImages = [];
Train_Number = size(Eigenfaces,2);
for i = 1 : Train_Number
temp = Eigenfaces'*A(:,i); %e将每个样本投影到特征空间
ProjectedImages = [ProjectedImages temp];
end
% 从测试人脸库计算提取特征
InputImage = imread(TestImage);
temp = InputImage(:,:,1);
[irow icol] = size(temp);
InImage = reshape(temp',irow*icol,1);
Difference = double(InImage)-m;
ProjectedTestImage = Eigenfaces'*Difference; % 将待测样本投影到特征空间
% 按照欧式距离取最小的原则得出匹配的人脸
Euc_dist = [];
for i = 1 : Train_Number
q = ProjectedImages(:,i);
temp = ( norm( ProjectedTestImage - q ) )^2;
Euc_dist = [Euc_dist temp];
end
%选取最小欧式距离的人脸
[Euc_dist_min , Recognized_index] = min(Euc_dist);
%获取该人脸的数字代号
OutputName = strcat(int2str(Recognized_index),'.jpg');
三、运行结果
四、matlab版本
MATLAB R2019a
五、学习与交流
文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968
文中部分源码仅供参考,若需要全部代码可以私信