Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Scanline - Position von Objekt in einem Bild (https://www.delphipraxis.net/76384-scanline-position-von-objekt-einem-bild.html)

felxi 3. Sep 2006 14:20


Scanline - Position von Objekt in einem Bild
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bin gerade dabei, meine ersten Schritte mit Scanline zu machen :stupid:

Jetzt wollte ich versuchen, ein Rechteck um ein andersfarbiges Objekt im Bild zu ziehen (siehe Bild).

Folgenden Code benutze ich zum einfärben:


Delphi-Quellcode:
var
  Line:PRGBQUAD;
  x,y :integer;

begin


   bmp := Tbitmap.Create;
   bmp.LoadFromFile('c:\Bild.bmp');
   bmp.PixelFormat := pf32Bit;


   For y := 0 to bmp.Height - 1 do begin
   Line := Bmp.ScanLine[y];
   For x := 0 to bmp.Width - 1 do begin
   If not(Line.rgbGreen > 100 ) then begin
   Line.rgbRed := 0;
   

end;

   inc(Line);

end;
end;


  Image1.Picture.Bitmap.Assign(Bmp);
Jetzt weiß ich aber nicht, wie ich mittels Scanline den ersten und den letzten (roten) Punkt herausbekommen kann :(

Gruß

Nicodius 26. Okt 2006 20:10

Re: Scanline - Position von Objekt in einem Bild
 
*push* ich probier grad das gleiche und ich packs auch nicht ohne alle pixel einzeln abzufragen :(

Khabarakh 26. Okt 2006 20:25

Re: Scanline - Position von Objekt in einem Bild
 
Wenn du keinerlei Informationen über die Form und Position des Objektes hast, bleibt dir IMHO überhaupt nichts Anderes übrig.

semo 26. Okt 2006 20:39

Re: Scanline - Position von Objekt in einem Bild
 
äußerst linken punkt ermitteln, indem du von pos(0,0) jede zeile vertikal durchgehst bis du den ersten roten punkt gefunden hast.
äußerst rechten punkt ermitteln, indem du das gleiche von der rechten seite probierst.

obersten punkt ermitteln, indem du von pos(0,0) horizontal jede zeile durchgehst bis du den ersten roten punkt gefrunden hast.
untersten punkt ermitteln, indem du von pos(0,height) horizontal jede zeile durchgehst bis du den ersten roten punkt gefrunden hast.

dann hast du 4 punkte und kannst anhand dieser punkte dein rect zeichnen.

Nicodius 26. Okt 2006 22:55

Re: Scanline - Position von Objekt in einem Bild
 
okay danke ;D


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz