Home > Digital Image Processing > Batch panorama stitching with review using Hugin

Batch panorama stitching with review using Hugin

Panorama of Mount Batur, Bali, Indonesia.

Panorama of Mount Batur, Bali, Indonesia.

Stitching images to a panorama may take it’s time — which might be frustrating in case you need to create a whole lot of panoramas. Hugin can save you a lot of time here. Basics of Hugin in a nutshell: it’s is a panorama tool providing a command line interface+UI and a two phased processing. Initially, you create a Hugin project which holds links to several images (.pto-file). Then you first sent your photos to the “assistant queue” which performs a preliminary stitching, which you can review and correct if necessary. Second, you send your images + rough stitching info to the “stitching queue”, which does the actual high quality stitching for you. Hugin further provides a batch processor which basically holds a list of Hugin projects — this is what we’re going to make use of.

Processing

To semi-automatically stitch all your panoramas at once, including a review of preliminary stitched panoramas, you can do the following:

  1. Move all photos that should be part of the same panorama to a separate folder — for each panorama you should have a separate folder then. This is the only step you actually have to do by hand completely. We assume you create the folders with leading zeros:
    for i in {001..100}; do mkdir $i; done
    
  2. Assuming that all these folders are located inside the same parent folder and you are in this parent folder, use Hugin’s “pto_gen” command to automatically generate the Hugin projects (.pto-files, make sure to adjust the image extension so that it fits your needs):
    for d in `ls`; do pto_gen $d/*.jpg; done
    

    If you happen to have multiple such folders, each containing multiple panorama folders, you can generate all panorama files at once using the following command instead (assuming all these folders have been named “pano”):

    for d in `find . -name "pano"`
    do
        for p in `ls $d`
            do pto_gen $d/$p/*jpg
        done
    done
    
  3. Add all these projects to the Hugin Batch Processor assistant queue:
    find . -name "*pto" -exec PTBatcherGUI -a {} \;
    
  4. Let the assistant queue create your preliminary panoramas
  5. Optionally review and correct each panorama using Hugin itself:
    find . -name "*pto" -exec hugin {} \;
    

    Sometimes it can be helpful to just review a bunch of panoramas at once instead:

    for d in `ls -d * | egrep "00[0-9]{1}"` # for panorama 000-009, adapt for your use
    do
        hugin $d/*.pto
    done
    
  6. Add the projects to the Hugin Batch Processor stitching queue:
    find . -name "*pto" -exec PTBatcherGUI {} \;
    
  7.  Let the stitching queue create all panoramas.

The following snippet converts panoramas generated as tifs into jpgs and moves them back to their original location (amongst other pictures) using convert from ImageMagick:

find . -name "*tif" -exec rename "s/ //g" {} \; # remove tif filename whitespaces added by Hugin

for t in `find . -name "*tif"`
do
    tif_path=`dirname $t`
    new_name=`basename $t | sed "s/tif/jpg/"`
    new_path=$tif_path/../../$new_name # we want to have panoramas amongst other pictures
    convert $t $new_path
done

Finally, if you’re pleased with your panoramas you can delete all tifs generated on the way:

find . -name "*tif" -delete

If you’d like to keep the original pictures used to create panoramas, but would like to share all other pictures anyway, here’s the command to copy all files but omit all “pano” folders inside:

DEST="/your/destination/folder/"
for f in `find . -type f`
do
    if [ ! `echo $f | grep "/pano/"` ]
    then
        # is not a pano folder and not a file inside a pano folder
        cp --verbose --parents "$f" "$DEST"
    fi
done

Installating Hugin on Ubuntu 12.04

When installing Hugin from the Ubuntu repositories in Ubuntu 12.04, unfortunately pto_gen is missing (seems to be fixed for 14.04 and newer). Therefore install Hugin from the Hugin repository as stated in their Ubuntu howto:

sudo add-apt-repository ppa:hugin/hugin-builds
sudo apt-get update
sudo apt-get install hugin enblend panini

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: