Seite 1 von 1

Hauptfarbe eines jeden Pixels erkennen ...wie ?

Verfasst: 19.04.2015 11:30
von 3dhubiflieger
Also ich möchte die Hauptfarbe eines Pixels ermitteln. Ich weiss Pixel = Point(x,y), Ok.
Jetzt ist das aber der RGB Wert....Ok, ich kann die Sache noch in die 3 Hauptfarben zerlegen.
Aber wie kann ich jetzt feststellen ob der RGBWert ein grünes Pixel, ein Rotes Pixel oder ein braunes Pixel ist ? Die Abstufungen der einzelnen RGBWerte sind mir nicht wichtig. Ich will einfach nur wissen um was es für eine Farbe es sich im RGBwert handelt. Egal ob helles oder dunkles Grün, helles oder oder dunkles Rot....Gibt es da irgendwie ne Lösung ?

Ich hab da was von Stargate gefunden.

Code: Alles auswählen

Procedure.f DistanceRGB(Color1, Color2)
 ProcedureReturn Sqr( Pow(Red(Color1)-Red(Color2),2) + Pow(Green(Color1)-Green(Color2),2) + Pow(Blue(Color1)-Blue(Color2),2) ) / Sqr(255*255*3)
EndProcedure



Aber wenn ich in Color1 = $006600 einsetze (Grünwert aus Farbtabelle) und in Color2 den aktuellen Pixelwert ->Point(X,Y) ist die Differenz bei manchen Pixeln geringer, obwohl diese auf dem Bildschirm keinen Grünwert darstellen !? ...Will halt einfach nur die Hauptfarbe des Pixel finden. Am besten mittels String als Rückgabewert....Hoffe ihr versteht mein Problem

Re: Hauptfarbe eines jeden Pixels erkennen ...wie ?

Verfasst: 19.04.2015 17:28
von NicTheQuick
Am einfachsten ist es du rechnest den RGB-Wert in einen HSV-Wert um. Wenn du hier nach HSV suchst, müsstest du genug dazu finden.