Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#12

Re: Region Growing und Rekursive Aufrufe

  Alt 20. Okt 2008, 17:53
Zitat von blender:
@Uwe Raabe
Dein Code hat leider immer noch einen Stack Overflow ausgelöst.
Klar! Wenn man auch nur die Hälfte überträgt..., sorry!
So muss es heißen:

Delphi-Quellcode:
  
  procedure Check(c: TColor; x, y, i: integer; image: TImage);
  var
    c1: TColor;
  begin
    if (x >= 0) and (x < image.Width) and (y >= 0) and (y < image.Height) then begin // Rekursion endet an den Bildgrenzen!
      c1 := image.canvas.pixels[x, y];
      if (values[x, y] = 0) and IsAenlich(50, c, c1) then begin
        values[x, y] := i;
        RegionGrowing(x, y, i, image);
      end;
    end;
  end;
Abde das hier solltest du noch mal überprüfen:
Zitat von blender:
Delphi-Quellcode:
function TXYValues.NoRegionLeft(i: integer): boolean;
var x,y: Integer;
begin

result := true;

for x := 1 to High(Values) do
 begin
 if result then
 for y := 1 to High(Values[x]) do
  begin
  if result then
  if Values[x][y] < 1 then
   begin
   result := false;
   Leftx := x;
   lefty := y;
   end;
  end;
 end;
end;
Solltest du hier nicht bei 0 anstatt 1 anfangen zu iterieren?
Uwe Raabe
  Mit Zitat antworten Zitat