利用MATLAB实现人脸识别GUI程序设计

本文详细介绍了如何利用MATLAB设计一个用户界面友好的人脸识别程序,包括图像加载、预处理、特征提取(PCA)及人脸识别流程。通过GUI界面,用户可以上传测试图像并实时进行人脸识别,结果显示与最相似的训练图像对比。

利用MATLAB实现人脸识别GUI程序设计

%% 人脸识别
clc;clear;close all;
%% 加载文件路径
addpath(genpath('F:\课程\模式识别\'));
%% --------- 训练集图像文件-------
Train_file_path = 'F:\课程\模式识别\实验四数据\TrainDatabase\ORL\';
Train_data_list = dir(strcat(Train_file_path));
%------训练集图像元胞分配内存-----%
Train_image=cell(size(Train_data_list,1),8);
Train_image_line=cell(8*size(Train_data_list,1),1);
%--------遍历得到训练集图像-------%
k=1;
for i=3:size(Train_data_list,1)
    img_file=Train_data_list(i).name;% 获取文件夹名称
    Train_img_list=dir(strcat(Train_file_path,img_file,'\*.jpg'));% 获取文件夹下图像
    img_num = length(Train_img_list);%获取图像总数量
    for j = 1:img_num %逐一读取图像
        Train_image_name = Train_img_list(j).name;% 图像名
        image = imread(strcat(Train_file_path,img_file,'\',Train_image_name));
        Train_image{i,j}=image; % 存入元胞数组
        Train_image_line{k,1}=image; % 存入元胞数组
        k=k+1;
        fprintf('%d %d %s\n',i,j,strcat(Train_file_path,img_file,'\',Train_image_name));% 显示正在处理的图像名
    end
end
%---------删除空余两行---------%
%---小括号删除元素,大括号置空--%
Train_image(1,:)=[];
Train_image(2,:)=[];
Train_image_line(321:336)=[];

%% 图像宽92,高112,8bit
All_Train_img=zeros(8*(size(Train_data_list,1)-2),112*92);
% 建立所有训练集图像矩阵
% for i=1:320
%     Temp=Train_image_line{
   
   i,1};
%     Temp=Temp';% 先转置
%     Temp=Temp(:);% 再行向化
%     All_Train_img(i,:)=Temp;
% end
for 
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值