Vergleich der Farben und der Identifizierung der nächsten Übereinstimmung in einem Array ist eine gemeinsame Aufgabe in Grafikanwendungen. In diesem Artikel werden wir drei verschiedene Methoden untersuchen, um dies zu erreichen:
1. Nur Hue-Nur-Vergleich:
Diese Methode berücksichtigt nur die Farben der Farben, die Sättigung und Helligkeit ignorieren. Die Farbtonentfernung wird unter Verwendung einer einfachen Subtraktion berechnet, und der nächstgelegene Farbton wird bestimmt, indem die minimale Distanz gefunden wird.
2. RGB Distanz:
Diese Methode misst die direkte Distanz zwischen den RGB -Werten der Farben. Der Farbunterschied wird als euklidische Entfernung im RGB -Raum berechnet, und die engste Farbe wird gefunden, indem dieser Unterschied minimiert wird.
3. Gewichteter Farbton, Sättigung und Helligkeitsvergleich:
Diese Methode kombiniert Farbton, Sättigung und Helligkeit auf gewichtete Weise. Die wahrgenommene Helligkeit wird berechnet und eine Farbzahl basierend auf Sättigung und Helligkeit berechnet. Die nächstgelegene Farbe wird bestimmt, indem die gewichtete Summe des Farbunterschieds und der Farbtonentfernung minimiert wird.
int conthestColor1 (Liste
// Farbhelligkeit wie wahrgenommen: float getBrightness (Farbe c) => (C.R * 0,299F C.G * 0,587F C.B * 0,114F) / 256F; // Abstand zwischen zwei Farbtönen: float gethuedistance (float hue1, float hue2) => math.abs (hue1 - hue2)> 180? 360 - math.abs (hue1 - hue2): math.abs (hue1 - hue2); // gewogen durch Sättigung und Helligkeit: float colornum (Farbe c) => c.getSaturation () * faktoren Getbrightness (c) * faktorbri; // Entfernung im RGB -Raum: int colordiff (Farbe C1, Farbe c2) => (int) math.sqrt ((c1.r - c2.r) * (c1.r - c2.r) (c1.g - c2.g) * (c1.g - c2.g) (c1.b - c2.b) * (c1.b - c2.b); Metrik hängt von der spezifischen Anwendung ab. Wenn der Farbton die primäre Überlegung ist, reicht der Nur-Farbton-Vergleich aus. Für allgemeinere Farbanpassungen liefern die RGB -Entfernung oder die gewichtete Farbton-, Sättigungs- und Helligkeitsvergleichsmethoden genauere Ergebnisse.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3