Info

This question is closed. Reopen it to edit or answer.

how to convert 3D datamatrix into same sixe of 2D matrix in this below example.

1 view (last 30 days)
here in the code i've used surf points to classify the face data. my code is attached here
if true
% code
clear;
PercentageOfTrainingData = 50;
% ****************** Get all sub folder paths *****************************
dirs = regexp(genpath('C:\Users\fathimath\Desktop\READ\Database-1'),('[^;]*'),'match');
% ********************** Training ******************************
count1=1;
count2=1;
Training=zeros(700,1600);
Testing=zeros(700,1600);
for k = 1 : 7
fileList = getAllFiles(sprintf('%s',dirs{k+1})); % Get all files in sub folder
NumberOfTrainingSamples = (PercentageOfTrainingData*length(fileList))/100;
for i = 1 : 200
Image = imresize(imread(sprintf('%s',fileList{i})),[40 40]);
if(i <= NumberOfTrainingSamples)
TrainingData(count1,:) = Image(:);
traindatasurf = detectSURFFeatures(TrainingData);
Training=traindatasurf;
count1 = count1 + 1;
else
TestingData(count2,:) =Image(:);
testdatasurf = detectSURFFeatures(TestingData);
Testing=testdatasurf;
count2 = count2 + 1;
end
end
end
% traindatasurf = detectSURFFeatures(TrainingData);
% testdatasurf = detectSURFFeatures(TestingData);
% traindata=pca(TrainingData,875);
% testdata=pca(TestingData,875);
% class(1:125)=1; % class(126:250)=2; % class(251:375)=3; % class(376:501)=4; % class(502:625)=5; % class(626:750)=6; % class(751:875)=7;
Groupforclassification(1:NumberOfTrainingSamples,:) = 1;
Groupforclassification(NumberOfTrainingSamples+1:2*NumberOfTrainingSamples,:) = 2;
Groupforclassification(2*NumberOfTrainingSamples+1:3*NumberOfTrainingSamples,:) = 3;
Groupforclassification(3*NumberOfTrainingSamples+1:4*NumberOfTrainingSamples,:) = 4;
Groupforclassification(4*NumberOfTrainingSamples+1:5*NumberOfTrainingSamples,:) = 5;
Groupforclassification(5*NumberOfTrainingSamples+1:6*NumberOfTrainingSamples,:) = 6;
Groupforclassification(6*NumberOfTrainingSamples+1:7*NumberOfTrainingSamples,:) = 7;
NumberofTestingSamples = 200 - NumberOfTrainingSamples; GroupforTesting(1:NumberofTestingSamples) = 1; GroupforTesting(NumberofTestingSamples+1:2*NumberofTestingSamples) = 2; GroupforTesting(2*NumberofTestingSamples+1:3*NumberofTestingSamples) = 3; GroupforTesting(3*NumberofTestingSamples+1:4*NumberofTestingSamples) = 4; GroupforTesting(4*NumberofTestingSamples+1:5*NumberofTestingSamples) = 5; GroupforTesting(5*NumberofTestingSamples+1:6*NumberofTestingSamples) = 6; GroupforTesting(6*NumberofTestingSamples+1:7*NumberofTestingSamples) = 7; count3 = 0; MaximumFmeasure = 0;
% % % **************** KNN classifier ***************************
for i = 1 : 2 : NumberOfTrainingSamples Class = knnclassify(Testing, Training, Groupforclassification,1); c = confusionmat(GroupforTesting,Class); display(c); if(size(c,1)==7) % % **************** Precision *************************** Pa = c(1,1)/(c(1,1)+c(2,1)+c(3,1)+c(4,1)+c(5,1)+c(6,1)+c(7,1)); Pb = c(2,2)/(c(1,2)+c(2,2)+c(3,2)+c(4,2)+c(5,2)+c(6,2)+c(7,2)); Pc = c(3,3)/(c(1,3)+c(2,3)+c(3,3)+c(4,3)+c(5,3)+c(6,3)+c(7,3)); Pd = c(4,4)/(c(1,4)+c(2,4)+c(3,4)+c(4,4)+c(5,4)+c(6,4)+c(7,4)); Pe= c(5,5)/(c(1,5)+c(2,5)+c(3,5)+c(4,5)+c(5,5)+c(6,5)+c(7,5)); Pf = c(6,6)/(c(1,6)+c(2,6)+c(3,6)+c(4,6)+c(5,6)+c(6,6)+c(7,6)); Pg = c(7,7)/(c(1,7)+c(2,7)+c(3,7)+c(4,7)+c(5,7)+c(6,7)+c(7,7)); Pavg = (Pa+Pb+Pc+Pd+Pe+Pf+Pg)/7; display(Pavg); % % **************** Recall *************************** Ra = c(1,1)/(c(1,1)+c(1,2)+c(1,3)+c(1,4)+c(1,5)+c(1,6)+c(1,7)); Rb = c(2,2)/(c(2,1)+c(2,2)+c(2,3)+c(2,4)+c(2,5)+c(2,6)+c(2,7)); Rc = c(3,3)/(c(3,1)+c(3,2)+c(3,3)+c(3,4)+c(3,5)+c(3,6)+c(3,7)); Rd = c(4,4)/(c(4,1)+c(4,2)+c(4,3)+c(4,4)+c(4,5)+c(4,6)+c(4,7)); Re = c(5,5)/(c(5,1)+c(5,2)+c(5,3)+c(5,4)+c(5,5)+c(5,6)+c(5,7)); Rf = c(6,6)/(c(6,1)+c(6,2)+c(6,3)+c(6,4)+c(6,5)+c(6,6)+c(6,7)); Rg = c(7,7)/(c(7,1)+c(7,2)+c(7,3)+c(7,4)+c(7,5)+c(7,6)+c(7,7)); Ravg = (Ra+Rb+Rc+Rd+Re+Rf+Rg)/7; display(Ravg); end % % **************** F-measure *************************** Fa = 2*(Pa * Ra)/(Pa + Ra); Fb = 2*(Pb * Rb)/(Pb + Rb); Fc = 2*(Pc * Rc)/(Pc + Rc); Fd = 2*(Pd * Rd)/(Pd + Rd); Fe = 2*(Pe * Re)/(Pe + Re); Ff = 2*(Pf * Rf)/(Pf + Rf); Fg = 2*(Pg * Rc)/(Pg + Rg); Favg = (Fa+Fb+Fc+Fd+Fe+Ff+Fg)/7; % count3 = count3 + 1; % % **************** Accuracy *************************** Accuracy = (c(1,1) + c(2,2) + c(3,3) +c(4,4) +c(5,5) +c(6,6)+ c(7,7))/size(TestingData,1)*100; % Resultmat(count3,:) =[Pavg,Ravg,Favg]; display(Accuracy); % % % end end

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!