Objevte inteligentní zmenšování fotografií

<p>&#160;</p>
<p>&#160;</p>
Jistě každý umí zmenšovat fotografie se zachováním poměru stran. Problém však nastává, pokud tento poměr nedodržíte a obraz se deformuje. Právě tyto potíže řeší Seam Carving, který umí zmenšovat "inteligentně".
Roman Polášek 9. 2. 2010

Sdílet

Zmenšujete-li fotografie, jistě víte, že musíte dodržet poměr stran, který mají. Pokud tento poměr stran nebude dodržen, bude obraz na fotce deformovaný a nepřirozený. Ukázku můžete vidět níže na obrázcích. Pro dnešní článek jsem vybral fotografii se záběrem na pole a větrnou elektrárnu, kde je elektrárna ústředním motivem. Na originální fotografii je vše zcela v pořádku. Pokud však budu fotografii zmenšovat pouze do šířky a výška zůstane zachována, elektrárna se stane úzkou a nepřirozenou. A právě tuto nepřesnost je schopna ohlídat metoda s název Seam Carving, o které bude tento článek.

<p>&#160;Původní obrázek</p>

&#160;Původní obrázek

Původní fotografie

<p>Fotografie zmenšená při nezachování poměru stranu</p>

Fotografie zmenšená při nezachování poměru stranu

Fotografie zmenšená při nezachování poměru stranu

Seam Carving

Jak jsem již výše uvedl, Seam Carving je algoritmus, který umí inteligentně zmenšit fotografie. Nebere v úvahu pouze rozměry obrázku, ale také jeho obsah. A právě v závislosti na obsahu dochází ke zmenšení.

Algoritmus Seam Carving nejdříve vyhledá v obraze hrany, tedy kontrastní místa, na kterých se v blízkých pixelech výrazně mění barva. Tyto oblasti získají vysoké bodové ohodnocení a algoritmus bude mít snahu je zachovat. Oblasti, kde naopak detaily nejsou a mají nízkou odlišnost od okolních pixelů, mají nízké ohodnocení. Podle hodnoty oblastí je pak obraz rozdělen do tzv. švů. Pásy s nízkou hodnotou budou při zmenšování vynechány, s vysokou naopak zachovány bez deformace.

Algoritmus tedy umí dvě důležité věci. Nejen, že umí v obraze zachovat důležité detaily a ústřední motivy, ale umí také vymazat nechtěné části z obrazu. Snadno tak můžete například odstranit někoho z fotografie, aniž by to bylo na první pohled poznat.

Aplikace Seam Carving GUI

Ukázkou implementace tohoto algoritmu je volně šiřitelná aplikace Seam Carving GUI. Dokonce ji ani není nutné instalovat. Stačí rozbalit archiv a hned je možné začít ji používat.

<p>Ovládacích prvků je minimum, přesto bohatě stačí</p>

Ovládacích prvků je minimum, přesto bohatě stačí

Ovládacích prvků je minimum, přesto bohatě stačí

Rozhraní aplikace je opravdu jednoduché a přehledné. Obsahuje jen málo ovládacích prvků. Aplikace je totiž určena právě pro demonstraci možností Seam Carvingu a jiné funkce nenabízí. Při horním okraji najdete klasické menu, při pravém okraji pak ovládací panel pro možnosti práce s obrázkem. Práce a aplikací tedy začíná otevřením vhodného obrázku pro zmenšování. Jeho velikost zobrazení můžete upravit pomocí menu View. Ostatní práce pak probíhá díky pravému ovládacímu panelu.

Jeho první část je určena pro manuální označování oblastí. Můžete určit oblasti, které mají být zachovány (Mark area for retaining) nebo naopak odstraněny (Mark area for removal). V prvním případě budete kreslit do obrázku zelenou barvou, v druhém červenou. Třetí možnost (Clear marked Area) umožňuje označené oblasti mazat. Pokud se tedy rozhodnete pro změnu, můžete touto možností svůj předchozí výběr smazat. Vytvořenou masku si můžete v hlavní nabídce také uložit pro pozdější použití. Posuvníkem můžete také měnit velikost štětce, kterým oblasti označujete, a rovněž jeho sílu. K dispozici je rovněž tlačítko, které najednou odstraní všechny označené oblasti.

<p>Zelená barva ukazuje oblasti, které budu zachovány, červená ty, které zmizí</p>

Zelená barva ukazuje oblasti, které budu zachovány, červená ty, které zmizí

Ukázka možného použití – zelená barva ukazuje oblasti, které budu zachovány, červená ty, které zmizí

Další částí je oddělení ovládacích prvků, díky kterým je možné postupně odstraňovat některé části z obrazu. Nejdříve červenou barvou označte nežádoucí oblasti a poté klikněte na tlačítko remove. Tím dojde ke smazání nechtěné části a hned vidíte výsledek před sebou.

Dalším oddělením tohoto panelu je volba detektoru hran v obraze a nastavení stupnice ohodnocení oblastí v obraze. Tyto volby doporučuji používat zkušeným uživatelům. Začátečník je nemusí nijak upravovat. Vliv volby Edge Detectoru (detektoru hran) můžete zobrazit pomocí menu View → View edge.

<p>Zobrazení hran ukazuje, které oblasti budou zachovány</p>

Zobrazení hran ukazuje, které oblasti budou zachovány

Zobrazení hran ukazuje, které oblasti budou zachovány

Poslední volbou vedoucí ke zmenšení obrazu je pochopitelně volba rozměrů výsledného obrázku. Ty můžete zadat v pixelech a poté kliknout na tlačítko Resize, kterým se spustí samotný algoritmus a dojde ke zmenšení. Pak už si můžete obrázek uložit do některého z podporovaných formátů.

<p>Zmenšená fotografie s ohledem na její obsah</p>

Zmenšená fotografie s ohledem na její obsah

Zmenšená fotografie s ohledem na její obsah

Aplikace je vskutku jednoduchá a každý se s ní naučí pracovat. Její nevýhodou je angličtina a také bych uvítal možnost zmenšovat obrázek například tažením za roh nebo stranu. Kdyby docházelo k plynulé změně obrázku, bylo by možné výsledek mnohem lépe kontrolovat.

Další možnosti

Algoritmus pro inteligentní zmenšování fotografií implementují také jiné aplikace. Dalším freeware programem je Arachne. Nabízí téměř totožné funkce, jen zahalené do jiného prostředí a ovládacích prvků. Algoritmus pro zmenšování podle obsahu zvládá také oblíbený Adobe Photoshop ve verzi CS4. Funkci v něm najdete pod nabídkou Úpravy → Velikost podle obsahu. Ať už máte přístup ke kterémukoliv z těchto nástrojů, doporučuji jej vyzkoušet. Můžete tak objevit možnosti, které obyčejné bitmapové editory při zmenšování neumí. Vždy však pamatujte na to, že ne pro každou fotku je tento způsob vhodný. Hodí se pro fotografie s dostatečně kontrastním ústředním motivem a nepříliš výrazným pozadím.

Autor článku