Je vyvážení bílé určeno trojicí nebo maticí?

Je vyvážení bílé určeno trojicí nebo maticí?
« kdy: 17. 04. 2019, 16:14:55 »
Zdravím, čím je určeno vyvážení bílé ?: (schválně nepíšu u čeho, zda u procesu focení, při úpravách...)
- Trojicí multiplikátorů pro R,G a B? (jeden je redudantní, určuje škálování)
- Devíticí 3x3 pro "mix kanálů"

?
« Poslední změna: 17. 04. 2019, 16:47:20 od Petr Krčmář »


Re:Je vyvážení bílé určeno trojicí nebo maticí?
« Odpověď #1 kdy: 17. 04. 2019, 17:12:17 »

Re:Je vyvážení bílé určeno trojicí nebo maticí?
« Odpověď #2 kdy: 17. 04. 2019, 17:26:06 »
Typicky je určeno jen dvěma hodnotami. Například barevnou teplotou (cca osa žlutá - modrá) a posuvem na škále zelená - červená. Nbo pomocí XY.

Z těchto dvou hodnot pro původní a nové vyvážení se pak dá vypočítat ta transformační matice 3x3 pro úpravu RGB hodnot.

Jinak vyvážení bílé spíše odpovídá tomuto odkazu: https://en.wikipedia.org/wiki/White_point

Re:Je vyvážení bílé určeno trojicí nebo maticí?
« Odpověď #3 kdy: 17. 04. 2019, 19:52:31 »
no zrovna v tom mnou odkazovaném článku na wiki píší:

Hence, the general method is sometimes called gray balance, neutral balance, or white balance...

ale jinak se shodneme

Re:Je vyvážení bílé určeno trojicí nebo maticí?
« Odpověď #4 kdy: 18. 04. 2019, 01:20:01 »
Je potřeba neplést vyvážení bílé a transformaci do jiného barevného prostoru.
Vyvážení bílé je to, kdy o nějaké barvě prohlásím, že toto má být bílá, tedy že její hodnoty R,G,B mají být shodné, případně zároveň dosahovat nějaké konkrétní velikosti (255,255,255). Na to stačí ta trojice multiplikátorů.
Transformace do jiného barevného prostoru je věc složitější, kdy převádím hodnoty nasnímané v jednom barevném systému do systému jiného (třeba AdobeRGB do RGBs). Na to je potřeba ta matice.
Aby to bylo ještě složitější, tak třeba u kamer se používalo vyvážení v bílé a černé, přičemž bílá jsou ty multiplikátory a černá je přičtení tří hodnot. Protože snímač je analogový, každý má trochu jiný práh a je potřeba to vykompenzovat. Dneska, kdy je toto nastavení stabilní, už to moc potřeba provádět není. Pokud se jako ve Photoshopu provádí ještě vyrovnání v šedé, už to není soustava lineárních rovnic.


Re:Je vyvážení bílé určeno trojicí nebo maticí?
« Odpověď #5 kdy: 18. 04. 2019, 12:26:18 »
Je potřeba neplést vyvážení bílé a transformaci do jiného barevného prostoru.
...

Aby se to trochu více pletlo, tak matematický aparát to má oboje prakticky stejný. Takže se vám na první pohled všude objeví matice 3x3. Teprve na ten druhý si všimnete, že v případě vyvážení bílé tam jsou nenulové prvky jen na diagonále. Tedy tři. Je to tak proto, že matematici nemají definovanou operaci, která by vám očekávaným způsobem vynásobila dva vektory a vracela opět vektor. Skalární součin vrací jednu hodnotu a vektorový součin sice vrací vektor, ale vynásobí vám mezi sebou prvky úplně jinak, než tady potřebujete. Proto i u vyvážení bílé bude ta matice 3x3, ovšem jen se třemi nenulovými prvky. Praktická realizace s maticí nepracuje, tam prostě jen vynásobíte r*c1, g*c2, b*c3.

Zkrátka, matematici vám tam tu matici 3x3 napíší i u vyvážení bílé. Teprve pohled na prvky té matice vám prozradí, jak to je ve skutečnosti.

RDa

  • *****
  • 2 467
    • Zobrazit profil
    • E-mail
Re:Je vyvážení bílé určeno trojicí nebo maticí?
« Odpověď #6 kdy: 18. 04. 2019, 13:43:23 »
Vyvazeni bile je pro jednoduchost urceno tremi koeficienty - mas tri stupne volnosti. Uplne primitivni nastroj je channel gain, ktery modifikuje silu vystupnich R,G,B kanalu - tedy v sRGB prostoru. Protoze upravovat WB skrze tyhle koeficienty neni uplne prirozene pro lidi, tak existuji berlicky ve forme vzorcu na prepocet na Kelviny (hlavni koeficient, zluta-modra), s dvouma pomocnymi nastavenimi, ktere urcuji miru odchylky od bezne uzitelneho vzorce (ty nastaveni pak meni pomer fialova/zelena, a modra/cervena).

Pokud to chces ale delat precizneji, muzes pouzit barevny rozklad a ekvalizovat kazdou barvu zvlast.

Vice viz relevantni kod:
https://github.com/Beep6581/RawTherapee/blob/dev/rtengine/colortemp.cc

m1x

Re:Je vyvážení bílé určeno trojicí nebo maticí?
« Odpověď #7 kdy: 18. 04. 2019, 21:33:09 »
Pro barevné prostory založené na míchání světel, např. RGB, YUV, HSV, PAL, SECAM, atd. :

Trojice násobitelů pro RGB upraví vyvážení bílé, tedy whitepoint, white balance, barvovou teplotu. Zároveň změní i vyvážení šedé (někdy k horšímu).

Lze taky přičíst trojici bázových hodnot k RGB pro vyvážení černé. (To ovlivní i bílou a šedou.)

Dokonalé vyvážení různých hladin šedé není snadné, protože úrovně jasu nejsou lineární problém, na to se zapomíná. Částečně pomůže trojice gamma korekcí.

Pro převod mezi různými barevnými prostory je potřeba rotace vektorových bází. Na to je ta matice 3x3. Pro samotné vyvážení bílé je to sice nadbytečné, ale použitelné.

Pro tisk nic z toho nestačí, ten je složitější protože jednotlivé složky  mají vlastně jen "černou" a "bílou", dva body vedle sebe mají jiné celkové pokrytí než dva nezávislé body a navíc barviva spolu různě reagují. Lineární převod do CMY nedává lineární výsledek, je nutné CMYK a navíc v RGB jsou i barvy které se v CMYK vyjádřit nedají a naopak v CMYK jsou barvy které neexistují v RGB. A bílá je určená barvou papíru  :P