train.m
来自「这是一个改进的人脸识别 算法,希望对大家有用」· M 代码 · 共 68 行
M
68 行
% Copyright (C) 2006, Eric Chi.
% chijing80@hotmail.com
clear
% Training samples set.
imDir = './AT&T/';
imFormat = '.pgm';
personsNum = 30;
samplesPerPerson = 10;
trainSamplesNum = 7;
trainSamplesTotal = trainSamplesNum * personsNum;
imWidth = 80;
imHeight = 80;
% Load training samples set.
trainSamplesSet = zeros(imWidth*imHeight, trainSamplesTotal);
for i = 1 : personsNum
for j = 1 : trainSamplesNum
imFileName = strcat(imDir, 's');
imFileName = strcat(imFileName, int2str(i));
imFileName = strcat(imFileName, '/');
imFileName = strcat(imFileName, int2str(j));
imFileName = strcat(imFileName, imFormat);
image = imread(imFileName);
if ( ndims(image) == 3 )
image2 = rgb2gray(image);
else
image2 = image;
end
trainSamplesSet( : , (i-1)*trainSamplesNum+j ) = reshape( ...
imresize( image2, [imHeight, imWidth], 'nearest' ) ...
, imWidth*imHeight, 1 );
end
end
% Calculate the mean image.
meanImage = zeros(imWidth*imHeight);
meanImage = mean(trainSamplesSet, 2);
% Calculate the difference images.
diffImages = zeros(imWidth*imHeight, trainSamplesTotal);
for i = 1 : (trainSamplesTotal)
diffImages( : , i ) = trainSamplesSet( : , i ) - meanImage;
end
% Extract eigenfaces.
eigenFaces = zeros(imWidth*imHeight, trainSamplesTotal);
[eigenFaces s v] = svd(diffImages, 0);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?