?? recognition.m
字號:
% Copyright (C) 2006, Eric Chi.
% chijing80@hotmail.com
% Test samples set.
testSamplesNum = samplesPerPerson - trainSamplesNum;
testSamplesTotal = testSamplesNum * personsNum;
% Recogniton begin.
trainX = eigenFaces' * trainSamplesSet; % Training set face sub space.
% Load test samples set.
recSamplesSet = zeros(imWidth*imHeight, testSamplesTotal);
for i = 1 : personsNum
for j = 1 : testSamplesNum
imFileName = strcat(imDir, 's');
imFileName = strcat(imFileName, int2str(i));
imFileName = strcat(imFileName, '/');
imFileName = strcat(imFileName, int2str(j + trainSamplesNum));
imFileName = strcat(imFileName, imFormat);
image = imread(imFileName);
if ( ndims(image) == 3 )
image2 = rgb2gray(image);
else
image2 = image;
end
recSamplesSet( : , (i-1)*testSamplesNum + j ) = reshape( ...
imresize(image2, [imHeight, imWidth], 'nearest') ...
, imHeight*imWidth, 1);
end
end
recX = eigenFaces' * recSamplesSet;
% Calculate Euclidian distances.
distances = dist(trainX', recX);
% Get classifications.
classification = zeros( size(recX, 2), 1 );
for i = 1 : size(recX, 2)
minv = min(distances( : , i));
aux = find(distances( : , i) == minv);
classification(i) = aux(1);
end
% Recognition end.
% Statistic recognition rate.
success = 0;
for i = 1 : size(classification, 1)
p1 = floor( (i-1)/testSamplesNum );
p2 = floor( (classification(i)-1)/trainSamplesNum );
if p1 == p2
success = success + 1;
end
end
recRate = success/testSamplesTotal
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -