[c#] Estrai cromaticità / cromia relativa da HSV


0 Answers

Penso che il problema che si sta avendo riguarda il fatto che i quattro colori di base nel sistema NCS non hanno tutti i valori del 100% nel sistema HSV.

Ad esempio, un arancione completamente saturo e completamente luminoso nel sistema NCS sarebbe a metà dell'arco HSV tra il giallo NCS e il rosso NCS. Il giallo dell'NCS ha un valore HSV del 100%, ma il rosso dell'NCS ha un valore HSV di appena il 77%, quindi questa arancia avrebbe un valore di circa 88,5%. Ciononostante, la cromaticità dell'NCS sarebbe ancora del 100%, anche se il tuo calcolo da HSV gli darebbe una cromaticità dell'88,5%. (C'è anche il problema che l'NCS red è saturo solo al 99% nel sistema HSV, ma lo ignoro).

I valori HSV per i colori base NCS sono i seguenti:

white 100%
black 0%
green 63%
red 77%
yellow 100%
blue 74%

fonte: https://en.wikipedia.org/wiki/Natural_Color_System

Penso che quello che devi fare è, dopo aver calcolato la NCS GY / GB / RY / RB "hue", calcolare il valore HSV massimo per quella tonalità NCS in base alla valutazione dai due colori base NCS rilevanti, quindi calcolare il valore La cromaticità dell'NCS come frazione di quel valore HSV massimo (cioè, dividere per quel Valore massimo, se abbiamo a che fare con numeri compresi tra 0 e 1). Quindi, daremo un'arancia Y50R satura con un valore HSV del 22,125% a una cromaticità del 25%, poiché il 22,125% è il 25% del valore massimo dell'88,5% per l'arancia Y50R.

Nota che questo significa che dovrai affrontare i colori RGB / HSV che superano i valori massimi per i colori NCS. In questi casi probabilmente dovrei ridimensionare il valore HSV al massimo per i colori NCS con la stessa tonalità.

Question

Sto cercando di capire come ottenere cromaticità da HSV (RGB alternativo). Il problema è; So a malapena cos'è il cromatismo. Secondo le piccole informazioni disponibili in rete, di solito si riferisce a "chroma relativo" che è una combinazione di tonalità e saturazione.

Da http://www.huevaluechroma.com/012.php :

Un altro termine per il concetto di croma relativo ad un massimo assunto è la cromaticità dal sistema svedese NCS

Ho un RGB che ho convertito in HSV in PHP. Spero che ci sia qualcuno là fuori che possa fornire la loro esperienza in questa domanda perché sembra che ci siano informazioni molto limitate documentate. Ne ho bisogno per convalidare i codici NCS.

Calcolo cromatico fino a questo punto:

   //$hsv is array(h, s, v), maximum considered to be 10000        
   $chroma = $hsv[1] * $hsv[2];
   $chromaticness = $chroma / 10000;

Ad esempio, il colore S 2065-B (# 0073B0) mi dà cromaticità del 69% utilizzando il calcolo sopra quando dovrebbe essere del 65%. Inoltre, il colore S 0580-Y (# FECB00) mi dà il 99% quando dovrebbe essere dell'80%?

L'HSV in questi esempi che sto ottenendo sono:

# 0073B0 {'H' => 200.79545454545, 'S' => 100, 'V' => 69.019607843137}

# FECB00 {'H' => 47,952755905512, 'S' => 100, 'V' => 99.607843137255}

Questa soluzione è ben accetta in qualsiasi linguaggio di programmazione, tuttavia sto codificando in PHP, quindi sarà probabilmente convertito in questo.






Related