Skip to content

VitaAmbroz/AutoCropApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algoritmy pro automatický ořez fotografií (Algorithms for Automatic Image Cropping)

Konzolová aplikace v C++, ve které jsou implementovány vybrané algoritmy automatického ořezu obrazu. Pro každý z těchto algoritmů byly vytvořeny různé metody způsobu výběru nejlepšího rámečku ořezu. Většinu těchto metod lze spustit z příkazové řádky pomocí příslušných parametrů, případně vlastním experimentováním se zdrojovými kódy.

[1] Stentiford, F. : Attention Based Auto Image Cropping.
In ICVS Workshop on Computation Attention and Applications, 2007.

[2] Fang, C.; Lin, Z.; Mech, R.; aj.:
Automatic Image Cropping Using Visual Composition, Boundary Simplicity and Content Preservation Models.
In Proceedings of the 22Nd ACM International Conference on Multimedia, 2014.

[3] Suh, B.; Ling, H.; Bederson, B. B.; aj.:
Automatic Thumbnail Cropping and its Effectiveness.
In Proceedings of the 16th Annual ACM Symposium on User Interface Software and Technology, 2003.

Aplikace používá tyto nástroje a knihovny, které je nezbytné mít správně nainstalovány.

  • CMake - použita verze 3.11.1
  • OpenCV - použita verze 3.4.1
  • VLFeat - použita verze 0.9.21
  • Boost - použita verze 1.67.0

Sestavení

Pro sestavení je použit nástroj CMake. V souboru CMakeLists.txt jsou definována pravidla pro vytvoření souborů potřebných k překladu a sestavení. Je zde nutné upravit cestu pro použití knihovny VLFeat, respektive nastavit ji na adresář, kde jsou soubory, které vzniknou po rozbalení této knihovny (více na http://www.vlfeat.org). Pokud bude stažen tento repozitář, stačí pouze rozbalit soubor vlfeat.zip a bude tak dodržena cesta uvedená v souboru CMakeLists.txt.

Sestavení aplikace lze po stažení tohoto repozitáře dosáhnout například takto:

$ cmake .
$ make

Spuštění a popis aplikace

Po úspěšném překladu je možné aplikaci spustit v následujících formátech, kde 'autocrop' je název spustitelného souboru a následně mohou následovat další parametry. Kromě vysvětlení jednotlivých parametrů jsou zde uvedeny i konkrétní příklady spuštění.

Vypíše zprávu, kde jsou uvedeny možné formáty pro spuštění aplikace:

$ ./autocrop -help

Základní formát, kde 'imagePath' je cesta k originálnímu obrázku, pro který bude proveden automatický ořez(tento parametr je použit ve všech dalších případech):

$ ./autocrop imagePath (= postupně budou spuštěny všechny algoritmy automatického ořezu [1][2][3])

Výběr algoritmu automatického ořezu, kde parametry reprezentují konkrétní obecný algoritmus (-suh [3], -sten [1], -fang [2]):

$ ./autocrop imagePath -suh
$ ./autocrop imagePath -sten
$ ./autocrop imagePath -fang
$ ./autocrop imagePath -suh -fang (= postupně se provedou ořezy pomocí algoritmů [3][2])

Výběr metody, která specifikuje výšku a šířku výstupního ořezu v pixelech (parametry -wh W H):

$ ./autocrop imagePath -wh 600 400
$ ./autocrop imagePath -suh -wh 600 400

Výběr metody, která vytvoří ořez, který bude zmenšený oproti originálu v zadaném poměru a bude zachován poměr stran (parametry -scale S):

$ ./autocrop imagePath -scale 0.66
$ ./autocrop imagePath -suh -scale 0.66

Výběr metody, která bude hledat optimální rámeček rámeček na základě zadaného poměru jeho šířky a výšky (parametry -whratio W H):

$ ./autocrop imagePath -whratio 3 2 (= ořez bude ve formátu 3:2)
$ ./autocrop imagePath -suh -whratio 3 2 (= ořez bude ve formátu 3:2)

Definice prahové hodnoty pro potřebnou míru významu. Je použita pouze ve třetím uvedeném algoritmu ořezu [3] (parametry -threshold T):

$ ./autocrop imagePath -suh -threshold 0.5
$ ./autocrop imagePath -suh -whratio 3 2 -threshold 0.5

Vypnutí funkce zobrazování oken pomocí přepínače -w. Pokud bude toto zobrazování vypnuto, bude zobrazen vždy pouze originál a výsledné ořezy. Pokud bude zobrazování zapnuto(výchozí), tak budou současně zobrazeny i saliency maps nebo gradient. Při zobrazení nového okna je pro pokračování nutné stistknout libovolnou klávesu.

$ ./autocrop imagePath -w
$ ./autocrop imagePath -fang -w

Spuštění tréninku modelu kompozice, který je potřebný pro druhou uvedenou metodu [2]. Parametr 'datasetDir' je cesta k adresáři, kde jsou uloženy obrázky, které budou použité pro trénink:

$ ./autocrop -train datasetDir

Pokud bude zadána neplatná kombinace parametrů, bude vypsána chybová hláška a program bude ukončen s chybou. Při běhu programu budou do konzole postupně vypisovány informace o aktuální fázi. Kromě uvedených metod, které je možné spustit z příkazové řádky, byla vytvořena i řada dalších způsobů automatického ořezu, které lze vyzkoušet manuálním zásahem do implementace.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages