Il formato MPO, dagli applicativi Libuz vengono visti come noemali foto 2D.
Il formato MPO è quello che usa Nintendo 3DS.
Purtroppo credo che non esistano applicazioni per Linux che riescono a far vedere questo formato in 3D.
Code: Select all
#!/bin/bash
# Nome File: mpo2jpg
echo; echo
echo $0
echo "######################################################################"
echo "# Ver. 2.1 - 09/08/2011 - (C)-MIB-PIANETALINUX - by Roberto Zaffuto #"
echo "# Converte foto .MPO (destro e sinistro), in anaglifo rosso-blu #"
echo "######################################################################"
echo -n "Premi il tasto [ENTER]..."; read
function settapar() {
mkdir -p left right anaglyph mpo gif_anim stereo-Cross stereo-Parallel
LEFT="left/${BASENAME}-L.jpg"
RIGHT="right/${BASENAME}-R.jpg"
GIF="gif_anim/${BASENAME}.gif"
STEREO1="stereo-Parallel/${BASENAME}-stereo-Parallel-Eye.jpg"
STEREO2="stereo-Cross/${BASENAME}-stereo-Cross-Eye.jpg"
ANAGLYPH="anaglyph/${BASENAME}-anaglyph.jpg"
}
function elabora() {
echo "###########################"
echo "ELABORO FOTO: "$SRC
echo "###########################"
# Estrae immagine destra e sinistra dal formato MPO
echo "Estraggo le immagini destra e sinistra dal formato MPO"
exiftool -trailer:all= "$SRC" -o "$LEFT"
exiftool "$SRC" -mpimage2 -b > "$RIGHT"
# Regola il contrasto delle immagigini
echo "**********************************"
echo "Regolo il contrasto delle immagini"
echo "**********************************"
convert -contrast-stretch 100,100,100 "$LEFT" "$LEFT"
convert -contrast-stretch 100,100,100 "$RIGHT" "$RIGHT"
# Estrae il valore del parallasse
echo "*********************************"
echo "Estraggo il valore del parallasse"
echo "*********************************"
PARALLAX=`exiftool -b -Parallax "$RIGHT"`
if [ ! $PARALLAX ]; then
PARALLAX=0
fi
echo "Parallasse = "$PARALLAX
# Setta la dimenzione originale dell'immagine
WIDTH=`exiftool -b -ImageWidth "$RIGHT"`
# Moltiplica il parallasse
SHIFT=$((WIDTH/100))
# Ricalcola il parallasse in pixel
PARALLAX=`echo "($PARALLAX * $SHIFT + 0.5)/1" | bc`
# Setta i valori di default per il parallasse positivo
GRAVITY_LEFT=East
GRAVITY_RIGHT=West
# Inverte la gravità negativa per il parallasse negativo
if [ "${PARALLAX:0:1}" = "-" ] ; then
PARALLAX=${PARALLAX#-}
GRAVITY_LEFT=West
GRAVITY_RIGHT=East
fi;
# Aggiusta la dimenzione per l'immagine
WIDTH=$((WIDTH-PARALLAX))
# Modifica le immagini con i valori elaborati
echo "*******************************************"
echo "Modifico le immagini con i valori elaborati"
echo "*******************************************"
mogrify -verbose -gravity $GRAVITY_LEFT -crop ${WIDTH}x0+0+0 +repage $LEFT
mogrify -verbose -gravity $GRAVITY_RIGHT -crop ${WIDTH}x0+0+0 +repage $RIGHT
# Genera Anaglifo Rosso-Blu
echo "*************************"
echo "Genero Anaglifo Rosso-Blu"
echo "*************************"
composite -stereo +0 $LEFT $RIGHT $ANAGLYPH
mogrify -resize "1024x1024>" $ANAGLYPH
# Genera immagine stereo Sinistra-Destro (Parallel)
echo "*************************************************"
echo "Genero immagine stereo Sinistra-Destro (Parallel)"
echo "*************************************************"
montage $LEFT $RIGHT -verbose -mode Concatenate -tile x1 -resize "1024x1024>" $STEREO1
# Genera immagine stereo Destro-Sinistra (Crossing)
echo "*************************************************"
echo "Genero immagine stereo Destro-Sinistra (Crossing)"
echo "*************************************************"
montage $RIGHT $LEFT -verbose -mode Concatenate -tile x1 -resize "1024x1024>" $STEREO2
# Genera GIF animata
echo "******************"
echo "Genero GIF animata"
echo "******************"
convert -verbose -delay 30 $LEFT $RIGHT -resize 600x600 $GIF;
cp $SRC mpo/$SRC 2> /dev/null
rm $SRC 2> /dev/null
}
function ciclo() {
for SRC in $(ls *$EST)
do echo $SRC
BASENAME="`basename $SRC $EST`"
settapar
elabora
done
}
if [ $1 ]; then
SRC=$1
BASENAME="`basename $SRC .MPO`"
if [ ! -f $SRC ]; then
echo $BASENAME" Non trovato."
exit 1
fi
settapar
elabora
else
EST=".MPO"
ciclo
EST=".mpo"
ciclo
fi
echo; echo "Done"; read
Gli Anaglifi prodotti vanno visti con occhialini Rosso-Blu.
Alcune foto nel formato MPO le potete scaricare da: http://3dmedia.com/gallery/
---------------------------------------
This script extracts the left and right image from any .MPO file, crops them to match the embedded parallax value, then makes an anaglyph image, stereopair (JPS, Stereo JPEG analogue), and also an animated GIF for your viewing pleasure.
Prequisites: bash, ExifTool, ImageMagick, and bc.