Entwickler-Ecke

Multimedia / Grafik - Farberkennung


DeluXer - Do 22.03.07 19:11
Titel: Farberkennung
Ich habe eine wahrscheinlich relativ banale Frage und muss auch zugeben, dass ich nicht allzuviel Erfahrung mit diesem Thema der Delphi Programmierung habe :oops:

Meine Frage:

Ich habe ein Bild von einer Webcam auf welchem fast nur 2 farben zu sehen sind. Weißer Hintergrund und ein Scharzes Objekt (natürlich partielle Abweichungen durch das Bild der Webcam). Wie kann Delphi jetzt die Schwarze Fläche erkennen und ihre Position bestimmen?

Danke für eure Hilfe schon im Vorraus


rizla - Do 22.03.07 19:22

du meinst quasi so wie wenn ich bei photoshop ne farbauswahl mache, dann ne farbe klicke und ps mir die gesamte fläche als auswahl zurückgibt? hoffe du kennst ps..


DeluXer - Do 22.03.07 19:27

genau so..

nur noch zusätzlich, dass ich irgendwie die position dieser Farbe auf dem Bild rausbekommen müsste


Corpsman - Do 22.03.07 19:39

Ho,

Ist vielleicht Aufwendig aber geht.

Ich nehme an das deine Farbe eine Art zusammenhängende Fläche (etwa ein Kreis ist ).

Also gehst du her und gehst Pixelweise dein Bild Durch.

dann läst du dir zu jedem Pixel mittels getrValue, getBValue, GetGvalue die RGB werte geben und vergleichst sie mit einer gewissen Tolleranz mit den RGB werten deiner zielfarbe. bei dir also Schwarz => alle RGB werte dir < sagen wir 50 sind.

Von Diesen Pixeln Addierst du dann immer schön brav x und y in zwei variablen hoch. und in einer 3. zählst du die ANzahl der Pixel.

Am Schlus teilst du durch die Anzahl und müstest dann den Schwerpunkt deiner Fläche bekommen.

Ich hoffe das Reicht dir.


rizla - Do 22.03.07 19:45

ansonsten gibt es, wie mir gerade und vllt passend zum thema einfällt, eine komponente, die heißt glaub ich TSkinImage, und wenn du dir die mal anschaust, solltest du verstehen, wie man ne bestimmte "Region" zusammensetzt. Hab die Kompo nicht hier, aber wenn ich die finde, uppe ich die hier im Thread!


DeluXer - Do 22.03.07 19:46

gut.. so hatte ich mir das eigentlich auch gedacht, nur scheitert es bei mir daran, dass ich nicht weiß wie ich Pixel einzeln checke..

wie gesagt, auf dem Fachgebiet habe ich noch gar keine Erfahrungen :oops:


rizla - Do 22.03.07 19:56

such mal in der hilfe nach canvas.pixel, da ist ne erläuterung dazu..


ZeitGeist87 - Do 22.03.07 20:01

Suche in der Entwickler-Ecke SCANLINE


Fighter#1 - Do 22.03.07 20:10

Also, ich habe das Problem auch mit Scanline gelöst, ist eigentlich auch extrem easy zu machen (wenn mans denn kan :-) ) Naja mein Ergebnis war dies : http://www.delphi-forum.de/viewtopic.php?t=69725&highlight=
Ich bin eigentlich recht zufrieden