clear; close all; load exercice_1; % Parametres : p = alpha/pi; epsilon = 1e-20; % Affichage de l'image : figure('Name','Detection des alignements','Position',[0,0,L,0.67*H]); subplot(1,2,1); imagesc(I); axis equal; axis off; colormap gray; title('L''image','FontSize',30); drawnow; % Affichage d'un fond gris pour l'esquisse : subplot(1,2,2); imagesc(120*ones(size(I)),[0,255]); axis equal; axis off; title('Son esquisse','FontSize',30); hold on; % Boucle sur les ensembles E : nb_elimines = 0; for k = 1:length(liste_E) % Calcul de la matrice d'inertie de l'ensemble candidat numero k : E = liste_E{k}; E_x = E(:,2); % Attention : x = j E_y = E(:,1); % Attention : y = i indices_E = sub2ind(size(I),E_y,E_x); G_norme_E = G_norme(indices_E); [C_x,C_y,M] = matrice_inertie(E_x,E_y,G_norme_E); % Calcul des valeurs/vecteurs propres de M : [V,D] = eig(M); % Tri des valeurs propres de M par ordre decroissant : [~,indices] = sort(diag(D),'descend'); % Matrice de passage du repere xy vers les axes propres du nuage de points : P = V(:,indices); % Coordonnees des points du nuage apres rotation dans le repere des axes principaux : E_nouveau_repere = [E_x-C_x,E_y-C_y]*P; % Calcul de probabilite (loi binomiale) : [x_min,x_max,probabilite] = calcul_proba(E_nouveau_repere,p); % Test de saillance visuelle : if probabilite