V tomto článku se budu věnovat výrobě panoramatické fotografie v Huginu verze 0.5. Sice v době psaní tohoto článku již vyšla verze 0.6, ale zatím s ní jsou v Linuxu problémy.
Hugin je grafická nástavba programů z Panorama tools, které se starají o samotné korekce barev, úhlů spojovaných obrázků a následně i o jejich spojení do jednoho. Hugin ale může využít program Autopano, který hledá společné body, a Enblend, který pomáhá při slepování obrázků do jednoho, přičemž dokáže vyrovnat rozdíly mezi těmi obrázky.
Instalace. Hugin je docela složité nainstalovat, protože je závislý na spoustě knihoven a programů. Na internetu je o tom spousta diskuzí. Doporučuji použít balíček z vaší distribuce nebo případně i nějaký neoficiální zdroj. V Gentoo mi stačilo použít emerge hugin. I pro Debian jsem našel několik balíků, v ostatních distribucích to bude podobné. Pokud si ho stejně budete chtít zkompilovat, budete potřebovat hlavně knihovny libpano12 z Panorama tool, boost a wxGTK. Hodí se mít i programy Enblend a autopano-sift. Můžete použít normální autopano, ale autopano-sift má lepší výsledky. Bohužel vyžaduje Mono.
Pořízení fotek
Pokud chcete trochu odlehčit svému počítači a ušetřit si pár hodin při zpracování, pak při focení použijte na všechny fotky stejné nastavení. Tedy nastavte si "natvrdo" citlivost, vyvážení bílé, clonu, expozici a hodí se zaostřit do nekonečna. Zkusmo si projeďte rozsah, který plánujete fotit, abyste neměli na fotce "přepaly", ale aby nebyla zbytečně tmavá. Více než stativ budete potřebovat rychlou kartu. Opravdu vás nemusí trápit, že fotky budou pod různými úhly, s tím si počítač poradí, větší problémy vám přinesou pohyby mraků a dalších objektů, proto není špatné použít sériové snímání. Nafoťte raději víc fotek tak, aby vám po promazání zbyly fotky, které se dostatečně překrývají. Fotky nemusí jít od jednoho směru, můžete to libovolně kombinovat. Nejprve kupříkladu vyfoťte nastojato střed, pak rychle mraky a nakonec trávu. Nafoťte dostatek mraků a trávy před sebou, ať je pak co oříznout. Není jednoduché dokreslovat mraky.
Začínáme slepovat
První věc, kterou uděláte po spuštění, je import snímků. Na první záložce tlačítkem Add individual images je do projektu naimportujete. Dále si musíte vybrat, kde bude střed celého panorámatu. Vyberte příslušný snímek a klikněte na Anchor this image for position. V tuto chvíli je asi čas na uložení. Hugin přeci jen občas padne, tak ukládejte často a do nových souborů, ať se máte k čemu vrátit. Můžete také trochu upřesnit výchozí bod tlačítkem Adjust the anchor spot. Objeví se vám okno, v němž máte kříž z bílé (horizontální) a červené (vertikální) osy. V místě, kde se protínají, bude střed celého obrázku. Dole vidíte hodnoty yaw, pitch a roll, ty si zapamatujte. Z jakýchsi důvodů mi Hugin při zavření tohoto dialogu občas padal, takže jsem pak vždy načetl uložený projekt a dopsal jsem tam tyto hodnoty ručně.
Hledání kontrolních bodů
Pokud nechcete zadávat všechny kontrolní body ručně, klikněte na tlačítko Create Ctrl Points. Tím spustíte Autopano nebo v mém případě Autopano-sift. Načtou se vám do něj snímky z Huginu. Nastavte si v Keypoint generation rozlišení, na které se snímky při hledání společných bodů zmenší. 700 je doporučováno, pokud máte volných 256 MB RAM, 1400 pro 512 MB. V záložce Advanced options můžete navýšit maximální počet kontrolních bodů, které se budou hledat pro jeden pár snímků. Standardních 12 občas mírně navyšuji.
RANSAC filtraci většinou necháte zapnutou, hodí se ji vypnout, pokud fotíte objektivem, který hodně ovlivňuje geometrii snímku. Area filtration zase nechává společné body dál od sebe, bez tohoto filtru by se vám mohly objevit všechny body moc blízko u sebe. Automatic pre-aligning of images se hodí, pokud jsou vaše fotky různě otočené, pokud nefotíte se stativem, tak volbu určitě zapněte.
Enable Refinement step zapíná kontrolu všech kontrolních bodů při použití plného rozlišení snímků. Pokud nechcete mazat spousty nesprávně nalezených společných bodů, zapněte volbu. Je to snad časově nejnáročnější operace celé výroby panorámatu, ale určitě se vyplatí. Volba Refine by Middle kontroluje každý kontrolní bod jednotlivě, zatímco Refine by Mean si určí střed všech bodů a podle toho kontroluje jednotlivé kontrolní body. Zatím mi vždy Refine by Middle stačilo. Keep unrefinable keypoints nechává neověřené společné body u okrajů snímků. Jakmile vše nastavíte, tlačítkem Compute se spustí vlastní výpočet. Ten může trvat i několik hodin.
Kontrola
V Huginu v záložce Optimizer nastavte Positons (incremental, starting from anchror), aby se panoráma skládalo od označeného obrázku. Tlačítkem Optimize now pustíte samotnou optimalizaci. Podle společných bodů se určí vzdálenosti a úhly snímků od sebe. Uložte si je do nového souboru, kdyby se "náhodou něco stalo".
V záložce Stitcher v projection si vyberte, jak má výsledné panoráma vypadat. Rectilinear (přímý) je obdoba fotografie. Maximálně se tak dá vytvořit 160stupňový pohled. Equirectangular je vhodný hlavně pro 360stupňová panorámata. Používá se v různých prohlížečích panorámat. Můžete tak výsledek vystavit na web a příslušný Java applet nebo Quicktime plugin z něj vytvoří normální pohled. Cylindrical (válcový) je způsob, jak zobrazit přirozeně až 360stupňové panoráma.
Calculate Field of View vám přepočítá úhel pohledu. V menu View vyberte položku Preview window ([Ctrl+p]) a konečně poprvé uvidíte svůj výtvor. Auto update v některých případech nevygeneruje nový náhled, tak si ho tlačítkem update zaktualizujte.
V okně náhledu si můžete zapínat/vypínat zobrazení určitého snímku kliknutím na jeho číslo. Postupným vypínáním zobrazených snímků můžete identifikovat dva snímky, které na sebe špatně navazují. Přepnete se do hlavního okna Huginu do záložky Control Points. Vyberete si příslušný pár snímků a přidáte pár společných bodů.
Ruční přidávání kontrolních bodů
Zapněte si dole checkboxy auto fine tune a auto estimate, což vám pomůže při hledání kontrolních bodů. Klikněte na jednom ze snímků na místo, které je vidět i na druhém snímku. Snímek se zvětší a objeví se v těch místech žlutý kroužek. Po zvětšení bod ještě můžete posunout. Jakmile ho posunete, Hugin se pokusí najít ten samý bod i na druhém snímku. Nic vám ale nebrání kliknout na příslušné místo sami. Než kliknete na pravé tlačítko, můžete bod libovolně posouvat. Klávesou [f] nebo tlačítkem Fine-tune si necháte vyladit pozice. Většinou to funguje dobře, jen s méně kontrastními body má problémy. Nakonec stiskněte pravé tlačítko a kontrolní bod se přidá.
Pod náhledy vidíte seznam kontrolních bodů. Vybraný bod zčervená. Můžete pak s ním dále manipulovat, případně ho můžete smazat. Pokud máte problémy se špatně nalezenými body, bude se vám hodit kompletní seznam všech kontrolních bodů. Najdete ho v menu View jako Control point table, pod klávesou [F3] nebo jako předposlední tlačítko v nástrojové liště.
Pokud jste přidali dostatek kontrolních bodů, nyní zvolte v záložce Optimizer položku Optimize now, nebo jen klikněte na tlačítko Re-optimize v panelu a koukněte se v náhledu, jak to dopadlo. Pokud to nevypadá tak, jak jste chtěli, buď musíte přidat další kontrolní body, nebo občas stačí jen označit všechny snímky v záložce Images a v Image orientation kliknout na Reset. Tím vynulujete u všech obrázků pozice, a tak optimalizace pojede od začátku bez návaznosti na předchozí chyby.
Výsledné lepení
Pokud už váš obrázek vypadá v náhledu tak, jak jste chtěli, je čas se přepnout do záložky Stitcher. Znovu si pomocí Calculate Field of View přepočítejte výsledný úhel pohledu. Následně se vám tlačítkem Calculate Optimal Size přepočítá výsledná velikost obrázku. Nyní se musíte rozhodnout, jaký software vám výsledný obrázek bude generovat. V Stitching engine máte na výběr nona a PTStitcher.
PTStitcher je freeware program od původního tvůrce Panorama tools, v posledních verzi Panorama tools je nahrazený open-source programem PTmender. Zkoušel jsem oboje, ale jen PTmender byl použitelný. Umí toho víc než PTStitcher, hlavně má jako výstup oříznutý Multiple TIFF, což je vstupní formát Enblendu. Bohužel Hugin více spoléhá na nona, a tak s PTmednerem ani s PTStitcherem plně nespolupracuje. U větších projektů mi PTmender prostě spadnul.
Nona je přímo součást Huginu. Má velmi dobré výsledky ve spojení s programem Enblend, ale sám neumí upravovat barvy. Umí ale pracovat s 16bitovými TIFFy, takže ho můžete použít při tvorbě HDR obrázků.
Pokud máte všechno nafoceno se stejným nastavením foťáku, pak vám stačí vybrat si v Huginu jako formát obrázků TIFF a dole zaškrtnout Soft Blending a tlačítkem Stitch now spustit celý proces. Vznikne vám pěkný TIFF připravený k výslednému ořezu třeba v GIMPu.
Pokud ale nastavíte jako výstup Multiple TIFF, tak vám nona vygeneruje jen hromadu obrázků, kterou si pak musíte Enblendem slepit sami. Ovšem dává vám to možnost dalších úprav, jako třeba sladění barev. K tomu je možné použít součást novějšího Panorama tools - program PTblend. Bohužel program neumí pracovat s 16bitovými barvami na kanál, což by se v této situaci docela hodilo, neumí TIFF LZW kompresi, ani nedokáže zpracovat oříznuté obrázky, které se generují zaškrtnutím Save cropped images v Huginu. Takže můžete nastavit Multiple TIFF, kompresi Deflate a odškrtněte Save cropped images. Po stisknutí Stitch now se vás Hugin zeptá na prefix obrázků.
Vygenerují se vám obrázky s názvem ve tvaru prefix0000.tif. Ty můžete barevně vyrovnat pomocí PTblenderu. Předáte mu parametrem -o prefix a parametrem -k číslo snímku, podle kterého se sladí barvy. Obrázky se číslují od nuly. Následuje seznam souborů, které se boudou barevně ladit. Celý příkaz pak může vypadat třeba takto:
PTblender -o blend -k 13 prefix00*.tif
Po barevném sladění ještě použijete Enblend na výsledné spojení. Ten má parametry -w v případě, že děláte 360stupňové panoráma, -z použití LZW komprese, -m množství paměti v MB, které program může použít, -o název výstupního obrázku a na konci seznam souborů, které se boudou zpracovávat. Celý příkaz pak může vypadat následovně:
enblend -v -m 900 -z -o vysledek.tif blend*.tif
Enblend může s autoplano-sift soupeřit v době, kterou se vykonávají, skládal jsem jedno panoráma složené z asi 90 šestimegapixelových fotek na svém notebooku více než den. Sešít třicet fotek mi na tom samém stroji trvalo asi tři hodiny.
Jelikož Hugin s PTmenderem není zrovna nejlépe sladěný, pro jistotu ho nepouštím přímo v Huginu tlačítkem Stitch now, ale nechávám si vygenerovat skript pro PTStitcher, a ten předávám PTmenderu. Vyberete si tedy v Stitching engine PTStitcher, v Exposure correction si vyberte jestli, se mají vyrovnat jen barevnost (Color), jas (Brightness), oboje, nebo nic (None). Vyberte Image format Multiple TIFF a přes menu File-Write PTStitchet script si nechte vygenerovat příslušný soubor. Použijte příponu txt. Pak už jen pustíte PTmender s názvem vygenerovaného skriptu jako jediným parametrem. PTmender se vás zeptá na název souboru, tam můžete dat prefix z příkladu s nona a PTmender vytvoří další hromadu TIFFů, které dohromady spojíte Enblendem výše popsaným postupem.
Ha! Co s výsledkem?
Pokud jste se řídili tímto postupem, tak vám mohl vzniknout TIFF obludných rozměrů a velikosti. Po oříznutí se vám velikost zmenší aspoň na polovinu. Po JPEG kompresi pomalu ani ne na desetinu. Pokud jste se rozhodli použít výstup Equirectangular, tak se vám bude hodit k prohlížení Java program/applet PTViewer. Od verze 3 PTViewer zvládá i menší než 360stupňová panorámata a dokonce i HDR obrázky. Na stránkách PTVieweru verze 3 je docela schopná dokumentace, podle té to snad zvládnete.
Hugin je velice schopný program. Většinu věcí, které hravě zvládá, byste například v GIMPu bez speciálních pluginů zvládali velice těžko, nebo by nešly vůbec. Ve verzi 0.6 již umí i různé opravy chromatických vad, měl by komunikovat česky. Časem se prý plánuje i lepší podpora HDR obrázků.