Ragazzi ho un problema, ho scritto un algoritmo ricorsivo per il calcolo della COMPONENTE CONNESSA di una immagine.
I Pixel di questa immagine sono memorizzati in un Array bidimensionale, quindi la Componente Connessa viene calcolata a partire da un pixel dell'immagine (k quindi sarebbe un elemento dell'array).
Questo è l'algoritmo:
<pre id=code><font face=courier size= id=code>
{Procedure per il Calcolo della Componente Connessa}
procedure CalcolaCC(Riga,Colonna,PixelIniziale,s,ToniMax:integer; VAR i,j:integer);
var new_i, new_j:integer;
begin
{Verifica se gli indici individuano ancora una locazione della matrice}
If ((i<=Riga) And (j<=Colonna)) And ((i>0) And (j>0)) Then
begin
{Verifica se il pixel appartiene alla componente connessa}
If (Dati[i, j] - PixelIniziale) < s Then
begin
{Modifica della matrice che individuer… la componente connessa}
DatiAppoggio[i,j]:=1;
{Modifica del valore della matrice per far modo che la ricorsione non sia infinita}
Dati[i,j]:=2*ToniMax;
{Autoattivazione ("destra","sotto", "sinistra", "sopra")}
new_j:=j+1;
CalcolaCC(Riga, Colonna, PixelIniziale, s, ToniMax, i, new_j);
new_i:=i+1;
CalcolaCC(Riga, Colonna, PixelIniziale, s, ToniMax, new_i, j);
new_j:=j-1;
CalcolaCC(Riga, Colonna, PixelIniziale, s, ToniMax, i, new_j);
new_i:=i-1;
CalcolaCC(Riga, Colonna, PixelIniziale, s, ToniMax, new_i, j);
End;
End;
end;
</font id=code></pre id=code>
Come posso risolvere i problemi di stack overflow?