Ich versuche herauszufinden, wie man Farbsättigung aus HSV (alternative RGB) herausholen kann. Das Problem ist; Ich weiß kaum was Farbigkeit ist. Entsprechend der kleinen Information, die im Netz verfügbar ist, wird üblicherweise auf "relative Chroma" Bezug genommen, was eine Kombination von Farbton und Sättigung ist.
Von Ссылка :
Ein anderer Begriff für das Konzept der Chrominanz relativ zu einem angenommenen Maximum ist Farbigkeit aus dem schwedischen NCS-System
Ich habe ein RGB, das ich in PHP in HSV umgewandelt habe. Ich hoffe, dass es da draußen jemanden gibt, der seine Expertise in dieser Frage zur Verfügung stellen kann, da nur sehr begrenzte Informationen dokumentiert sind. Ich brauche es, um NCS-Codes zu validieren.
Chromatische Berechnung bis hierher:
%Vor%Zum Beispiel gibt mir die Farbe S 2065-B (# 0073B0) eine Buntheit von 69% unter Verwendung der obigen Berechnung, wenn sie 65% betragen sollte. Auch die Farbe S 0580-Y (# FECB00) gibt mir 99% wenn es 80% sein sollte?
Der HSV in diesen Beispielen, die ich bekomme, sind:
# 0073B0 {'H' = & gt; 200.79545454545, 'S' = & gt; 100, 'V' = & gt; 69.019607843137}
# FECB00 {'H' = & gt; 47.952755905512, 'S' = & gt; 100, 'V' = & gt; 99.607843137255}
Diese Lösung ist in jeder Programmiersprache willkommen, allerdings programmiere ich in PHP, daher wird es wahrscheinlich in diese konvertiert.
Chroma ist das dritte Attribut des Munsell-Systems jenseits von Farbton und Helligkeit.
Chroma im Allgemeinen definiert die Farbigkeit des betreffenden Farbtons: d.h. das Attribut der Farbe, das den Grad der Abweichung der Farbe von dem Grau der gleichen Helligkeit anzeigt. Von hier Color Space und seine Divisionen von Rolf G. Kuehni (reichlich verfügbar bei google books)
Chroma und Sättigung sind identisch für zwei Farben mit dem gleichen Farbton und der gleichen Helligkeit. Die Sättigung bleibt unabhängig von Helligkeit oder Helligkeit konstant. Die Chroma hingegen steigt mit zunehmender Helligkeit.
Die codierten Formeln für Chroma erhalten hier
Solange Sie keine Farbskalen betrachten, bleibt die Chroma-Menge eine offene Menge - sie reicht von 0 bis unendlich.
NCS chromatisch ist Chroma angegeben in Prozent - wobei 100% einer endlichen oberen Grenze entspricht, siehe ISSN-03912051 . Sie müssen diesen endlichen Wert wählen, um einen guten Arbeitsdynamikbereich in Ihrem Computersystem zu erhalten.
Vertrauen, das hilft.
Ich denke, das Problem, das Sie haben, hängt mit der Tatsache zusammen, dass die vier Basisfarben im NCS-System nicht alle 100% Werte im HSV-System haben.
Zum Beispiel wäre ein vollständig gesättigtes und vollständig leuchtendes Orange im NCS-System halbwegs auf dem HSV-Bogen zwischen NCS-Gelb und NCS-Rot. NCS-Gelb hat einen HSV-Wert von 100%, aber NCS-Rot hat einen HSV-Wert von nur 77%, so dass dieses Orange einen Wert von etwa 88,5% hätte. Nichtsdestoweniger wäre die NCS-Farbart immer noch 100%, obwohl Ihre Berechnung von HSV eine Farbart von 88,5% ergeben würde. (Es gibt auch das Problem, dass NCS rot im HSV-System nur 99% gesättigt ist, aber ich ignoriere das.)
Die HSV-Werte für die NCS-Basisfarben lauten wie folgt:
%Vor%Quelle: Ссылка
Ich denke, was Sie tun müssen, ist, nachdem Sie den NCS GY / GB / RY / RB "Farbton" berechnet haben, den maximalen HSV-Wert für diesen NCS-Farbton basierend auf der Aufteilung aus den zwei relevanten NCS-Basisfarben berechnen, berechne dann die NCS-Chromatizität als einen Bruchteil dieses maximalen HSV-Wertes (dh dividiere durch diesen maximalen Wert, wenn es sich um Zahlen zwischen 0 und 1 handelt). Somit würden wir einem gesättigten Y50R-Orange mit einem HSV-Wert von 22,125% eine Chromatizität von 25% geben, da 22,125% 25% des Maximalwerts von 88,5% für Y50R-Orange sind.
Beachten Sie, dass dies bedeutet, dass Sie mit RGB / HSV-Farben umgehen müssen, die über den maximalen Werten für NCS-Farben liegen. In diesen Fällen würde ich wahrscheinlich den HSV-Wert auf das Maximum für NCS-Farben mit demselben Farbton skalieren.
Tags und Links javascript c# php colors