#! /bin/sh ## Initialisation of panorama ## Copyright (C) 2006 by Peter J. Gawthrop ## This may be freely used under the GNU Public License (GPL). gpx=`echo *gpx` if [ -n $gpx ]; then echo "Geotagging using $gpx" else echo "No gpx file founf - not geotagging" fi bracket() { bracket_value=`exiftool $1| grep "AEB Bracket Value" | awk '{print $5}'` } init_pano() { if [ -d "Exposure_0" ]; then echo "Panorama already initialised" exit fi ## Geotag if [ -n $gpx ]; then ln -s ../$gpx GpsPhoto fi Rotate mkdir Exposure_0 mkdir Exposure_over mkdir Exposure_under count=-1 numbers="" for image in ${images}; do bracket $image ##echo $image ${bracket_value} if [ "${bracket_value}" -eq "0" ]; then let count=${count}+1 numbers="$numbers $count" ln -s ../${image} Exposure_0/${count}.jpg fi if [ "${bracket_value}" -lt "0" ]; then ln -s ../${image} Exposure_under/${count}.jpg fi if [ "${bracket_value}" -gt "0" ]; then ln -s ../${image} Exposure_over/${count}.jpg fi done let total=${count}+1 echo $total images initialised } merge_images() { for number in $numbers; do echo "Blending image $number" Blend Exposure_0/$number.jpg Exposure_under/$number.jpg Exposure_over/$number.jpg $number.jpg done } ## Main part. Lowercase images=`ls img_????.jpg 2>/dev/null` subdirs="Exposure_0 Exposure_under Exposure_over" this=`basename $PWD` if [ -z "${images}" ]; then # Recurse dirs=`ls` for dir in $dirs; do if [ -d "$dir" ]; then echo "Doing dir $dir" (cd $dir; pano_init) fi done else # Initialise N=`ls img_????.jpg | grep -c jpg` if [ "$N" -eq 24 ]; then echo "Initialising panoramas in ${this} ($N images)" init_pano else echo "Incorrect number of images ($N) in $this" fi fi merge_images;