Funkce na výpočet barev

Od: Datum: 16.08.13 10:50 odpovědí: 7 změna: 18.08.13 07:57

Trochu se zajímám o programování a chci vytvořit funkci která určuje jestli barva RGB (z obrazovky) odpovídá určité toleranci (anglicky fuzz). Začal jsem tedy něco studovat o jmenných prostorech z anglických zdrojů, ale v některých věcech mám stále mezery abych to mohl správně pochopit (nejsem moc dobrý přes matematiku a nějaké řecké písmena ani neumím přečíst a nevím přesně co znamenají) tak se chci zeptat jestli této tématice někdo rozumí jestli by mi třebanevysvětlil jednotlivé vzorce nebo grafy. Začal jsem teda od standardu CIE1931 neboli CIE 1931 xyz a k bodu "Color matching functions":

http://en.wikipedia.org/wiki/CIE_XYZ_color_space

tj. ten třetí graf zezhora. Nechápu na tom několik věcí. Jak je možné že svétivost tam má hodnotu 2.0 myslel jsem že limit je 1.0 A jakto že ta modrá křivka je asi tak dvakrát vyšší než červená a modrá. Dále jakto že červená křivka v tom grafu má dvě vlnovky.

U toho vzorce "The tristimulus values for a color with a spectral power distributionI(lambda), are given in terms of the standard observer by:" ... potřebujuu objasnit nejlépe do češtiny to první řecké písmeno s číslem vlnové délky a co znamenají písmena I a d.

doplněno 16.08.13 15:13:

Kromě toho prvního vzorce:

http://upload.wikimedia.org/math/7/3/1/73198198b48843366c8ab78619d6170a.png

Teď potřebuju pochopit ještě jeden:

http://en.wikipedia.org/wiki/Luminosity_function

http://upload.wikimedia.org/math/9/a/2/9a2784abf032740c36f15f235c79901a.png

Na těch vzorcích hlavně nechápu co znamená to velké protáhlé "S". Možná je to označení pro to anglické "cube root" což neumím přeložit.


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Od: petrcolina*
Datum: 16.08.13 13:37

Nechápu, proč spojujete barevné tolerance RGB a standardy CIE. Pokud napíšete k jakému účelu to potřebujete nebo čeho chcete docílit, možná Vám někdo spíše poradí.

Ohodnoceno: 0x
 
Datum: 16.08.13 14:49

Pro výpočet tolerancí RGB je třeba znalost colorspaců a znalost té problematiky, alespoň základů. Proto jsem se dal do učení. Chápu, že chci-li pochopit jak funguje určitý převod potřebuji znát i pozadí, abych věděl co vlastně počítám a jak. Mám nějaký vzorec na výpočet tolerance psaný v jazyku C (což není můj obor) a ten je psaný pro barevný prostor CIELAB, CIE 1976 (L*, a*, b*). Chtěl jsem pochopit ty základy, ovšem nepochopil jsem tu odkazovanou část.

Datum: 16.08.13 17:09
avatar

Velké protáhlé "S" je integrál (v tomhle případě určitý integrál, od do), cube root je třetí odmocnina (jako druhá odmocnina je square root; naopak třetí mocnina je "cubed", druhá "squared"), to λ v závorce je lambda (a teď koukám, že se tu v nabídce znaků vyskytuje dvakrát, kdyby to chtěl někdo opravovat ;)).

Ty dva červené "kopečky" tam jsou proto, že když se kouknete na barevné spektrum viditelného světla (http://lumenistics.com/wp-con…lectro-magnetic-spectrum1.jpg), tak nalevo od modré se vyskytuje fialová, což je modrá+červená.

Ohodnoceno: 3x
 
Datum: 16.08.13 20:21

Díky moc za vysvětlení. Lambdu jako jednotku vlnové délky chápu. Ale co třeba I a d? Že by I znamenalo intenzitu? Teď když se dívám dále ještě níže je další graf, který ukazuje záporné hodnoty červené křivky. Ovšem zpět k původnímu grafu. Je pro mě záhada co ten graf popisuje, protože běžně se uvádí ty tři křivky přibližně stejně velké a v pozitivních hodnotách s nejvyšší hodnotou v přibližně stejném bodě. Tenhle graf by možná dával smysl u rozštelovaného monitoru, u obrazu s hodně špatně nastavenou červenou barvou apod. Možná bych to měl chápat jako např. jako konkrétní výsledek při porovnávání barvových vlastností dvou konkrétních obrazů... Tím pádem by dávalo smysl, že se některá barva nevyskytuje ve velkém měřítku, ale to by pak y muselo vyjadřovat početnost barev v obraze, což by odpovídalo histogramu. No, třeba je to opravdu histogram, ale proč to tam pak nenapsali?

Datum: 17.08.13 00:43
avatar

Jestli se bavíme pořád o grafu http://en.wikipedia.org/wiki/File:CIE_1931_XYZ_Color_Matching_Functions.svg , tak si myslím, že to je mapování vlnových délek na hodnoty RGB. Pro každou vlnovou délku vyneseny hodnoty funkcí nazvaných x, y, z. Na spodní ose je "vstup", výstupem pak budou ta tři odpovídající čísla.

Jinak proč je maximální hodnota 2.0 je snad tady: http://www.fho-emden.de/~hoffmann/ciexyz29082000.pdf pod nadpisem 6 jsou upravené funkce xyz, které vznikly z původních funkcí rgb, které měly před integrály nějaký koeficient a měly maximum 1. Ovšem pro interpretaci některých barev musely být někde záporné. Po úpravě vznikne xyz, které jsou všude nezáporné a které fungují jako váhové rozdělení, tedy např. 0.5, 0, 2.0 dá barvu 20% 0% 80%.

doplněno 17.08.13 00:44:

No ono to maximum v grafu je asi míň, ale to už je jedno.

Ohodnoceno: 4x
 
Datum: 17.08.13 09:28

Díky moc za odkaz na ten soubor, ten je naprosto perfektní. Přesně to jsem potřeboval.

Datum: 18.08.13 07:57

Nevíš jak to pdf vyexportovat na html? Případně jen na text. Potřeboval bych si to přečíst v B/W režimu v Opeře a to jde jen na html.

doplněno 18.08.13 11:04:

Tak jsem našel na slunečnici skvělý konverter, http://www.slunecnice.cz/sw/pdf-split-and-merge/

prý lze ale překonvertovat jen pět souborů zdarma. Ale povedlo se!

 

 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.