Décomposition d’une image panoramique en faces de cube

10 décembre 2009 - Mots-clés : Liens Linux Photographie

Installation des packages

$ sudo apt install hugin-tools

Installer à la main Panotools-Script-0.29.tar.gz

Conversion en cube à 6 faces

La conversion d'une image panoramique en 6 faces d'un cube permet :

  • l'affichage direct par un visualisateur de panorama sphérique ;
  • de servir de phase intermédiaire avant la convertion en tuiles ;

Pour convertir une image panoramique au format équirectangulaire (.tif) vers le format cubique (6 faces du cube .tif), j'utilise le script suivant :

function usage {
        cat <<EOF
Usage: $0 PANOFILE OUTDIR
Create cubic pano faces

PANOFILE: Input image in tif format. This must be a spherical panorama
          with image_width = 2 * image_height.
OUTDIR: output directory of cube faces tiles of cubic panorama
EOF
}

PANOFILE=$1
OUTDIR=$2

# Remove flags, so $1 points to input file
shift $(($OPTIND - 1))

if [ $# -ne 2 ] ; then
        usage
        exit 1
fi

mkdir -p $OUTDIR

EXT=${PANOFILE##*.}
EXTMIN=`echo $EXT | tr '[A-Z]' '[a-z]'`
if [ "$EXTMIN" != "jpg" -a "$EXTMIN" != "tif" ] ; then
   echo "$EXT : incorrect file extension" ; exit 1
fi
PANOBASENAME=`basename $PANOFILE .$EXT`

# Creates cube faces {b|d|f|l|r|u}.tif.
erect2cubic --erect=$1 --ptofile=$PANOBASENAME.pto #--specfile="JPEG q92"
nona -o face_ $PANOBASENAME.pto
rm $PANOBASENAME.pto
OUTDIR=`readlink -m $OUTDIR`
mv face_0000.tif $OUTDIR/f.tif
mv face_0001.tif $OUTDIR/r.tif
mv face_0002.tif $OUTDIR/b.tif
mv face_0003.tif $OUTDIR/l.tif
mv face_0004.tif $OUTDIR/u.tif
mv face_0005.tif $OUTDIR/d.tif

Le premier argument est l'image panoramique équirectangulaire et le deuxième est le répertoire de destination. Exemple d'utilisation :

$ equi2cube.sh monpano.tif ~/tmp/cube

Un répertoire cube est crée dans le même répertoire où se trouve l'image. On obtient les 6 faces du cube nommés f.tif (face), r.tif (droite), r.tif (arrière), l.tif (gauche), u.tif (haut), b.tif (bas).

Exemple

Image équirectangulaire de départ

Faces

Montage des 6 faces