diff --git a/learning/code/learning.m b/learning/code/learning.m index 8bac4f0..5e561bd 100644 --- a/learning/code/learning.m +++ b/learning/code/learning.m @@ -15,8 +15,30 @@ vecteurs=zeros(2*(cmax-cmin+1),dataset_size); %TODO: renommer en vectors classes = []; %colonne [avance; arret; gauche; droite; rejet] -for k=1:dataset_size %instanciation des valeurs des classes pour le training - deb = dataset(k).name(1:2); +% c'est lent +% s'assurer que l'on choisit toutes les images +% +for n=1:dataset_size + % choix d'une image aleatoire + choix = 1 + floor(dataset_size*rand(dataset_size, 1)); + % extraction de l'image du dataset + image = dataset(choix(1)); + % lecture de l'image + img = imread([image.folder '/' image.name]); + % filtrage de la couleur de la peau + binary = rgb_filter(img, threshold); + % determination du contour + c = contourc(binary); + % Determination du contour de taille max + cont = max_contour(c); + % transformation en signal complexe + z = cont(:,1) + 1i*cont(:,2); + % 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' @@ -28,32 +50,6 @@ for k=1:dataset_size %instanciation des valeurs des classes pour le training elseif deb == 're' classes = [classes , [0;0;0;0;1]]; end -end - - - -% c'est lent -% s'assurer que l'on choisit toutes les images -% -for n=1:dataset_size - % choix d'une image aléatoire - choix = 1 + floor(dataset_size*rand(dataset_size, 1)); - % extraction de l'image du dataset - image = dataset(choix(1)); - % lecture de l'image - img = imread([image.folder '/' image.name]); - % filtrage de la couleur de la peau - binary = rgb_filter(img, threshold); - % détermination du contour - c = contourc(binary); - % Détermination du contour de taille max - cont = max_contour(c); - % transformation en signal complex - z = cont(:,1) + 1i*cont(:,2); - % calcul des descripteurs de Fourrier - [coeff,ncoeff]=descripteurfouriernorm(z,cmax); - % Extraction des composantes - vecteurs(:,n)=[real(coeff);imag(coeff)]; % affichage de l'avancement disp(n/dataset_size); end