Outils pour utilisateurs

Outils du site


projets:openpathview:hugin

Assemblage de panoramas en ligne de commande - Open Path View

Retour à la page principale → Open Path View

Nous allons assembler les panoramas avec les outils qu'utilise hugin, nos scripts functionnerons sans mode graphique ainsi nous espérons pouvoir effectuer cette tâche sur des serveurs.

Vous trouverez sur cette page un détail des différentes outils utilisés dans le processus d'assemblage de panoramas.

Installer Hugin

Tout les outils que nous allons utiliser sont les utilitaires qu'utilise hugin, le plus simple pour les obtenir est donc d'installer hugin.

Installation simple (depuis les depôts)

sudo apt-get install hugin

Installation depuis les sources

Installer hugin, l'objectif étant d'installer toutes les librairies nécessaires a son bon fonctionnement afin de ne pas toutes les compiler …

sudo apt-get install hugin

Environnement nécessaire pour la compilation :

sudo apt-get install sudo apt-get install libwxgtk2.8-dev libtiff4-dev libpng12-dev \
libopenexr-dev libexiv2-dev freeglut3-dev libglew-dev libboost-dev \
libboost-thread-dev libboost-regex-dev libboost-filesystem-dev \
libboost-iostreams-dev libboost-system-dev libboost-signals-dev \
gettext liblapack-dev libxi-dev libxmu-dev libtclap-dev liblensfun-dev \
python-dev swig2.0 libpano13-dev libimage-exiftool-perl enblend python-argparse \
build-essential autoconf automake1.9 libtool flex bison gdb \
libc6-dev libgcc1 cmake pkg-config help2man checkinstall \
subversion mercurial

Oui ça fait pas mal de monde :)

On doit pouvoir se passer de python-dev et peut-être même d'autres lib …

On passe à la partie la plus longue, la compilation d'hugin.

On commence par télécharger les sources (dans un dossier hugin/hugin.hg) :

mkdir hugin
cd hugin
hg clone http://hugin.hg.sourceforge.net:8000/hgroot/hugin/hugin hugin.hg
cd hugin.hg

Je vous conseille de changer de branche la dernier branche peut nécessésiter des librairies qui ne sont pas encores officiellement sorties et qu'il faudrait donc aussi compiler.

Pour afficher les branches disponnibles (dans le dossier hugin.hg) :

hg branches

Nous utiliserons la branche 2013.0 :

hg update -C 2013.0

Pour compiler hugin nous allons nous placer dans un autre dossier :

mkdir ../hugin.build
cd ../hugin.build

On vérifie que toutes les librairies nécessaires à la compilation d'hugin sont là :

cmake ../hugin.hg -DENABLE_LAPACK=YES -DCPACK_BINARY_DEB:BOOL=ON -DCPACK_BINARY_NSIS:BOOL=OFF \
 -DCPACK_BINARY_RPM:BOOL=OFF -DCPACK_BINARY_STGZ:BOOL=OFF -DCPACK_BINARY_TBZ2:BOOL=OFF \
 -DCPACK_BINARY_TGZ:BOOL=OFF -DCPACK_BINARY_TZ:BOOL=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo \
 -DBUILD_HSI:BOOL=ON -DSWIG_EXECUTABLE=/usr/bin/swig2.0

On lance la compilation :

make package
Je pense qu'un “make package” n'est pas super approprié étant donné qu'on ne vas pas vraiment utiliser le package (mais seulement quelques binaires) car il va rentrer en conflit avec le hugin déjà installé.

Les binaires des commandes que nous allons utiliser par la suite sont dans :

hugin/hugin.build/src/tools/

(sauf cpfind mais il est déjà installé normalement)

Source : http://wiki.panotools.org/Hugin_Compiling_Ubuntu

Génération d'un panorama en ligne de commande

Tout est basé sur un fichier projet .pto qui va être complété et enrichi.

Initialisation du fichier projet

pto_gen -p 3 -f 15 -o projet.pto

Quelques explications :

  • -p 3 indique que nous utilisons la projection n°3, c'est-à-dire full-frame fisheye
  • -f 15 indique la focale de l'appareil 15mm ici
  • plus d'info sur cette commande ici : pto_gen
Nous allons par la suite générer projet depuis l'interface graphique d'hugin.

Recherche des points de control

cpfind -o projet.pto --multirow --celeste projet.pto

Quelques explications :

  • –multirow utilise un algorithme qui ne stocke pas les points sur le disque dur (ce qui est gourmand en temps), cette algorithme utilise aussi plusieurs coeurs (si possible).
  • –celeste, ne pas regarder les point commun issuent des nuages :) oui ça peut donner des choses bizarre des fois.
  • Plus d'info sur cette commande ici : cpfind

D'autres algorithme de recherche des points de contrôles existent nous n'avons pas pris le temps de tous les tester, cpfind donne de bon résultats par rapport à ceux que nous avons testé.

Un peu de ménage

cpclean -o projet.pto projet.pto

On nettoye un peu le fichier projet pour se débarrasser des mauvais points de control. Plus d'info sur cette commande ici : cpclean

Recherches des lignes

linefind -o projet.pto projet.pto

Trouve des lignes verticales entre les images, plus d'info sur cette commande ici : linefind.

Optimisations

autooptimiser -a -m -l -s -o projet.pto projet.pto

Plus d'infos ici : Autooptimiser

Découpage du panorama

pano_modify --canvas=AUTO --crop=AUTO -o projet.pto projet.pto

Plus d'infos ici : Pano_modify

Nous n'utiliserons pas cette fonction car nous souhaitons conserver la zone “noire” en bas de nos images (zone non couverte par les appareils photos du sac à dos).

Génération d'un makefile

pto2mk -o Makefile -p prefix projet.pto

Génération du panorama (image tif)

make

Vous devriez avoir un panaorama prefix.tif.

Conversion du tif en JPEG

Une image tif c'est pas toujours très pratique on va donc la convertir en JPEG (toujours en ligne de commande) avec imagemagick.

sudo apt-get install imagemagick
convert prefix.tif pano.jpg

Sources :

Divers

Rotation d'un image

sudo apt-get install imagemagick
mogrify -rotate 90 file.jpg

Ou :

convert -rotate 90 original_file.jpg new_file.jpg

Traitement image après sortie huggin

Condition de départ :

  • L'image panoramique est construit par huggin
  • L'image a pour résolution 8xxx x 2xxx
  • Le trou est positionné au pied de l'image

Ces images seront ensuite adaptées au format de la visioneuse (Pannellum).

projets/openpathview/hugin.txt · Dernière modification: 2016/07/19 15:36 (modification externe)