Vergleichen von RGB-Werten von Pixeln

Morbid2k4

Grünschnabel
Hallo liebe Leute ich habe da mal eine Frage,

ich schreibe gerade an einem Programm das lernt ein 21 x 21 Pixel Array zu speichern und dann dieses gespeicherte Array mit dem was man gerade auf dem Bildschirm unter dem Mauscursor sieht vergleicht und dann eine prozentuelle Ähnlichkeit zu dem gespeicherten Array ausrechnet. Soweit zur dem was das Programm macht.

Jetzt habe ich aber festgestellt, dass RGB-Werte von Dunkelrot und -grün usw sich ähneln und es so oft zu false possitives kommt. Wie vermeidet man diesen Fehler? Hat jemand damit Erfahrung und kennt jemand eine simple Methode um RGB-Werte auf ihre Ähnlichkeit hin zu untersuchen?
 
Hallo,

könntest du nicht jeden einzelnen Kanal (also Rot, Grün und Blau) einzelnt vergleichen?

So bekommste du die einzelnen Werte:
C++:
BYTE *pColor = (BYTE*)Pixel;
BYTE Alpha = pColor[0];
BYTE Rot = pColor[1];
BYTE Grün = pColor[2];
BYTE Blau = pColor[3];

Gruß
Anfänger
 
Zuletzt bearbeitet von einem Moderator:
Danke für den Tipp aber ich vergleiche schon alle einzelnen Kanäle. Aber sagen wir ich habe ein mittleres Grün eingescannt und sehe ein etwas dunkleres Grün auf dem Bildschirm. Für solche Fälle habe ich einen Tolleranzwert damit das Programm den leichten Farbunterschied erkennt - was für unser menschliches Auge fast kein Unterschied ist übrigens.

Das Problem ist jedoch, dass das dunklere Grün dem dunkleren Rot zum Verwechseln ähnlich ist - anscheinend. Hab schon alles mögliche probiert von: Primärfarbe definieren und vergleichen bis hin zum prozentuellen An- oder Abstieg vergleichen und Verhältnisse berechnen usw. Funktioniert alles nicht. Zwar läuft das Programm reibungslos, aber diese kleinen Aussetzer regen mich halt auf.
 
Das Problem ist jedoch, dass das dunklere Grün dem dunkleren Rot zum Verwechseln ähnlich ist - anscheinend. Hab schon alles mögliche probiert von: Primärfarbe definieren und vergleichen bis hin zum prozentuellen An- oder Abstieg vergleichen und Verhältnisse berechnen usw. Funktioniert alles nicht. Zwar läuft das Programm reibungslos, aber diese kleinen Aussetzer regen mich halt auf.
Vielleicht würde es was bringen, die Farben (zusätzlich oder ausschließlich) in einem anderen Farbmodell (z.B. HSV) zu vergleichen.

Grüße, Matthias
 
Jap, HSV sollte gut sein (Farbton, Helligkeit und Sättigung).
Da wäre der Unterschied im Farbton bei zB dunklem Rot und Grün gut erkennbar.
 
Zuletzt bearbeitet:
Zurück