Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

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

3 Ansichten (letzte 30 Tage)
Sheza fathima
Sheza fathima am 11 Mär. 2015
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
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

Antworten (0)

Diese Frage ist geschlossen.

Community Treasure Hunt

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

Start Hunting!

Translated by