Modele barwne obrazów
“Jeżeli w grafice komputerowej chcemy korzystać z barw w sposób precyzyjny, to musimy je określić i zmierzyć”
J. Foley
Istnieją różne modele przestrzeni barw, między innymi:
- RGB (oraz RGB z kanałem alfa)
- CMYK.
- CIEXYZ (CIE1931)
- CIELab (CIE1976)
- CIELUV.
- HSV oznaczane również jako HSB.
- HSL, HSI.
- YUV oraz YIQ.
Najbardziej popularnymi w świecie grafiki i fotografii są trzy modele barwne, które postaram się omówić. Są nimi:
- RGB
- CMYK
- HSX
RGB
W systemie RGB (Red, Green, Blue) każdy kolor jest przedstawiany w postaci mieszanki kolorów czystych: czerwonego, zielonego i niebieskiego. Sposób ten jest odpowiedni do przedstawiania barw światła emitowanego System RGB jest szeroko stosowany do definiowania barw w grafice ekranowej.
Udział danego składnika czystego wyrażany jest w procentach, lub — co na jedno wychodzi — za pomocą liczb rzeczywistych z przedziału ⟨0.0, 1.0⟩, przy czym wartość 0.0 oznacza brak danego składnika, zaś 1.0 — jego maksymalny udział w opisywanej barwie. Tym samym każdy kolor jest opisany za pomocą trzech liczb rzeczywistych: trójka (1.0, 0.0, 0.0) odpowiada pełnemu nasyceniu barwy czerwonej, (0.0, 1.0, 0.0) — zielonej, zaś (0.0, 0.0, 1.0) — niebieskiej. Barwa biała ma współrzędne (1.0, 1.0, 1.0), a trójka (0.208, 0.184, 0.894) opisuje pewien odcień atramentowego błękitu. Proporcjonalne zmniejszenie wszystkich składników oznacza przesunięcie ku kolorowi czarnemu. Każda równomierna mieszanka kolorów podstawowych oznacza pewien odcień koloru szarego. Punkt (0, 0, 0) oznacza kolor czarny.
Taki uogólniony opis jest niezależny od rozwiązań technicznych przyjętych w poszczególnych systemach i urządzeniach. Znalazł on również zastosowanie w interfejsach użytkowych wielu programów graficznych (np. GNU GIMP).
Poszczególne cyfrowe realizacje modelu RGB przewidują ustaloną liczbę bitów do opisu udziału każdego składnika w barwie. W praktyce zatem przymuje się, że udziały te są opisywane przez liczby całkowite z zakresu od zera do wartości maksymalnej, równej 2liczba bitów−1. Intensywność danego składnika wyraża się przez iloraz liczby opisującej ten składnik i jej maksymalnej możliwej wartości.
Szeroko dziś stosowany 24-bitowy model RGB przewiduje dla każdego składnika barwy liczbę 8-bitową, którą można utożsamiać z liczbą całkowitą z zakresu 0–255. Na przykład czystej barwie czerwonej (1.0, 0.0, 0.0) odpowiada 24-bitowy kolor RGB opisany współrzędnymi (255, 0, 0). Barwie białej (1.0, 1.0, 1.0) odpowiadają współrzędne (255, 255, 255). Odcienia błękitu (0.208, 0.184, 0.894) nie da się odwzorować w omawianej reprezentacji dokładnie; w przybliżeniu ma on współrzędne (53, 47, 226).
Popularna jest też konwencja przedstawiania barw RGB z tego modelu w postaci jednej liczby 6-cyfrowej w systemie szesnastkowym, której kolejne pary cyfr opisują zawartość barw podstawowych w mieszance. Jest to tzw. trójka szesnastkowa (lub triplet szesnastkowy). I tak na przykład czystej barwie czerwonej (255, 0, 0) odpowiada triplet ff0000, barwie białej (255, 255, 255) — triplet ffffff. Odcieniowi błękitu (53, 47, 226) odpowiada triplet szesnastkowy 352fe2.
W profesjonalnych realizacjach model RGB umożliwia opis większej liczby poziomów barwy czystej. Model 48-bitowy pozwala na 16-bitowy opis każdego składnika, co odpowiada poziomom wartości od 0 do 65535. Na przykład w pełni nasycona czysta barwa czerwona ma w 48-bitowym modelu RGB współrzędne (65535, 0, 0), zaś biała – (65535, 65535, 65535). W przypadku 48-bitowym triplet szesnastkowy musi się składać z trzech bloków 4-znakowych.
CMYK
System CMYK (Cyan, Magenta, Yellow, black) służy do opisu barw przedmiotów nie emitujących światła, tylko je pochłaniających. Jest on podobny do systemu RGB, lecz korzysta z innego układu kolorów bazowych (cyan, magenta, yellow, black), właściwszego przy mieszaniu barwników (tzw. model dopełnieniowy barw). Tutaj nakładanie się kolorów prowadzi do zmniejszenia jasności. Jest on używany głównie w systemach druku, a także w sterownikach drukarek, do definiowania barw wydruku.
HSX – HSI, HSL, HSV (HSB), HSY
HSL (dla odcienia, nasycenia, jasności )
HSV (na odcień, nasycenie, wartość) – HSB , (na odcień, nasycenie, jasność )
HSX
Ma cztery różne układy współrzędnych HSX. Różnica między nimi polega na tym, jak radzą sobie z tonem.
HSI
HSI to system współrzędnych kolorów, który wykorzystuje barwę, nasycenie i intensywność do kategoryzacji koloru. Odcień to mniej więcej długość fali, niezależnie od tego, czy kolor jest czerwony, żółty, zielony, cyjan, niebieski czy fioletowy. Jest mierzony w 360°, gdzie 0 oznacza kolor czerwony. Nasycenie to miara przybliżenia koloru do szarości. Intensywność, w tym przypadku to ton koloru. Intensywność jest wyjątkowa, ponieważ rozpoznaje żółty (rgb:1,1,0) mający wyższą łączną wartość rgb niż niebieski (rgb:0,0,1). Jest to nieliniowy wymiar tonalny, co oznacza, że jest skorygowany względem gamma.
HSL
HSL to także system współrzędnych koloru. Opisuje kolory w odcieniu, nasyceniu i jasności. Jasność w szczególności sprawia, że zarówno żółty (rgb: 1,1,0), niebieski (rgb: 0,0,1), jak i średni szary (rgb: 0,5, 0,5, 0,5) mają tę samą jasność (0,5).
HSV
HSV, czasami nazywany HSB, to układ współrzędnych koloru. Mierzy kolory w odcieniu, nasyceniu i wartości (zwanej również jasnością). Wartość lub jasność odnosi się w szczególności do siły, z jaką muszą świecić światła pikseli na monitorze. Ustawia żółty (rgb:1,1,0), niebieski (rgb:0,0,1) i biały (rgb:1,1,1) na tę samą wartość (100%).
HSY
HSY to kolorowy układ współrzędnych. Klasyfikuje kolory pod względem odcienia, nasycenia i jasności. Cóż, niezupełnie, używa Lumy zamiast prawdziwej jasności, różnica polega na tym, że Luminosity jest liniowa, podczas gdy Luma jest z korekcją gamma i tylko waży komponenty rgb. Luma opiera się na badaniach naukowych, ile światła odbija kolor w rzeczywistości. Chociaż podobnie jak intensywność, potwierdza, że żółty (rgb:1,1,0) jest jaśniejszy niż niebieski (rgb:0,0,1), przyznaje również, że żółty (rgb:1,1,0) jest jaśniejszy niż cyjan (rgb :0,1,1), na podstawie tych badań.
Do opisu barwy światła emitowanego bywa stosowany także system HSB (Hue, Saturation, Brightness), czyli (odcień, nasycenie, jasność). Parametr odcienia odpowiada kolorom brzegowym koła barw od 0 (czerwony) przez 120 (zielony) i 240 (niebieski) do 360 (czerwony), parametr nasycenia leży w przedziale od 0 (biel) do 1.0 lub 100% (pełne nasycenie), parametr jasności leży w przedziale od 0 (czerń) do 1.0 lub 100% (jasny kolor o podanym odcieniu i nasyceniu). Kolorowi opisanemu w systemie RGB jako (0.208, 0.184, 0.894) odpowiadają w przybliżeniu współrzędne (242, 0.79, 0.88) systemu HSB.