close all %acceptable threshold values: 15-30 threshold = 20; cmax = 10; cmin = -cmax; n_classes = 16; iterations = 50; N = 200; dataset = dir('../images/*/*.jpg'); dataset_size = length(dataset); vecteurs=zeros(2*(cmax-cmin+1),dataset_size); %TODO: renommer en vectors classes = []; %colonne [avance; arret; gauche; droite; rejet] % c'est lent % s'assurer que l'on choisit toutes les images % n=1; while n11 % calcul des descripteurs de Fourier [coeff,ncoeff]=descripteurfouriernorm(z,cmax); % Extraction des composantes vecteurs(:,n)=[real(coeff);imag(coeff)]; % Ajout de la classe correspondante deb = dataset(choix(1)).name(1:2); if deb == 'av' classes = [classes , [1;0;0;0;0]]; elseif deb == 'ar' classes = [classes , [0;1;0;0;0]]; elseif deb == 'ga' classes = [classes , [0;0;1;0;0]]; elseif deb == 'dr' classes = [classes , [0;0;0;1;0]]; else classes = [classes , [0;0;0;0;1]]; end % affichage de l'avancement disp(n/dataset_size); n = n+1; end end end % utilisation de l'algorithme des kmeans kmeans = kmoyennes(vecteurs, n_classes, iterations); % affichage des prototypes figure for n=1:n_classes contfil=resconstrdesfour(kmeans(1:end/2,n)+1i*kmeans(end/2+1:end,n),N,cmax); subplot(4,4,n) h=plot(real(contfil),imag(contfil),'-',real(contfil(1)),imag(contfil(1)),'o'); title(['prototype ' int2str(n)]) set(h(1),'LineWidth',2) set(h(2),'LineWidth',3) grid on axis equal axis ij drawnow end % utilisation de l'algorithme du perceptron multicouches [net, resultats_test] = PMC_training(vecteurs, classes, 10, 1100); %faire une prediction : y = net(x)