Zobrazování barev 1995-2015 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 18
Barevné schopnosti HW True-color nebo pseudo true-color přímý výstup barevných složek: RGB, CMY(K) alespoň 5 bitů na složku a pixel (typicky 8) displeje: 15, 16 (5-6-5), 24-bitová barva zvětšení barevného rozsahu: rozptylování zařízení s barevnou paletou ( colormap ) pevná nebo nahrávaná paleta počet barev: 16 4096 (nejčastěji 256) redukce počtu barev ( color quantization ) ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 2 / 18
Zobrazení barev pomocí palety převod barev na odstíny šedi složka Y (0.2989 R + 0.5866 G + 0.1144 B) univerzální barevná paleta + rozptylování např. 3-3-2 paleta (256 barev), 6-7-6 (252 barev) maticové, náhodné rozptylování, distribuce chyby adaptovaná barevná paleta (+ rozptylování) paleta optimalizovaná pro jeden konkrétní obrázek metody konstrukce palety shora-dolů (Heckbert) a zdola-nahoru (shluková analýza) ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 3 / 18
Univerzální 3-3-2 paleta Blue (0 3) Green (0 7) doména pro rozptylování Red (0 7) ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 4 / 18
Univerzální palety paleta 3-3-2 : 8 8 4 barvy (256 barev) snadné převody (bez operace násobení) paleta 6 7 6 : 6 7 6 barev (252 barev) rovnoměrné rozdělení RGB prostoru paleta 7 12 3 : 7 12 3 barvy (252 barev) zohledňuje různou citlivost oka na barevné složky palety pro jiné barevné systémy např. 12 (1+2+3+4+5+6) pro HSV (186 barev) ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 5 / 18
Univerzální paleta pro HSV Hue (0 11) Saturation (0 5) Value (0 5) ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 6 / 18
Konstrukce adaptované palety speciální paleta přizpůsobená pro zobrazení jednoho konkrétního obrázku její výpočet může být značně časově náročný konstrukce metodou shora-dolů dělím množinu použitých barev tak dlouho, až dostanu žádaný počet skupin (např. 256) konstrukce metodou zdola-nahoru sdružuji příbuzné barvy do skupin, dokud nemám požadovaný počet skupin (shluková analýza) ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 7 / 18
Metoda shlukové analýzy vytvořím barevný histogram obrázku výčet všech použitých barev včetně jejich četností každá barva tvoří na začátku samostatnou skupinu najdu dvě nejbližší skupiny barev a spojím je kritéria podobnosti: vzdálenost min{ C i -C j }, průměr max{ C i -C j }, rozptyl sqrt( (C i - C) 2 /n) krok opakuji tak dlouho, dokud nedostanu požadovaný počet skupin N (např. 256) slučovacích kroků je třeba udělat velmi mnoho! ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 8 / 18
Postup výpočtu ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 9 / 18
Algoritmus Octree šetří paměť i čas výpočtu rychlejší hledání nejbližších skupin barev cenou je podstatná ztráta kvality! z prvních N různých barev vytvořím skupiny načítám zbytek obrázku a pro každý pixel s dosud se nevyskytující barvou provedu: z N+1 skupin vyberu dvě nejbližší a sloučím je algoritmus není symetrický (záleží na pořadí průchodu) ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 10 / 18
Heckbertův algoritmus ( median cut ) vytvořím barevný histogram obrázku všechny barvy tvoří na začátku jednu skupinu (obalový kvádr) vyberu největší skupinu barev a rozdělím ji na 2 různé metody pro výběr i dělení skupiny barev krok opakuji tak dlouho, dokud nedostanu daný počet skupin N (např. 256) při mapování barev se může použít rozptylování ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 11 / 18
Dělení skupiny ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 12 / 18
Kritéria dělení skupin barev velikost obalového kvádru (délka nejdelší hrany) nejdelší hranu kvádru pak mohu rozdělit v polovině subjektivní velikost obalového kvádru jednotlivé složky jsou váženy citlivostí lidského oka počet barev (počet vstupních pixelů) rozdělím nejdelší hranu kvádru v místě mediánu rozptyl barev (vážený počtem pixelů) rozdělím nejdelší hranu kvádru v průměrné hodnotě ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 13 / 18
Kritéria dělení příklady málo barev více barev, malý rozptyl méně barev, velký rozptyl dělení podle mediánu ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 14 / 18
Implementace vytváření histogramu je náročné na čas i paměť řídké uložení histogramu (šetří paměť) datová struktura s rychlým vyhledáváním (hašování) přemapování barev zaokrouhlení (vyhledání příslušné skupiny - boxu) rozptylování mezi nejbližšími barvami palety (distribuce chyby: hledání nejbližší barvy, vstupní barvy musí ležet v konvexním obalu barev palety) ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 15 / 18
Barevný tisk malý počet základních barev (2-8) velké základní - pixelové - rozlišení (tisíce dpi) univerzální čtyřbarevný tisk: CMYK každá základní barva se půltónuje jednotlivé půltónovací rastry ( screens ) mívají rozlišení 60 480 lpi ( lines per inch ) používají se rastry s čtvercovými, kruhovými, eliptickými tečkami, kombinované a speciální rastry ( Monet, náhodný rastr,..) ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 16 / 18
Soutisk rastrů rastry se navzájem otáčejí zabraňuje se tak vzniku rušivých interferencí klasická sada úhlů pro čtyřbarevný tisk CMYK: 0, 15, 45, 75 ( Offset angles ) jiná sada úhlů: 7.5, 22.5, 37.5, 52.5, 67.5, 82.5 ( Flexo angles ) úhly s racionální směrnicí jsou výhodnější pro implementaci ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 17 / 18
Konec Další informace: Jiří Žára a kol.: Počítačová grafika, principy a algoritmy, 335-342 ukázka: http://cgg.mff.cuni.cz/~pepca/lectures/samples/colorrep/ ColorRep 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 18 / 18