# Hugin (software)

Hugin (/ˈhʊɡɪn/) is a cross-platform open source panorama photo stitching and HDR merging program developed by Pablo d'Angelo and others. It is a GUI front-end for Helmut Dersch's Panorama Tools and Andrew Mihal's Enblend and Enfuse. Stitching is accomplished by using several overlapping photos taken from the same location, and using control points to align and transform the photos so that they can be blended together to form a larger image. Hugin allows for the easy (optionally automatic) creation of control points between two images, optimization of the image transforms along with a preview window so the user can see whether the panorama is acceptable. Once the preview is correct, the panorama can be fully stitched, transformed and saved in a standard image format.

## Features

Hugin and the associated tools can be used to
* combine overlapping images for panoramic photography
* correct complete panorama images, e.g. those that are "wavy" due to a badly levelled panoramic camera
* stitch large mosaics of images and photos, e.g. of long walls or large microscopy samples
* find control points and optimize parameters with the help of software assistants/wizards
* output several projection types, such as equirectangular (used by many full spherical viewers), mercator, cylindrical, stereographic, and sinusoidal
* perform advanced photometric corrections and HDR stitching
With the release of 2010.4.0, which includes a built-in control point generator, the developers consider Hugin to be feature-complete.
* 360° panoramic view of a banqueting hall, the ceiling is distorted
* the same basic images with fisheye projection and different view angle

## Development
### Infrastructure

The Hugin development is tracked on Launchpad and the code resides in a Mercurial repository.

### Google Summer of Code

Five projects for the development of Hugin / panotools were accepted for the 2007 Google Summer of Code. Additionally a sixth, community sponsored project has been set up. The projects were:
* Automatic feature detection by Pedro Alonso (Spain), mentored by Herbert Bay (Switzerland)
* New modular GUI by Ippei Ukai (Japan), mentored by Yuval Levy (Canada), who is also the lead administrator on the Summer of Code effort
* HDR de-ghosting by Jing Jin (USA), mentored by Pablo d'Angelo (Germany) who is also the lead developer on Hugin
* Large image processing with VIPS by Mohammad Shahiduzzaman (Bangladesh), mentored by John Cupitt (United Kingdom)
* Interactive Panorama Viewer by Leon Moctezuma (Mexico), mentored by Aldo Hoeben (The Netherlands)
* Community project: PTbatcher by Zoran Mesec (Slovenija), mentored by Daniel M. German (Canada)
Hugin was also accepted to Summer of Code 2008. Projects were:
* Fast, OpenGL accelerated preview by James Alastair Legg, mentored by Pablo d'Angelo
* Automated feature matching by Onur Kucuktunc, mentored by Alexandre Jenny
* User interface for masking of images by Fahim Mannan, mentored by Daniel M. German
* Batch processing ability by Marko Kuder, mentored by Zoran Mesec
* Automatic detection of non-static features in imagery (final application is called Celeste) by Timothy Nugent, mentored by Yuval Levy
In 2009 Google Summer of Code projects were as follows:
* Ghost removal for Enfuse by Luka Jirkovsky, mentored by Andrew Mihal
* Layout model by James Legg, mentored by Bruno Postle
* Automatic lens calibration by detecting straight lines in pictures by Timothy Nugent, mentored by Tom Sharpless
* and fourth project for porting LightTwist to Mac OS X by Yulia Kotseruba, mentored by Sébastien Roy.
In 2010 the Google Summer of Code projects were:
* implementing a patent-free image feature detector and control point generator by Antoine Deleforge, mentored by Timothy Nugent.
* creating a new interactive panorama overview, by Darko Makreshanski and mentored by James Legg
* improving the make file libraries used in panorama stitching and
* adding regression tests for libpano13
In 2011 the GSoC project was centered around Enblend's seam line optimization algorithm using graph-cut algorithm.