基于MATLAB的人脸识别(完美运行)
立即下载
资源介绍:
人脸识别是一种通过计算机识别和验证人脸的技术。它使用图像分析和机器学习算法来识别人脸的特征,并将其与事先存储的人脸数据库进行比对。人脸识别在安全领域、身份验证、刑侦等方面具有广泛应用。它可以用于解锁手机、门禁系统、视频监控等场景,以确保只有授权人员才能获得权限。人脸识别技术的基本原理包括人脸检测和人脸特征提取。人脸检测是通过算法在图像中找到人脸的位置和边界框。人脸特征提取则是将人脸图像转化为可以用来比对和识别的特征向量。人脸识别技术的发展已经取得了很大的进展,但仍然存在一些挑战,比如光照、角度、遮挡等因素会影响识别的准确性。为了解决这些问题,研究人员正在不断改进算法和模型,以提高人脸识别的性能和鲁棒性。
clear all
clc
close all
%选择样本库和测试库的文件夹,选择文件夹及点击确定,不要进入到文件夹里面的子文件
TrainDatabasePath = uigetdir(strcat(matlabroot,'\work'), '选择训练人脸库' );
TestDatabasePath = uigetdir(strcat(matlabroot,'\work'), '选择测试人脸库');
mainfc;
%读取人脸库的路径,只能1-3
prompt = {'输入库内测试人脸数字代表1-3'};
dlg_title = '人脸识别系统';
num_lines= 1;
def = {'1'};
TestImage = inputdlg(prompt,dlg_title,num_lines,def);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
im = imread(TestImage);%读取测试图片
T = facebase(TrainDatabasePath);%创建人脸数据库,人脸图片降维
[m, A, Eigenfaces,D] = pingjunlian(T);%求平均脸
%识别
OutputName = shibie(TestImage, m, A, Eigenfaces);%识别,调用shibie.m的子函数
%%%将识别到的数字,连成路径,显示出来,比如1,连接成TrainDatabasePath这个文件夹里面的1.jpg
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
figure;
subplot(1,2,1);imshow(im);
title('测试人脸');
subplot(1,2,2);imshow(SelectedImage);
title('库内匹配人脸');
%输出识别人脸的数字代号
str = strcat('Matched image is : ',OutputName);
disp(str)