⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 train.m

📁 这是一个改进的人脸识别 算法,希望对大家有用
💻 M
字号:
% 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -