TP-probabilites/TP3/recursion.m
2023-06-10 21:01:20 +02:00

30 lines
1,004 B
Matlab

function [E,contour,G_somme] = recursion(E,contour,G_somme,i,j,voisins,G_x,G_y,card_max,cos_alpha)
% Fonction recursive permettant de construire un ensemble candidat E
contour(i,j) = 0;
G_somme_normalise = G_somme/norm(G_somme);
nb_voisins = size(voisins,1);
k = 1;
while k<=nb_voisins & size(E,1)<=card_max
i_voisin = i + voisins(k, 1);
j_voisin = j + voisins(k, 2);
if contour(i_voisin,j_voisin)
G_ij = [G_x(i_voisin, j_voisin), G_y(i_voisin, j_voisin)];
G_ij_normalise = G_ij/norm(G_ij);
prod_scal = G_somme_normalise*G_ij_normalise';
if prod_scal >= cos_alpha
E = [E; i_voisin j_voisin];
G_somme = [G_somme; G_ij_normalise];
recursion(E, contour, G_somme, i_voisin, j_voisin, voisins, G_x, G_y, card_max, cos_alpha);
end
end
k = k+1;
end
end