semmixkolor i percepcja

Nasycenie (saturation)

Nasycenie mówi, jak bardzo barwa różni się od szarości, w stosunku do własnej jasności. To definicja z kolorymetrii. Modele HSV, HSL i HSI mają każdy własną, inną formułę na S i dla tej samej barwy podają różne wyniki.

Nasycenie, chroma, colorfulness

Kolorymetria rozróżnia trzy pojęcia, które w potocznym języku są jednym "nasyceniem" (zob. miary barw):

Nasycenie w modelach z RGB

max = max(R, G, B), min = min(R, G, B), d = max - min HSV: S = d / max HSL: S = d / (1 - |max + min - 1|) HSI: S = 1 - min / I, I = (R + G + B) / 3

Dla RGB (200, 80, 40), #c85028:

HSV: S = 0,6275 / 0,7843 = 80,0% HSL: S = 0,6275 / 0,9412 = 66,7% HSI: S = 1 - 0,1569 / 0,4183 = 62,5%

Pułapka HSL

W HSL nasycenie dzieli się przez odległość od najbliższego końca osi jasności, czyli od czerni albo bieli. Przy bardzo jasnych i bardzo ciemnych barwach ten mianownik jest mały, więc S rośnie do 100%, choć barwa jest prawie szara:

RGB (255, 250, 250), prawie biel z odrobiną różu: HSV: S = 2,0% HSL: S = 100% (L = 99,0%)

Dla HSL ta barwa jest "w pełni nasycona", bo przy L = 99% nie da się być bardziej różowym. Dla oka to biel. Dlatego S z HSL nie nadaje się do porównywania barwności kolorów o różnej jasności. HSV zachowuje się tu rozsądniej, ale też nie uwzględnia czułości oka.

Nasycenie w CIELUV i CIELAB

CIE zdefiniowało nasycenie tylko w CIELUV, jako odległość od bieli na wykresie u'v':

s_uv = 13 · √((u' - u'_n)² + (v' - v'_n)²) = C*_uv / L* dla naszego koloru: s_uv = 13 · √((0,3472 - 0,1978)² + (0,5243 - 0,4683)²) = 2,07

W CIELAB oficjalnej definicji nie ma. Najczęściej używa się stosunku chroma do jasności:

s_ab = C*_ab / L* = 65,11 / 49,71 = 1,31

Obie miary uwzględniają percepcję i dlatego nadają się do porównań, ale nie mają górnej granicy 100%. Wartości zależą od barwy: najbardziej nasycone są czyste błękity i czerwienie.