Tento stručný tutorial vychází z anglického návodu Correcting Chromatic Aberration na stránkách projektu hugin.
Princip spočívá v rozložení RGB předlohy na jednotlivé kanály R, G a B a jejich vzájemnou optimalizaci – tj. výpočet korekce zobrazovací vady objektivu pro kanály R a B, zatímco G se považuje za výchozí. Samotná korekce chromatické vady je provedena programem fulla, který je součástí projektu hugin.
Postup v bodech
- Jako výchozí obrázek je vhodné použít nepříliš barevnou scénu – osvědčily se mi snímky větví stromů v mlze, snímek by neměl být přeexponován a měl by být uložen v bezztrátovém formátu (TIFF, RAW).
- Snímek v editoru (GIMP, CinePaint) rozložíme pomocí volby Decompose na kanály R, G a B a uložíme jako samostatné soubory red.tif, green.tif a blue.tif.
- Soubory načteme do huginu v pořadí red, green, blue. Každému nastavíme nový objektiv (záložka „Camera and Lens“, označit soubor a kliknout na „New Lens“), zvolíme horizonální úhel pohledu „hfov“ 10° a v záložce „Stitcher“ nastavíme výstupní typ snímku „Rectilinear“ (stejně jako vstupní typ objektivu), úhel pohledu „hfov“ 10° a klikneme na „Calculate Optimal Size“.
- Nyní v záložce „Control Points“ vytvoříme řádově stovky kontrolních bodů pro každý pár R-G, R-B a G-B. Lze použít klávesu „g“ a nastavit parametry „Corner Detection threshold“ 50, „Corner Detection scale“ 2).
- Pozici bodů je nutné doladit pomocí funkce „Fine-tune“. Nejprve v preferencích (File/Preferences/Finetune) nastavíme parametry „Patch width“ 21, „Search area width“ 10, „Local search area width“ 14, „Correlation Threshold“ 0.8 a „Peak Curvature Threshold“ 0. Poté zvolíme menu Edit/Fine-tune all points.
- Po skončení smažeme body, jejich korelační koeficient je menší než 0.98 (tj. chyba větší než 2 %). Seznam bodů zobrazíme pomocí klávesy F3 (menu View/Control Point table), zvolíme „Select by Distance“ s hodnotou -0.98 a stlačíme „Delete“. Tím pravděpodobně zmizí většina bodů, ale stále by jich mělo zbýt velké množství (alespoň stovky).
- Nyní se přepneme na záložku „Optimizer“, nastavíme v rozvinovacím menu „Optimize the Custom parameters below“ a samotné parametry pro optimalizaci jsou pouze ty ze sekce „Lens Parameters“ – a to „view“ (v), „distortion“ (c). V případě nedobrých výsledků je možné optimalizovat i pro „distortion“ (a) a „barrel“ (b). Optimalizovat budeme pouze snímky red a blue.
- Smažeme kontrolní body, které vykazují přílišnou vzdálenost opět tabulka „Control Point table“, kliknutím na „Distance“ je možné body seřadit dle vzdálenosti) a případě znovu optimalizujeme dle předchozího bodu. V ideálním případě je průměrná vzdálenost menší než 0.2.
- V huginu uložíme projekt (File/Save As) – soubor projektu obsahuje optimalizované parametry pro korekci zobrazovací vady, které jsou výchozími údaji pro další postup.
- Nyní je třeba spočítat parametry pro program fulla. Konkrétně parameter pro red a blue kanál. Výpočet je uveden na stánkách původního tutoriálu v angličtině Correcting Chromatic Aberration v části „Extracting TCA correction parameters“. Zdatnější si mohou nainstalovat Octave-forge (plus pár závislostí) a použít program show_tca.m, který parametry pro fulla spočte automaticky ze souboru projektu hugin uloženého dle předchozího bodu. („octave:2> show_tca(‚pano_projekt.pto‘);“)
- A teď už jen stačí z příkazové řádky spustit:
$ fulla -r 0.0000000:0.0000000:-0.0000040:1.0001860 \
-b 0.0000000:0.0000000:0.0000790:0.9999760 \
dsc_v1_at_4.9mm.tif
kde r,b jsou opravné parametry pro příslušné kanály a dsc_v1_at_4.9mm.tif je původní snímek, pro který jsem počítal korekci.
Postup fungoval velmi dobře pro snímek pořízený zrcadlovkou Canon EOS 300D + EF 10-22 (použito 10 mm), zatímco pro snímek pořízený kompaktem SONY DSC-V1 s širokoúhlou předsádkou (efektivní ohnisková vzdálenost 4.9 mm) byl výsledek podstatně slabší (zdá se, že objektiv zobrazuje jednotlivé kanály spíše rozmazaně, než posunutě).