Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all;
- close all;
- clc;
- echo off;
- nP = 40; % Pocet lidi
- nV = 6; % Pocet emoci
- nK = nP * nV; % Celkove pocet fotografii
- %EMOCE ... 1-smutek,2-prekvapeni,3-obava/strach,4-usmev,5-vztek,6-znechuceni
- vysledek = zeros(54, 2);
- matice = zeros(6);
- %Vytvoreni vektoru
- Wp = zeros (4096, nK);
- for per = 1 : nP
- for ver = 1 : nV
- k = (per - 1)*nV + ver;
- ret = sprintf('P%d%d.bmp',per, ver);
- o = rgb2gray(imread(ret, 'bmp'));
- Wp(:, k) = o(:);
- end
- end
- counter = 1;
- for a = 1 : 9
- for b = 1 : nV
- %neznamy obrazek
- o = double(rgb2gray(imread(sprintf('t%d%d.bmp',a, b), 'bmp')));
- wpu = o(:);
- ret_vy = str2num(sprintf('%d',b));
- vysledek(counter,1) = ret_vy;
- %subplot(1, 2, 1);
- %imshow(imread('t11.bmp', 'bmp'));
- %title('NEZNAMY OBRAZ');
- %striedni vektor
- meanWp = mean(Wp');
- W = zeros (4096, nK);
- for i = 1 : nK
- W(:, i) = Wp(:, i) - meanWp';
- end
- wu = wpu - meanWp';
- % kovarancni matice
- C = W'*W; % dimension 9 x 9 -> smaller than 4096 * 4096 - rozmery 9x9 -> mensi nez 4096x4096
- % EigenSpace - Prostor vlastnich cisel
- [Epom, D] = eig(C); % E eigenvectors, D eigenvalues - E vektor vlastnich cisel, D vlastni cisla
- E = W * Epom;
- PI = zeros(nK, nK); %projection of train images - projektce obrazku
- for i = 1 : nK
- PI(:, i) = E'*W(:,i);
- end
- % recognition - rozpoznavani
- PT = E'*wu; %projection of test images - projekce testovanych obrazku
- Edist = zeros(nK, 1);
- for i = 1 : nK
- Edist(i) = sum((PT - PI(:, i)).^2);
- end
- [MV , index] = min(Edist);
- %vysledek
- per = floor((index - 1)/nV) + 1; %zaokrouhleni k nejblizsimu integeru smerem k minus nekonecnu
- ver = mod(index - 1, nV) + 1;
- ret = sprintf('p%d%d.bmp',per, ver);
- %subplot(1, 2, 2);
- %imshow(imread(ret, 'bmp'));
- %title('SHODNY OBRAZ');
- ret_vy_test = str2num(sprintf('%d',ver));
- vysledek(counter,2) = ret_vy_test;
- matice(b,ver) = matice(b,ver) + 1;
- counter = counter + 1;
- end
- end
- vysledek
- matice
Add Comment
Please, Sign In to add comment