1. GOAL

Toolchain to create panoramic images for every occasion,
from quick holiday snaps to images with hundreds of megapixels.


2. CONTENT

This package contains the following programs:

 - hugin, the main program, a GUI for the panorama tools suite
   and some programs included here.

 - nona, a simple stitcher that does geometrical and photometric
   distortions to photos and writes the output to image files.
   It is a replacement for PTStitcher (doesn't support most
   features of PTStitcher, but is faster, opensource and
   will be extended in the future).  The parameters, mostly
   backward-compatible to PTStitcher, are specified in a .pto 
   project such as those generated by hugin, i.e. nona doesn't
   decide what the distortions are going to be, it just does 
   what it is told to do.

 - fulla correction of barrel distortion, chromatic aberration 
   and vignetting.

 - autooptimiser, optimise a panorama pairwise, starting from an
   anchor image. cmd line version of the pairwise mode in hugin
 
 - align_image_stack a tool to automate the process to align
   a stack of photos.

 - tca_correct a tool to automatically generate chromatic 
   aberration correction parameters for use with fulla.
   
 - hugin_executor for command-line stitching or running assistant.
 
 - pto_gen command line tool to generate project file from images.
 
 - cpfind command line tool to find control points.
 
 - linefind command line tool to find vertical features for leveling.
 
 - geocpset command line tool to connect featureless images by 
   "geometric" control points.
   
 - icpfind command line tool for using heuristic control point 
   matching like inside Hugin GUI
   
 - cpclean command line tool to remove control points with improbable 
   error distances
   
 - checkpto command line tool to examine project file and reports back 
   the number of image chains present
   
 - pto_var command line tool to manipulate image variables
 
 - pto_lensstack command line tool to manipulate lens and stacks
 
 - pto_mask command line tool to add mask to project file
 
 - pto_template command line tool to apply template to project file
 
 - calibrate_lens_gui automatic lens calibration using straight-line 
   detection
 
 - vig_optimize command line tool to estimate photometric parameters.
 
 - hugin_hdrmerge merges multiple exposures to HDR using Khan 
   anti-ghosting algorithm
 
 - hugin_stitch_project a GUI tool to stitch a single Hugin .pto project.
 
 - celeste_standalone removes cloud-like control points from project files.
 
 - PTBatcherGUI a GUI queue manager for stitching multiple Hugin projects.
 
 - deghosting_mask Creates mask for removing ghosting in bracketed images
 
 - pano_modify Change output parameters of project file
 
 - pano_trafo Transform image coordinates
 
 - pto_merge Merges two or more Hugin project files
 
 - pto_move Moves Hugin project files with associated images
 
 - lensdb Maintenance tool for Hugins camera and lens database 

 - verdandi Merges images using watershed algorithm
 
These programs are built on top of the pano13 library,
http://panotools.sourceforge.net/


3. DEPENDENCIES

Hugin is work in progress and dependencies can be added any time.

Hugin depends on the following packages. The list may be
incomplete, and there may be some platform-specific dependencies.

For the latest updates, check
http://wiki.panotools.org/Development_of_Open_Source_tools#Dependencies


3.1. Build-Time Dependencies

Users compiling Hugin from source will need:

    A C++compiler which supports OpenMP and C++11.
        * OpenMP support is not required. But when compiling
          without OpenMP nona and cpfind (and some other
          algorithm) are running only with one thread, 
          which is slower.
        * C++11 support by the compiler is optional.
          Otherwise the corrosponding Boost libraries are
          use. Then you will need the following boost libraries:
              date_time
              iostreams
              thread
          Boost have to be at least version 1.47
          This behaviour can be forced by setting the CMake variable
          USE_BOOST to true.
    
    The wxWidgets GUI toolkit version >=2.7.0. 2.9/3.0 is supported.
    boost >=1.47. The following boost libraries are needed:
        filesystem
        system
        (see also comment to C++11 above)
    libtiff the TIFF library with LZW support.
    libpano13 version >=2.9.19
    libjpg the JPEG library
    libpng the PNG library
    libopenexr the OpenEXR library
    libvigra the VIGRA libray, header files and impex library
    Exiv2 Image metadata library
    GLEW the OpenGL Extension Wrangler Library
    freeglut or glut, the OpenGL utility toolkit
    gettext
    sqlite3, the SQL database backend for the lens database
    optionally, lapack
    optionally, libfftw3
    on Unix you need also
        libGLU the OpenGL utility library
        libxi
        libxmu
    on Windows you need
        HTML Help Workshop for generating compiled HTML help file    
    for the optional Python Scripting Interface (currently functional and tested only on Linux and Windows)
        Python version >=2.6
        SWIG >=2.0 - If Python >=3.2, SWIG must be >=2.0.4
    Hugin can be compiled with gcc, as well as with MSVC.
    The build process requires CMake version >=2.8


3.2. At runtime

    enblend >= 3.2 is required.
    Exiftool, version >=9.09 is required to support GPano tags. Otherwise they are ignored.
    
    Starting with Hugin 2010.3 and newer, Hugin ships with its own control points generator cpfind. Prior to 2010.3 another optional but recommended runtime dependency was a control points generator.
    Optionally Python argparse command-line parsing library for the Python scripts. 


4. USE
    
hugin can be used to stitch multiple images together. The resulting image can
span 360 degrees. Another common use is the creation of very high resolution
pictures by combining multiple images.

See http://hugin.sourceforge.net/ for more information and tutorials.

See http://wiki.panotools.org/Development_of_Open_Source_tools#Supported_Platforms
for some information on releases for different platforms.


5. TYPICAL WORKFLOW

  1. load images
  2. specify initial parameters (lens etc)
  3. select control points points.
  4. run optimizer to estimate image positions
  5. set output parameters and stitch images together.


6. KNOWN ISSUES / INCOMPATIBILITIES / LIMITATIONS

Check the Hugin FAQ and bug tracker

http://wiki.panotools.org/Hugin_FAQ#Known_Limitations

An updated list of issues deemed to be critical,
including discussions and workarounds, is in the issue tracker

https://bugs.launchpad.net/hugin/+bugs?search=Search&field.importance=Critical


Linux: Compiz interferes with the fast preview window.
If you're affected, the workaround is to not use Compiz.

Some components of Hugin have been reported not to deal well with image files
that have the same name in different folders. The workaround is to rename 
your images files so that all image files in a project are unique.


7. SUPPORT / COMMUNITY

Please use the hugin-ptx mailing list if you have questions or suggestions:
http://groups.google.com/group/hugin-ptx
