Projekce panoramat

23. Srpen, 2018

Panoramatické fotografie se v posledních letech těší zvýšené oblibě. Dopomohl k tomu zejména nástup nových zařízení, jako je Ricoh Theta S, které umožňují snadné focení plných 360° x 180° panoramat. Fotografie se spolu s trendem panoramatických fotografií musí zabývat otázkou, v jaké projekci data prezentovat, jelikož běžná projekce obrazu na rovinu již není v případě plných panoramat možná. Možná jste narazili na problém, kdy jste z panoramatických fotografií potřebovali extrahovat pouze část, a tu transformovat do nějaké jiné, třeba rektilineární, nebo fisheye projekce. Podobný problém jsem řešil i já a první otázkou bylo, zda už je to někde hotové, nebo zda budu muset příslušné projekce naprogramovat sám.

Programování není potřeba

Výše zmíněná problematika je řešena v oboru počítačového vidění poměrně dlouho. Poměrně snadno by se tedy dalo využít knihovny OpenCV a s její pomocí potřebné transformace naprogramovat. Nicméně, pro řadu projekcí je již tento problém vyřešen. Pokud potřebujete program s grafickým rozhraním, pak je snadnou volbou opensource aplikace Hugin pro slepování panoramat, která je zdarma. V ní je třeba otevřít zdrojový obrázek, nastavit typ projekce zdrojového a cílového obrázku, případně upravit parametry pro pozici a ořez fotografie. Podrobný návod v angličtině, jak na to naleznete na https://photo.stackexchange.com/a/67591.

Dávkové zpracování

Kdo se nespokojí s reprojekcí jednoho obrázku a potřebuje převést obrázků více, může použít knihovny, které volá Hugin přímo z příkazové řádky. Chvíli jsem musel hledat, než jsem dohledal, kde danou knihovnu najít a jak ji použít. Hugin je postavený na knihovně PanoTools, kterou je možné stáhnout již zkompilovanou, i nebo ve formě zdrojového kódu. Problémem bylo najít relevantní dokumentaci, jelikož knihovna je složena z několika nástrojů pro příkazovou řádku, a nástroje v sobě nemají zabudovanou žádnou nápovědu. Dohledal jsem, že nástroj pro převod mezi projekcemi se nazývá PTStitcher (který také umožňuje slepování fotografií do panoramat), avšak v knihovně panotools, ani v Huginu PTStitcher není. V PanoTools je nahrazen podobným nástrojem PTmender, a v Huginu je implementace tohoto nástroje nazvána nona. Jednoduché, že? Dokumentace dostupná k PTStitcheru (např. na http://hugin.sourceforge.net/docs/manual/PTStitcher.html) je tedy stejně použitelná i k PTmenderu, který najdete v knihovně PanoTools.