利用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