Měření jasů v~podexponovaných oblastech snímků kamerou Fuji
S~5000
Při vypracovávání dubnové zprávy o~osvětlení Protěže a~Javoru jsme
postřehli nemilý fenomén: z~mírně podexponovaných oblastí snímků vycházely
nižší jasy než ze snímků těchže míst, ale dobře proexponovaných.
Zmínil jsem tehdy (na začátku části Metody měření), že to může
souviset s~nelinearitou digitalizace dat u~tohoto typu kamery (Fuji
S~5000).
Další zkoumání ukázalo, že se naštěstí o~nelinearitu nejedná. Daný efekt
byl zaviněn použitím obvyklého odečítání snímku pořízeného se zakrytým
objektivem (takovým se říká ,,temný snímek`` aneb darkframe). U~jiných
fotoaparátů, a~samozřejmě u~vědeckých CCD kamer, se prostým odečtením
temného snímku získá signál, který je pak už přímo úměrný množství světla
dopadlého na pixel (a~tedy jasu scény). U~fotoaparátu, který jsme použili
tentokrát, to je ale složitější.
Komplikace je v~tom, že tento typ kamery odečítá od surových
digitalizovaných dat nějakou konstantu (nebo alespoň žádnou kladnou
nepřičítá), takže až polovina pixelů temného snímku má nulovou hodnotu,
teprve druhá polovina má hodnoty nenulové, kladné. Ty mají zhruba normální
rozdělení se standardní deviací asi 30 a~se středem na nule. K~úplnosti
dat chybí ovšem ta polovina ,,pod nulou``. U~jiných kamer se to řeší tak,
že se k~signálu přidává konstanta, např. 128, a~nulových pixelů je pak jen
zanedbatelné množství, temný snímek obsahuje takřka kompletní záznam šumu
(vznikajícího jak v~senzoru CCD či CMOS, tak i~při měření a~převodu jeho
signálu do digitální podoby).
Nulové pixely nenesoucí informaci
Při přípravě dubnové zprávy byl již vyřešen jeden problém z~toho
vyplývající: u~velmi málo exponovaných snímků s~otevřeným objektivem,
u~kterých je také mnoho pixelů ještě nulových, nenesou ony nulové pixely
žádnou informaci o~světle. V~extrémních případech, kdy je expozice velmi
malá, se na snímku zaregistruje jen polovina dopadlého světla: totiž
v~nenulových pixelech. Skutečné množství dopadlého světla je až dvojnásobné.
Kompenzaci tohoto efektu lze aplikovat jen na dostatečně velké soubory
pixelů, a~zcela správně funguje jen u~scén s~rovnoměrným jasem.
Ve výstupu z~programu raw2lum je tato kompenzace případně vyjádřena
koeficientem (menším než 1,0) u~prostorového úhlu zaujímaného snímkem:
úhrnné množství světla (hustota zaregistrovaného světelného toku) se
vztahuje jen na onen menší prostorový úhel, kde byly nenulové pixely.
Aplikuje se také u~průměrných jasů v~jednotlivých políčkách zvoleného
rastru (či u~hustot světelného toku z~těchto políček). Jde-li ale např.
o~políčko, kde je jediná nepřeexponovaná lampa s~černým okolím, může použitá
kompenzace přecenit množství světla až téměř dvojnásobně. Takové extrémní
případy naštěstí v~naší zprávě nejsou: množství světla z~jasných bodových
zdrojů je počítáno jen při zahrnutí dobře proexponovaných pixelů.
Co vlastně odečítat, je-li temný snímek ,,nekompletní``
Odečtení temného snímku a~kompenzace o~nulové pixely je adekvátní u~scén
s~rovnoměrným, velmi nízkým jasem, kde je téměř polovina pixelů nulových
a~medián hodnot pixelů je nula nebo jen několik jednotek. Je-li ale medián
několik desítek (snímek není podexponovaný zcela, už na něm něco začíná
být, ač velmi zašuměně, patrné), pak takový výpočet podcení jas scény.
Pochopit to lze dobře na případě snímku hojně exponovaného: ten má všechny
pixely nenulové, ale odečítáme od něj temný snímek s~nenulovou střední
hodnotou (typicky kolem 12). Neměli bychom ale odečítat nic, střední
hodnota ,,správného`` temného snímku, který by měl i~pixely se zápornou
hodnotou, by byla zhruba nulová. Jsou-li typické hodnoty snímku kolem
tisíce a~víc, odečtení dvanáctky je zanedbatelné, expozici beztak neznáme
s~přesností na jedno procento. Jsou-li ale typické hodnoty kolem třiceti,
pak odečtení dvanáctky ubere víc než třetinu signálu. To je právě důvod,
proč jasy v~podexponovaných oblastech snímků vycházely nečekaně nízké.
Řešení, aplikované od verze 1.21 programu raw2lum, se opírá o~distribuční
funkce hodnot pixelů temných snímků. Konkrétně, využívá integrálu funkce
[percentil, hodnota pixelu pro něj]. Je-li střední hodnota pixelů
zpracovávaného snímku v~nějaké oblasti (po odečtení temného snímku) rovná
nebo vyšší než hodnoty pro 99. percentil temných snímků (konkrétně, je-li
vyšší než 80), pak k~ní připočítávám setinu integrálu od nuly do
99, což je téměř totéž, jako střední hodnota temného snímku. Je-li
střední hodnota dané oblasti zpracovávaného snímku menší než 80, pak
integruji jen po percentil odpovídající dané hodnotě (pro hodnotu 30 je
setina takového integrálu zhruba čtverka). Průběh takového určitého
integrálu v~závislosti na jeho horní mezi jsem aproximoval polynomem
aplikovaným na sadu temných snímků.
Další statistickou analýzou temných a~málo exponovaných snímků by se jistě
dal nalézt ještě lepší postup. To ale není moc potřeba: porovnání hodnot
pro políčka o~velikosti 32x32 z~málo a~hodně exponovaných snímků ukázalo,
že kompenzace je vyhovující, podíl jasů zjištěných z~obou snímků nezávisí
na hodnotě jasu dle dobře proexponovaného snímku (závisí jen na odchylkách
skutečné expozice od té, která je zapsána v~hlavičce snímku).
Oprava je plně adekvátní opět jen pro oblasti s~rovnoměrným jasem.
Neužívám ji pro celý snímek (ten má jasy málokdy všude stejné), ale jen
pro jednotlivá políčka.
Oprava je v~hrubší podobě užita i~u~barevně kódovaných zobrazení jasů tam,
kde se v~zašuměných oblastech jasy vyjadřují jako průměr přes více pixelů
(obvykle 16, přičemž všechny musejí mít hodnoty menší než 100) -- tam je
oprava samozřejmě dost nejistá, neb střední hodnota z~tak malého vzorku je
také značně ,,šumící``. Navíc se v~tomto případě nevyužívají samostatně
hodnoty pro R a~G pixely (ty jsou v~této fázi výpočtu už zapomenuty), ale
jen neopravená hodnota průměrného jasu s~předpokladem, že obraz je mírně
načervenalý (tj. že hodnoty červených a~zelených pixelů jsou shodné; to
pro umělé zdroje světla bývá splněno). I~takto hrubá oprava ale do značné
míry napravuje někdejší zřejmou neshodu mezi barevně kódovanými výstupy
z~důkladně a~málo proexponovaných snímků, jako byla zejména dvojice 5245
a~5246 v~adresáři javor.
Od verze 1.22 programu raw2lum se hodnoty zjištěné pro jednotlivá
políčka vypisují souhrnně i~na závěr -- jde o~alternativní výpočet
intenzity osvětlení ze scény (suma přes políčka, která platí pro
prostorový úhel scény vč. nulových pixelů, jen bez pixelů přeexponovaných
a~mimo rozsah) a~o~průměrný jas políčka. Pro kameru Fuji S~5000 se
u~snímků, kde mediány hodnot pixelů bývají na úrovni desítek a~relativní
standardní deviace jasů políček není větší než desítky procent, dají takto
vypočtené sumární údaje dobrou informaci o~intenzitě osvětlení ze scény či
o~jejím průměrném jasu (to může platit pro snímky oblohy poblíž zenitu).
Jak je to u~jiných kamer?
To plně prozradí v~každém jednotlivém případě až analýza programem raw2lum
-- u~těch, které jsou vhodné pro fotometrii, by už první percentil měl být
nenulový (může být záporný, pokud se od hodnot odečítá nějaká konstanta,
obvykle taková, aby medián byl nulový). Rozhodně to platí pro Canon D60,
Nikon 990, Olympus E-300. Včera v~noci jsem ale zjistil, že mnohem novější
Nikon D50 se bohužel chová obdobně jako Fuji S~5000, tj. zhruba polovina
pixelů temného snímku je nulová -- výhodou je u~něj jen to, že hodnoty té
nezahozené poloviny pixelů jsou fakticky asi poloviční (přesněji, ony jsou
osminové, ale to jen vinou toho, že tato nová kamera převádí signál na
hodnoty jen do čtyř tisíc místo do šestnácti tisíc). Je to sice mrzuté
zjištění pro onu D50 (pro fotometrii slabého světla je nepříliš vhodná),
ale potěšující z~hlediska spousty práce, kterou jsem věnoval řešení tohoto
problému -- určitě se využije se nejen u~oné staré kamery S~5000.
Pokud ale máte možnost výběru, měřte slabé světlo (či scény velkého
rozsahu jasů) jen s~kamerami, které nezahazují informaci z~nemalé části
pixelů.
Jan Hollan, v~Brně 20. června 2006