![]() |
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:
Jetzt weiß ich aber nicht, wie ich mittels Scanline den ersten und den letzten (roten) Punkt herausbekommen kann :(
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); Gruß |
Re: Scanline - Position von Objekt in einem Bild
*push* ich probier grad das gleiche und ich packs auch nicht ohne alle pixel einzeln abzufragen :(
|
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.
|
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. |
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