![]() |
Scanline x,y Koordinaten falsch?!?
Hi,
ich habe folgende Scanline Schleife;
Delphi-Quellcode:
Leider liegen die gefundenen Koordinaten immer ca. 300 Pixel rechts neben dem gesuchten Punkt.
Function FindColor(bmp:TBitmap):TPoint;
type PixArray = array[1..3] of Byte; var i, iMax, x, y, w, h: Integer; p : ^PixArray; begin Result:=Point(-1,-1); Form1.ProgressBar1.Max := bmp.Height-1; for y := 0 to bmp.Height-1 do begin p := bmp.ScanLine[y]; Form1.ProgressBar1.Position := y; for x := 0 to bmp.Width-1 do begin if( (p^[3]=255) AND (p^[2]=0) AND (p^[1]=0) ) then begin Showmessage('Gefunden'); Result := Point(x, y); exit; end; inc(p) end; end; end; Woran liegt das? Am umgekehrten Aufbau von Scanlines? Danke!! |
Re: Scanline x,y Koordinaten falsch?!?
nein, daran liegt es nicht. Woran es liegt kann man dir so aber auch nicht sagen weil du uns ja jegliche Information die uns helfen könnte verschweigst.
Woher weißt du denn das es 300 Pixel daneben liegt? geschätzt? Kann es nicht sein das die Farbe mehrfach vorkommt? Und wenn es wirklich 300 Pixel daneben liegt, welche Farbe liegt denn dann an der Stelle die gefunden wird? Eventuell eine wo die identich mit der gesuchten ist nur das rot und blau vertauscht sind? :glaskugel: Das sind alles Dinge die meine Glaskugel in Betracht zieht weil diese ja nicht weiß was du wirklich suchst und was du findest. Zudem weiß sie auch nicht woher du weißt dass, das Ergebnis genau 300 Pixel daneben liegt oder ob dies eine Schätzung ist. |
Re: Scanline x,y Koordinaten falsch?!?
Also ich hab in das bmp die Koordinaten Farbig markiert und dann abgespeichert. In Photoshop geöffnet und nachgemessen ergab dass dann ca. 300 Px, 325 um genau zu sein :) Die Farbe kommt zwar weiter unten vor aber das sollte kein Problem sein da ich das bmp ja von oben her absuche und direkt beim ersten Treffer stoppe. Je nachdem wie mein Fenster ist, maximiert oder minimiert ist dort dann meistens die Farbe weiß...
Ich hab auch mal einfach die Koordinaten x,y in den Mouse Cursor eingesetzt und mitfahren lassen damit ich sehe wo gerade sich die Schleife befindet und dann geht er jedesmal eben ca. 300 px über den Farbpixel hinaus. reicht das an Infos? :) |
Re: Scanline x,y Koordinaten falsch?!?
Hat das Bitmap denn auch das Format pf24bit ??
|
Re: Scanline x,y Koordinaten falsch?!?
das Bitmap hat 32bit, macht das einen Unterschied? :) Kann gerade leider nicht testen da ich in der Arbeit bin... aber Danke schonmal für den Tipp! :)
|
Re: Scanline x,y Koordinaten falsch?!?
Ja - denn dann soltest du dein Array auch 4 Byte groß machen :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:38 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-2025 by Thomas Breitkreuz