Décomposition d’une image panoramique en faces de cube
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).