<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.panotools.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.panotools.org/api.php?action=feedcontributions&amp;user=Seb+Przd&amp;feedformat=atom</id>
		<title>PanoTools.org Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.panotools.org/api.php?action=feedcontributions&amp;user=Seb+Przd&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Special:Contributions/Seb_Przd"/>
		<updated>2013-05-22T18:30:13Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.0</generator>

	<entry>
		<id>http://wiki.panotools.org/Autooptimiser</id>
		<title>Autooptimiser</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Autooptimiser"/>
				<updated>2011-02-07T15:17:20Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Added usage information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''autooptimiser''' is a smart optimiser replacement for [[PTOptimizer]] and [[vig_optimize]], it is part of the [[hugin]] suite of tools for panoramic imaging.&lt;br /&gt;
&lt;br /&gt;
It is not a 100% drop-in replacement for '''PTOptimizer''' as it has a slightly different interface and some extra features:&lt;br /&gt;
&lt;br /&gt;
* '''PTOptimizer''' will write the output of the optimisation into the input script file as 'o' lines, deleting any that already exist.  This behaviour is a little strange, so '''autooptimiser''' writes the result to STDOUT or a new file, as is more usual for a command-line tool.&lt;br /&gt;
* Not clobbering the original file means that there is no need to create 'o' lines, the output file is in the same format as the input with optimised values applied to the 'i' lines.&lt;br /&gt;
* [[PTStitcher]] requires 'o' lines, so the output of '''autooptimiser''' isn't suitable for stitching with '''PTStitcher''' without further processing - Stitch these files with [[nona]] instead.&lt;br /&gt;
&lt;br /&gt;
Additional features:&lt;br /&gt;
&lt;br /&gt;
* '''autooptimiser''' can perform ''pairwise'' optimisation instead of trying to optimise all rotation parameters at the same time, this means that there is no need to pre-position images before optimisation.&lt;br /&gt;
* ''levelling'' the horizon in a set of images can be performed, this is the same functionality as the '''Straighten''' button in the [[hugin Preview window]].&lt;br /&gt;
* ''auto-align'' mode will pick an optimisation scheme suited to the distribution of [[control points]] in the project so there is no need to specify parameters to optimise.&lt;br /&gt;
* '''autooptimiser''' can adjust the panorama [[field of view]], dimensions and [[Projections|projection]] to suit the input images.&lt;br /&gt;
* the '''field of view''' of input images can be specified, this is useful as the project files created by [[autopano]] and [[autopano-sift]] don't specify the '''field of view''' of the input photos.&lt;br /&gt;
* '''autooptimiser''' can also perform photometric optimisation like the [[vig_optimize]] tool. Depending on the input images it selects automaticly these photometric parameters (exposure, white balance, [[vignetting]], [[camera response curve]]) which should be optimised.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
       autooptimiser [options] project.pto&lt;br /&gt;
&lt;br /&gt;
(- can be specified to read the project from stdio.)&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
'''autooptimiser''' works similarly to '''PToptimizer''' but with extra command-&lt;br /&gt;
line options.&lt;br /&gt;
&lt;br /&gt;
It is also different in that PToptimizer appends its output onto the&lt;br /&gt;
input file in the form of ’o’ lines which need further processing.&lt;br /&gt;
autooptimiser simply updates the project and writes it to a new file.&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-o file.pto&amp;lt;/tt&amp;gt; Output file. If omitted, stdout is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Optimisation options (if not specified, no optimisation takes place):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-a&amp;lt;/tt&amp;gt;  Auto align mode, includes various optimisation stages, depending on&lt;br /&gt;
the amount and distribution of the control points&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt;  Pairwise optimisation of yaw, pitch and roll, starting from first&lt;br /&gt;
image&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-n&amp;lt;/tt&amp;gt;  Optimize parameters specified in script file (like PToptimizer).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Post-processing options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-l&amp;lt;/tt&amp;gt;  Level horizon (works best for horizontal panoramas)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-s&amp;lt;/tt&amp;gt;  Automatically select a suitable output projection and size&lt;br /&gt;
&lt;br /&gt;
* Other options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-q&amp;lt;/tt&amp;gt;  Quiet operation (no progress is reported)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-v HFOV&amp;lt;/tt&amp;gt;           Specify horizontal field of view of input images. Used if the .pto&lt;br /&gt;
file contains invalid HFOV values (autopano-SIFT writes .pto files&lt;br /&gt;
with invalid HFOV)&lt;br /&gt;
&lt;br /&gt;
When -a, -l, and -s options are used together, an operation similar to&lt;br /&gt;
the one of the &amp;quot;Align&amp;quot; button in hugin is performed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Platform:Windows]]&lt;br /&gt;
[[Category:Software:Platform:Mac OS X]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;br /&gt;
[[Category:Software:Hugin]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Control_point_generators</id>
		<title>Control point generators</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Control_point_generators"/>
				<updated>2009-09-14T11:52:00Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Specific purposes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This stub is to hold the list of available [[Control points|control point]] generators in general, and how they can be configured in Hugin in particular (starting with version 2009.2)&lt;br /&gt;
&lt;br /&gt;
This list should supersede the one available on the [[GUI_front-ends]] page.&lt;br /&gt;
&lt;br /&gt;
== All-purpose CP generators ==&lt;br /&gt;
&lt;br /&gt;
[[Autopano]]&lt;br /&gt;
&lt;br /&gt;
[[Autopano-sift]]&lt;br /&gt;
&lt;br /&gt;
[[Autopano-sift-C]]&lt;br /&gt;
&lt;br /&gt;
[[Match-n-shift]] should have its own page, as it is only mentioned [[Hugin_Compiling_Ubuntu#Match-n-shift|here]].&lt;br /&gt;
&lt;br /&gt;
[[Panomatic]]&lt;br /&gt;
&lt;br /&gt;
=== Obsolete ===&lt;br /&gt;
&lt;br /&gt;
[[PanoPoints]]&lt;br /&gt;
&lt;br /&gt;
== Key feature generators ==&lt;br /&gt;
&lt;br /&gt;
These programs do not include the matching part, but are able to generate key point descriptions that can then be matched by autopano.&lt;br /&gt;
&lt;br /&gt;
[[MatchPoint]]&lt;br /&gt;
&lt;br /&gt;
== Specific purposes ==&lt;br /&gt;
&lt;br /&gt;
[[Align a stack of photos]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Survey ]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Control_point_generators</id>
		<title>Control point generators</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Control_point_generators"/>
				<updated>2009-09-14T11:49:17Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Page creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This stub is to hold the list of available [[Control points|control point]] generators in general, and how they can be configured in Hugin in particular (starting with version 2009.2)&lt;br /&gt;
&lt;br /&gt;
This list should supersede the one available on the [[GUI_front-ends]] page.&lt;br /&gt;
&lt;br /&gt;
== All-purpose CP generators ==&lt;br /&gt;
&lt;br /&gt;
[[Autopano]]&lt;br /&gt;
&lt;br /&gt;
[[Autopano-sift]]&lt;br /&gt;
&lt;br /&gt;
[[Autopano-sift-C]]&lt;br /&gt;
&lt;br /&gt;
[[Match-n-shift]] should have its own page, as it is only mentioned [[Hugin_Compiling_Ubuntu#Match-n-shift|here]].&lt;br /&gt;
&lt;br /&gt;
[[Panomatic]]&lt;br /&gt;
&lt;br /&gt;
=== Obsolete ===&lt;br /&gt;
&lt;br /&gt;
[[PanoPoints]]&lt;br /&gt;
&lt;br /&gt;
== Key feature generators ==&lt;br /&gt;
&lt;br /&gt;
These programs do not include the matching part, but are able to generate key point descriptions that can then be matched by autopano.&lt;br /&gt;
&lt;br /&gt;
[[MatchPoint]]&lt;br /&gt;
&lt;br /&gt;
== Specific purposes ==&lt;br /&gt;
&lt;br /&gt;
[[Align a stack of photos]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2009-09-11T19:09:33Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building Enblend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress and updated when newer versions of Ubuntu are released or when Hugin introduces new dependencies. They have worked, at the time of release or soon thereafter, with the following Ubuntu/Kubuntu versions:&lt;br /&gt;
* Ubuntu 9.04: on AMD64 computer&lt;br /&gt;
* Ubuntu 8.10: on AMD64 computer&lt;br /&gt;
* Ubuntu 8.04: on an Intel processor&lt;br /&gt;
* Ubuntu 7.10: on AMD Athlon XP&lt;br /&gt;
* Ubuntu 7.04: on AMD64 computer&lt;br /&gt;
* Ubuntu 6.06: on AMD64 computer&lt;br /&gt;
&lt;br /&gt;
They are likely to work only for the latest one, but you can check this page's history at the time that the older Ubuntu version was the most recent one to find the specifics for that version.&lt;br /&gt;
&lt;br /&gt;
Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment  on the [http://groups.google.com/group/hugin-ptx hugin-ptx mailing list]). Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu -&amp;gt; System -&amp;gt; Konsole or Applications -&amp;gt; Accessories -&amp;gt; Terminal (in Kubuntu), Applications -&amp;gt; Accessories -&amp;gt; Terminal (in Ubuntu))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unless you have an amd64 system prior to 7.10, add the following packages.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev libgcc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older amd64 environments, the packages have a slightly different name:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev-amd64 lib64gcc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN, Mercurial and Bazaar repositories, and for this we need the correct tools:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install subversion mercurial bzr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not necessary, but useful if you want to move to the next level and build packages for distribution (list is incomplete):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install subversion-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pkg-config libtiff4-dev libboost-graph-dev libboost-thread-dev \&lt;br /&gt;
  liblcms1-dev libglew1.5-dev libplot-dev libglut3-dev libopenexr-dev libxi-dev libxmu-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu systems prior to 8.10, you will also need&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libopenexr2ldbl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all dependencies are in place, get the code. The official repository has migrated from CVS to Mercurial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hg clone http://enblend.hg.sourceforge.net:8000/hgroot/enblend/enblend enblend&lt;br /&gt;
cd enblend&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you already have checked out enblend, to update the code to the latest version you need to run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hg pull&lt;br /&gt;
hg update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We are then ready to compile. The CXXFLAGS &amp;lt;tt&amp;gt;--param inline-unit-growth=60&amp;lt;/tt&amp;gt; is a workaround for x86_64 systems, Feb 2009, and apparently no longer needed (set by default). If you have an SMP machine and you're building a recent version, &amp;lt;tt&amp;gt;--disable-image-cache&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;--enable-openmp&amp;lt;/tt&amp;gt; will speed up enblend/enfuse massively but may cause segmentation faults; in that case you will be better off with &amp;lt;tt&amp;gt;--enable-image-cache&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;--disable-openmp.&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;-march=native&amp;lt;/tt&amp;gt; is also beneficial and -O2 is better than -O3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make --makefile=Makefile.scm&lt;br /&gt;
CXXFLAGS=&amp;quot;--param inline-unit-growth=60 -march=native -O2&amp;quot; ./configure --disable-image-cache --enable-openmp&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second make step can be very long and memory consuming. Make sure you have enough swap space, and go get a healthy snack while the computer is compiling.&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing, what machine/operating system, the revision checked out from CVS, and all other relevant information.&lt;br /&gt;
&lt;br /&gt;
You are then ready to install with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install zlib1g zlib1g-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On older distributions, zlib1g and zlib1g-dev may not be found. In that case, the same library may be available with the names lib64z1 and lib64z1-dev.&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the future there is no need to get the whole source again. Just issue the following commands to bring your source up to date:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd libpano13&lt;br /&gt;
svn up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now start the building process:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./bootstrap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Hugin ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
First we need to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example) and get the dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev \&lt;br /&gt;
  gettext libwxgtk2.8-dev libexiv2-dev libimage-exiftool-perl libglew-dev liblapack-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fetch the Source Code from SVN ===&lt;br /&gt;
&lt;br /&gt;
Next we download Hugin from SVN. But which Hugin? There are many [http://svnbook.red-bean.com/en/1.1/ch04.html#svn-ch-4-sect-1 branches] in SVN. Also SVN keeps track of every single change (revision) in time, so we can download a branch in its state at a specific point in time. For example &amp;lt;code&amp;gt;-r 4008 https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/&amp;lt;/code&amp;gt; will download the trunk branch at the point in time when revision [http://hugin.svn.sourceforge.net/viewvc/hugin?view=rev&amp;amp;revision=4008 4008] was committed, which happens to be Tue Jul 7 22:07:54 2009 UTC. It also happens to be the same as the 0.8.0 release. For a list of branches and revisions that build well, refer to these [http://wiki.panotools.org/Development_of_Open_Source_tools#Specific_revisions lists]. There is no guarantee that a particular branch and/or revision builds and/or performs as expected.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co -r 4061 https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/tags/hugin-2009.07.1/ hugin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you know what you are doing, you can replace /hugin-2009.07.1/ with another branch; and you can omit the -r and get the last revision of that branch.&lt;br /&gt;
&lt;br /&gt;
In the future there is no need to get the whole source again. Just issue the following commands to bring your source up to date:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd hugin&lt;br /&gt;
svn up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Set the Build Environment ===&lt;br /&gt;
&lt;br /&gt;
Next we set up the build environment using cmake.&lt;br /&gt;
&lt;br /&gt;
If you compiled and installed libpano to a non standard location set the variables CMAKE_INCLUDE_PATH and CMAKE_LIBRARY_PATH to point to your install location's include and lib directories.&lt;br /&gt;
&lt;br /&gt;
If you are building for distribution, you want to set CMAKE_INSTALL_PREFIX=/usr&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir hugin-build&lt;br /&gt;
cd hugin-build&lt;br /&gt;
cmake ../hugin -DENABLE_LAPACK=YES -DCPACK_BINARY_DEB:BOOL=ON -DCPACK_BINARY_NSIS:BOOL=OFF \&lt;br /&gt;
-DCPACK_BINARY_RPM:BOOL=OFF -DCPACK_BINARY_STGZ:BOOL=OFF -DCPACK_BINARY_TBZ2:BOOL=OFF \&lt;br /&gt;
-DCPACK_BINARY_TGZ:BOOL=OFF -DCPACK_BINARY_TZ:BOOL=OFF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build and Install ===&lt;br /&gt;
&lt;br /&gt;
Finally, we use make to build the code and package it, and dpkg to install it. Look for the version number in the .deb file created and edit the lines below accordingly: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make package&lt;br /&gt;
ls *.deb&lt;br /&gt;
sudo dpkg -i hugin-0000.00.0-Linux.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important:''' the package does not track dependencies yet, so it likely to fail on machines others than yours.&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
== Autopano-sift-C ==&lt;br /&gt;
&lt;br /&gt;
Pre-Requisites:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml2-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk/ autopano-sift-C&lt;br /&gt;
cd autopano-sift-C&lt;br /&gt;
cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Match-n-shift ==&lt;br /&gt;
&lt;br /&gt;
Match-n-shift is yet an other Autopano-SIFT replacement. It comes in a bundle with pto file manipulation perl libraries and a rich selection of other tools that use nona, enblend, ImageMagick among other things. To use match-n-shift, you need to install at least the [http://search.cpan.org/dist/Panotools-Script/ Panotools::Script] library and some other perl modules. It requires:&lt;br /&gt;
&lt;br /&gt;
*  Image::Size 2.9&lt;br /&gt;
*  Storable 2.0&lt;br /&gt;
*  Image::ExifTool 6&lt;br /&gt;
&lt;br /&gt;
Chances are that you do not need to update Storable which is a standard perl module. To check the version of installed versions of these modules, write these lines to the command prompt:&lt;br /&gt;
&lt;br /&gt;
  perl -MStorable -le 'print Storable-&amp;gt;VERSION;'&lt;br /&gt;
  perl -MImage::Size -le 'print Image::Size-&amp;gt;VERSION;'&lt;br /&gt;
  perl -MImage::ExifTool -le 'print Image::ExifTool-&amp;gt;VERSION;'&lt;br /&gt;
&lt;br /&gt;
There are various ways to install or upgrade these modules. Ubuntu has binary packages for many perl modules, you can skip the CPAN installation below and type:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install libimage-size-perl libimage-exiftool-perl&lt;br /&gt;
&lt;br /&gt;
Alternatively, perl is an interpreted language and these modules are pure perl, so installing from source is an easy thing.&lt;br /&gt;
&lt;br /&gt;
The best place to install perl modules is directly from a CPAN archive. CPAN is short for Comprehensive Perl Archive Network. The program to interact with CPAN comes with all perl installations. Start it by running:&lt;br /&gt;
&lt;br /&gt;
  sudo cpan&lt;br /&gt;
&lt;br /&gt;
If this is your first time running the program you will be asked a number of questions (you can safely accept the suggested values). Last question lets you select a number of CPAN mirrors nearest to you.&lt;br /&gt;
&lt;br /&gt;
When all is done, you can enter the install commands after the 'cpan&amp;gt;' prompt:&lt;br /&gt;
&lt;br /&gt;
  install Image::Size Storable Image::ExifTool&lt;br /&gt;
&lt;br /&gt;
Answer 'y' to any question of dependencies and wait for install to complete. 'exit' leaves the cpan shell.&lt;br /&gt;
&lt;br /&gt;
Next, you need to retrieve and install the Panotools-Script collection&lt;br /&gt;
of perl libraries (Panotools::Script) and programs that use them -&lt;br /&gt;
including match-n-shift:&lt;br /&gt;
&lt;br /&gt;
  svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/Panotools-Script  Panotools-Script&lt;br /&gt;
  cd Panotools-Script&lt;br /&gt;
  perl Makefile.PL&lt;br /&gt;
  make&lt;br /&gt;
  make test&lt;br /&gt;
  sudo make install&lt;br /&gt;
&lt;br /&gt;
Just to confuse you, you can also ignore everything above and just install Panotools::Script and all its dependencies from CPAN. From command line, type:&lt;br /&gt;
&lt;br /&gt;
  sudo cpan Panotools::Script&lt;br /&gt;
&lt;br /&gt;
You can run match-n-shift from command line using the same parameters as autopano-c-complete.sh or you can modify hugin to run it for you:&lt;br /&gt;
&lt;br /&gt;
* start Hugin&lt;br /&gt;
* navigate the menu File to Preferences&lt;br /&gt;
* In the Preferences window, open the Autopano tab&lt;br /&gt;
* Select Autopano -&amp;gt; Autopano-SIFT&lt;br /&gt;
* tick the checkbox for Use alternative Autopano-SIFT program&lt;br /&gt;
* enter the full path to match-n-shift (/usr/local/bin/match-n-shift) in the Autopano-SIFT field&lt;br /&gt;
* enter the following string in the Arguments field:&lt;br /&gt;
 -f %f -v %v -c -p %p -o %o %i&lt;br /&gt;
&lt;br /&gt;
== MatchPoint ==&lt;br /&gt;
&lt;br /&gt;
MatchPoint is a next generation CP generator. The result of a GSoC2007 project, it is still very experimental. Experience reports needed. Read more [http://groups.google.com/group/hugin-ptx/browse_thread/thread/cba2b2ce94dd9054 here]&lt;br /&gt;
&lt;br /&gt;
Matchpoint is now located inside the main hugin source tree, no need to checkout https://hugin.svn.sourceforge.net/svnroot/hugin/gsoc07_featuredetection anymore. It is compiled together with hugin, but not installed by default.&lt;br /&gt;
&lt;br /&gt;
* copy the MatchPoint executable into /usr/local/bin manually&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp src/matchpoint/matchpoint /usr/local/bin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* edit /usr/local/bin/autopano-c-complete.sh (do it with sudo to have the necessary permission)&lt;br /&gt;
** line 79: replace the .key.gz extension with .key (not sure if matchpoint supports compression)&lt;br /&gt;
** lines 83 and 88: replace '''generatekeys &amp;quot;$arg&amp;quot; $FILENAME $SIZE''' with '''matchpoint &amp;quot;$arg&amp;quot; $FILENAME''' (not sure if the size option or any other options of the original generatekeys are applicable)&lt;br /&gt;
&lt;br /&gt;
== Pan-o-matic ==&lt;br /&gt;
&lt;br /&gt;
Yet another control point generator [http://aorlinsk2.free.fr/panomatic/?p=home Home Page]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libboost-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download [http://aorlinsk2.free.fr/panomatic/download.php?d=7&amp;amp;v=0.9.4 Panomatic 0.9.4 bz2]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar xvfj panomatic-0.9.4-src.tar.bz2&lt;br /&gt;
cd panomatic-0.9.4&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use Pano-o-matic, open Hugin&lt;br /&gt;
&lt;br /&gt;
* In File &amp;gt; Preferences &amp;gt; Autopano :&lt;br /&gt;
* Select Autopano-SIFT&lt;br /&gt;
* Check &amp;quot;Use alternative autopaon-SIFT program&amp;quot;&lt;br /&gt;
* Choose the path to the binary ( /usr/local/bin )&lt;br /&gt;
* In Arguments, put : -o %o %i&lt;br /&gt;
&lt;br /&gt;
== Exiftool ==&lt;br /&gt;
&lt;br /&gt;
ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in image, audio and video files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get purge libimage-exiftool-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-7.83.tar.gz&lt;br /&gt;
tar -xzf Image-ExifTool-7.83.tar.gz&lt;br /&gt;
cd Image-ExifTool-7.83&lt;br /&gt;
perl Makefile.PL&lt;br /&gt;
make test&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Panoglview ==&lt;br /&gt;
&lt;br /&gt;
PanoGLView is an OpenGL hardware accelerated interactive immersive viewer for equirectangular images.&lt;br /&gt;
&lt;br /&gt;
Pre-Requisites:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install wx-common&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/panoglview/trunk panoglview&lt;br /&gt;
cd panoglview&lt;br /&gt;
./bootstrap&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FreePV ==&lt;br /&gt;
&lt;br /&gt;
Pre-Requisites:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install cmake make pkg-config g++ mozilla-dev freeglut-dev zlib1g-dev libjpeg-dev libxext-dev libxmu-dev \&lt;br /&gt;
x11proto-xf86vidmode-dev libxxf86vm-dev libnspr4-dev libxml2-dev libpng12-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://freepv.svn.sourceforge.net/svnroot/freepv/freepv/trunk/ freepv&lt;br /&gt;
cd freepv&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes for Packagers ==&lt;br /&gt;
* before releasing a tarball, upgrade the Changelog with svn2cl&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn up&lt;br /&gt;
$ svn2cl&lt;br /&gt;
$ svn ci&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2009-09-09T15:02:24Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building Enblend */  adding cautions about disable-image-cache and openmp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress and updated when newer versions of Ubuntu are released or when Hugin introduces new dependencies. They have worked, at the time of release or soon thereafter, with the following Ubuntu/Kubuntu versions:&lt;br /&gt;
* Ubuntu 9.04: on AMD64 computer&lt;br /&gt;
* Ubuntu 8.10: on AMD64 computer&lt;br /&gt;
* Ubuntu 8.04: on an Intel processor&lt;br /&gt;
* Ubuntu 7.10: on AMD Athlon XP&lt;br /&gt;
* Ubuntu 7.04: on AMD64 computer&lt;br /&gt;
* Ubuntu 6.06: on AMD64 computer&lt;br /&gt;
&lt;br /&gt;
They are likely to work only for the latest one, but you can check this page's history at the time that the older Ubuntu version was the most recent one to find the specifics for that version.&lt;br /&gt;
&lt;br /&gt;
Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment  on the [http://groups.google.com/group/hugin-ptx hugin-ptx mailing list]). Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu -&amp;gt; System -&amp;gt; Konsole or Applications -&amp;gt; Accessories -&amp;gt; Terminal (in Kubuntu), Applications -&amp;gt; Accessories -&amp;gt; Terminal (in Ubuntu))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unless you have an amd64 system prior to 7.10, add the following packages.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev libgcc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older amd64 environments, the packages have a slightly different name:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev-amd64 lib64gcc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN, Mercurial and Bazaar repositories, and for this we need the correct tools:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install subversion mercurial bzr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not necessary, but useful if you want to move to the next level and build packages for distribution (list is incomplete):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install subversion-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pkg-config libtiff4-dev libboost-graph-dev libboost-thread-dev \&lt;br /&gt;
  liblcms1-dev libglew1.5-dev libplot-dev libglut3-dev libopenexr-dev libxi-dev libxmu-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu systems prior to 8.10, you will also need&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libopenexr2ldbl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all dependencies are in place, get the code. The official repository has migrated from CVS to Mercurial:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hg clone http://enblend.hg.sourceforge.net:8000/hgroot/enblend/enblend enblend&lt;br /&gt;
cd enblend&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We are then ready to compile. The CXXFLAGS &amp;lt;tt&amp;gt;--param inline-unit-growth=60&amp;lt;/tt&amp;gt; is a workaround for x86_64 systems, Feb 2009. If you have an SMP machine and you're building a recent version, &amp;lt;tt&amp;gt;--disable-image-cache&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;--enable-openmp&amp;lt;/tt&amp;gt; will speed up enblend/enfuse massively but may cause segmentation faults; in that case you will be better off with &amp;lt;tt&amp;gt;--enable-image-cache&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;--disable-openmp.&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;-march=native&amp;lt;/tt&amp;gt; is also beneficial and -O2 is better than -O3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make --makefile=Makefile.scm&lt;br /&gt;
CXXFLAGS=&amp;quot;--param inline-unit-growth=60 -march=native -O2&amp;quot; ./configure --disable-image-cache --enable-openmp&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second make step can be very long and memory consuming. Make sure you have enough swap space, and go get a healthy snack while the computer is compiling.&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing, what machine/operating system, the revision checked out from CVS, and all other relevant information.&lt;br /&gt;
&lt;br /&gt;
You are then ready to install with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install zlib1g zlib1g-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On older distributions, zlib1g and zlib1g-dev may not be found. In that case, the same library may be available with the names lib64z1 and lib64z1-dev.&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the future there is no need to get the whole source again. Just issue the following commands to bring your source up to date:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd libpano13&lt;br /&gt;
svn up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now start the building process:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./bootstrap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Hugin ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
First we need to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example) and get the dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev \&lt;br /&gt;
  gettext libwxgtk2.8-dev libexiv2-dev libimage-exiftool-perl libglew-dev liblapack-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fetch the Source Code from SVN ===&lt;br /&gt;
&lt;br /&gt;
Next we download Hugin from SVN. But which Hugin? There are many [http://svnbook.red-bean.com/en/1.1/ch04.html#svn-ch-4-sect-1 branches] in SVN. Also SVN keeps track of every single change (revision) in time, so we can download a branch in its state at a specific point in time. For example &amp;lt;code&amp;gt;-r 4008 https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/&amp;lt;/code&amp;gt; will download the trunk branch at the point in time when revision [http://hugin.svn.sourceforge.net/viewvc/hugin?view=rev&amp;amp;revision=4008 4008] was committed, which happens to be Tue Jul 7 22:07:54 2009 UTC. It also happens to be the same as the 0.8.0 release. For a list of branches and revisions that build well, refer to these [http://wiki.panotools.org/Development_of_Open_Source_tools#Specific_revisions lists]. There is no guarantee that a particular branch and/or revision builds and/or performs as expected.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co -r 4061 https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/tags/hugin-2009.07.1/ hugin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you know what you are doing, you can replace /hugin-2009.07.1/ with another branch; and you can omit the -r and get the last revision of that branch.&lt;br /&gt;
&lt;br /&gt;
In the future there is no need to get the whole source again. Just issue the following commands to bring your source up to date:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd hugin&lt;br /&gt;
svn up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Set the Build Environment ===&lt;br /&gt;
&lt;br /&gt;
Next we set up the build environment using cmake.&lt;br /&gt;
&lt;br /&gt;
If you compiled and installed libpano to a non standard location set the variables CMAKE_INCLUDE_PATH and CMAKE_LIBRARY_PATH to point to your install location's include and lib directories.&lt;br /&gt;
&lt;br /&gt;
If you are building for distribution, you want to set CMAKE_INSTALL_PREFIX=/usr&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir hugin-build&lt;br /&gt;
cd hugin-build&lt;br /&gt;
cmake ../hugin -DENABLE_LAPACK=YES -DCPACK_BINARY_DEB:BOOL=ON -DCPACK_BINARY_NSIS:BOOL=OFF \&lt;br /&gt;
-DCPACK_BINARY_RPM:BOOL=OFF -DCPACK_BINARY_STGZ:BOOL=OFF -DCPACK_BINARY_TBZ2:BOOL=OFF \&lt;br /&gt;
-DCPACK_BINARY_TGZ:BOOL=OFF -DCPACK_BINARY_TZ:BOOL=OFF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build and Install ===&lt;br /&gt;
&lt;br /&gt;
Finally, we use make to build the code and package it, and dpkg to install it. Look for the version number in the .deb file created and edit the lines below accordingly: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make package&lt;br /&gt;
ls *.deb&lt;br /&gt;
sudo dpkg -i hugin-0000.00.0-Linux.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important:''' the package does not track dependencies yet, so it likely to fail on machines others than yours.&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
== Autopano-sift-C ==&lt;br /&gt;
&lt;br /&gt;
Pre-Requisites:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml2-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk/ autopano-sift-C&lt;br /&gt;
cd autopano-sift-C&lt;br /&gt;
cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Match-n-shift ==&lt;br /&gt;
&lt;br /&gt;
Match-n-shift is yet an other Autopano-SIFT replacement. It comes in a bundle with pto file manipulation perl libraries and a rich selection of other tools that use nona, enblend, ImageMagick among other things. To use match-n-shift, you need to install at least the [http://search.cpan.org/dist/Panotools-Script/ Panotools::Script] library and some other perl modules. It requires:&lt;br /&gt;
&lt;br /&gt;
*  Image::Size 2.9&lt;br /&gt;
*  Storable 2.0&lt;br /&gt;
*  Image::ExifTool 6&lt;br /&gt;
&lt;br /&gt;
Chances are that you do not need to update Storable which is a standard perl module. To check the version of installed versions of these modules, write these lines to the command prompt:&lt;br /&gt;
&lt;br /&gt;
  perl -MStorable -le 'print Storable-&amp;gt;VERSION;'&lt;br /&gt;
  perl -MImage::Size -le 'print Image::Size-&amp;gt;VERSION;'&lt;br /&gt;
  perl -MImage::ExifTool -le 'print Image::ExifTool-&amp;gt;VERSION;'&lt;br /&gt;
&lt;br /&gt;
There are various ways to install or upgrade these modules. Ubuntu has binary packages for many perl modules, you can skip the CPAN installation below and type:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install libimage-size-perl libimage-exiftool-perl&lt;br /&gt;
&lt;br /&gt;
Alternatively, perl is an interpreted language and these modules are pure perl, so installing from source is an easy thing.&lt;br /&gt;
&lt;br /&gt;
The best place to install perl modules is directly from a CPAN archive. CPAN is short for Comprehensive Perl Archive Network. The program to interact with CPAN comes with all perl installations. Start it by running:&lt;br /&gt;
&lt;br /&gt;
  sudo cpan&lt;br /&gt;
&lt;br /&gt;
If this is your first time running the program you will be asked a number of questions (you can safely accept the suggested values). Last question lets you select a number of CPAN mirrors nearest to you.&lt;br /&gt;
&lt;br /&gt;
When all is done, you can enter the install commands after the 'cpan&amp;gt;' prompt:&lt;br /&gt;
&lt;br /&gt;
  install Image::Size Storable Image::ExifTool&lt;br /&gt;
&lt;br /&gt;
Answer 'y' to any question of dependencies and wait for install to complete. 'exit' leaves the cpan shell.&lt;br /&gt;
&lt;br /&gt;
Next, you need to retrieve and install the Panotools-Script collection&lt;br /&gt;
of perl libraries (Panotools::Script) and programs that use them -&lt;br /&gt;
including match-n-shift:&lt;br /&gt;
&lt;br /&gt;
  svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/Panotools-Script  Panotools-Script&lt;br /&gt;
  cd Panotools-Script&lt;br /&gt;
  perl Makefile.PL&lt;br /&gt;
  make&lt;br /&gt;
  make test&lt;br /&gt;
  sudo make install&lt;br /&gt;
&lt;br /&gt;
Just to confuse you, you can also ignore everything above and just install Panotools::Script and all its dependencies from CPAN. From command line, type:&lt;br /&gt;
&lt;br /&gt;
  sudo cpan Panotools::Script&lt;br /&gt;
&lt;br /&gt;
You can run match-n-shift from command line using the same parameters as autopano-c-complete.sh or you can modify hugin to run it for you:&lt;br /&gt;
&lt;br /&gt;
* start Hugin&lt;br /&gt;
* navigate the menu File to Preferences&lt;br /&gt;
* In the Preferences window, open the Autopano tab&lt;br /&gt;
* Select Autopano -&amp;gt; Autopano-SIFT&lt;br /&gt;
* tick the checkbox for Use alternative Autopano-SIFT program&lt;br /&gt;
* enter the full path to match-n-shift (/usr/local/bin/match-n-shift) in the Autopano-SIFT field&lt;br /&gt;
* enter the following string in the Arguments field:&lt;br /&gt;
 -f %f -v %v -c -p %p -o %o %i&lt;br /&gt;
&lt;br /&gt;
== MatchPoint ==&lt;br /&gt;
&lt;br /&gt;
MatchPoint is a next generation CP generator. The result of a GSoC2007 project, it is still very experimental. Experience reports needed. Read more [http://groups.google.com/group/hugin-ptx/browse_thread/thread/cba2b2ce94dd9054 here]&lt;br /&gt;
&lt;br /&gt;
Matchpoint is now located inside the main hugin source tree, no need to checkout https://hugin.svn.sourceforge.net/svnroot/hugin/gsoc07_featuredetection anymore. It is compiled together with hugin, but not installed by default.&lt;br /&gt;
&lt;br /&gt;
* copy the MatchPoint executable into /usr/local/bin manually&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp src/matchpoint/matchpoint /usr/local/bin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* edit /usr/local/bin/autopano-c-complete.sh (do it with sudo to have the necessary permission)&lt;br /&gt;
** line 79: replace the .key.gz extension with .key (not sure if matchpoint supports compression)&lt;br /&gt;
** lines 83 and 88: replace '''generatekeys &amp;quot;$arg&amp;quot; $FILENAME $SIZE''' with '''matchpoint &amp;quot;$arg&amp;quot; $FILENAME''' (not sure if the size option or any other options of the original generatekeys are applicable)&lt;br /&gt;
&lt;br /&gt;
== Pan-o-matic ==&lt;br /&gt;
&lt;br /&gt;
Yet another control point generator [http://aorlinsk2.free.fr/panomatic/?p=home Home Page]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libboost-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download [http://aorlinsk2.free.fr/panomatic/download.php?d=7&amp;amp;v=0.9.4 Panomatic 0.9.4 bz2]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar xvfj panomatic-0.9.4-src.tar.bz2&lt;br /&gt;
cd panomatic-0.9.4&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use Pano-o-matic, open Hugin&lt;br /&gt;
&lt;br /&gt;
* In File &amp;gt; Preferences &amp;gt; Autopano :&lt;br /&gt;
* Select Autopano-SIFT&lt;br /&gt;
* Check &amp;quot;Use alternative autopaon-SIFT program&amp;quot;&lt;br /&gt;
* Choose the path to the binary ( /usr/local/bin )&lt;br /&gt;
* In Arguments, put : -o %o %i&lt;br /&gt;
&lt;br /&gt;
== Exiftool ==&lt;br /&gt;
&lt;br /&gt;
ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in image, audio and video files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get purge libimage-exiftool-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-7.83.tar.gz&lt;br /&gt;
tar -xzf Image-ExifTool-7.83.tar.gz&lt;br /&gt;
cd Image-ExifTool-7.83&lt;br /&gt;
perl Makefile.PL&lt;br /&gt;
make test&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Panoglview ==&lt;br /&gt;
&lt;br /&gt;
PanoGLView is an OpenGL hardware accelerated interactive immersive viewer for equirectangular images.&lt;br /&gt;
&lt;br /&gt;
Pre-Requisites:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install wx-common&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/panoglview/trunk panoglview&lt;br /&gt;
cd panoglview&lt;br /&gt;
./bootstrap&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FreePV ==&lt;br /&gt;
&lt;br /&gt;
Pre-Requisites:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install cmake make pkg-config g++ mozilla-dev freeglut-dev zlib1g-dev libjpeg-dev libxext-dev libxmu-dev \&lt;br /&gt;
x11proto-xf86vidmode-dev libxxf86vm-dev libnspr4-dev libxml2-dev libpng12-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://freepv.svn.sourceforge.net/svnroot/freepv/freepv/trunk/ freepv&lt;br /&gt;
cd freepv&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes for Packagers ==&lt;br /&gt;
* before releasing a tarball, upgrade the Changelog with svn2cl&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn up&lt;br /&gt;
$ svn2cl&lt;br /&gt;
$ svn ci&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Development_of_Open_Source_tools</id>
		<title>Development of Open Source tools</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Development_of_Open_Source_tools"/>
				<updated>2009-09-08T18:48:59Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Add category Hugin tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Panorama Related Open Source tools ==&lt;br /&gt;
&lt;br /&gt;
* [[Hugin]]&lt;br /&gt;
* [[Enblend]]&lt;br /&gt;
* [[Enfuse]]&lt;br /&gt;
* [[Panotools]]&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
&lt;br /&gt;
=== Why contribute? ===&lt;br /&gt;
&lt;br /&gt;
The above tools are free for you (and every other user), because volunteers have contributed their skills and time. They provide immense value to the whole community. They provide value to you, don't they? If they do, please consider contributing something back.&lt;br /&gt;
&lt;br /&gt;
=== How to contribute? ===&lt;br /&gt;
&lt;br /&gt;
Join the [http://groups.google.com/group/hugin-ptx hugin-ptx] mailing list to find out what is going on at the moment and how you can help.&lt;br /&gt;
&lt;br /&gt;
If you don't have time, you are most likely a busy professional. You can donate money to [http://sourceforge.net/project/project_donations.php?group_id=77506 Hugin], [http://sourceforge.net/project/project_donations.php?group_id=123407 Enblend/Enfuse] on their project pages through Sourceforge.&lt;br /&gt;
&lt;br /&gt;
At the time of updating this text (9-Jun-2009) the building process of hugin is robust and there are more and more people mastering it on the different platform. The 0.8.0 release cycle is coming to an end. Beyond that, a few exciting features such as nona-gpu are in line for future releases and we expect that the Google Summer of Code 2009 will add new features as well.&lt;br /&gt;
&lt;br /&gt;
'''Don't be afraid of failures in the building process'''&lt;br /&gt;
* You may encounter errors when following the build processes linked below is high. Don't worry such errors will not compromise your computer.&lt;br /&gt;
* The failure of the building process is actually your success! Every time you report such a failure, with as much detail as possible to how it came about, you are contributing to the progress toward a stable release.&lt;br /&gt;
&lt;br /&gt;
If you are fluent in other languages than English, you can help translate Hugin. There's a [[Hugin translation guide]] to help you get started or help when you run into translation problems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processes ==&lt;br /&gt;
&lt;br /&gt;
The goal of the new release process is to decouple the development process from the other processes, avoiding artificial slow downs (trunk freezes).&lt;br /&gt;
&lt;br /&gt;
Hugin uses an asynchronous development process based on Subversion, which means that:&lt;br /&gt;
* trunk never freezes, and committers can continuously add improvements there&lt;br /&gt;
* anybody can branch out a development codeline from trunk to branches/ to implement major changes separately without disrupting the continuous flow.&lt;br /&gt;
* once a months, developers are polled as to whether it is worth issuing a release. if there is enough support and one person volunteers as release manager, that person branches out a release codeline from trunk. that release codeline is equivalent to a trunk freeze in traditional synchronous development. only bug fixes and translations should go into that codeline. Tarballs are to be released from release codelines only.&lt;br /&gt;
&lt;br /&gt;
=== Development ===&lt;br /&gt;
&lt;br /&gt;
* if you have a development branch, nothing changes. you can keep working on it as you please.&lt;br /&gt;
* if you are working on trunk there is an '''improvement''': no trunk freeze.&lt;br /&gt;
* you're encouraged to continue with your usual pace of bug fixing and development.&lt;br /&gt;
* to do things perfectly: commit all your changes to trunk; and those that are bugfixes also to the release codeline.&lt;br /&gt;
* if you forget about it and commit only to one codeline, do not worry. The release manager takes responsibility to port fixes from trunk to the release codeline or the other way around as the need arises.&lt;br /&gt;
* try not to add new features to the release codeline&lt;br /&gt;
&lt;br /&gt;
=== Translation ===&lt;br /&gt;
&lt;br /&gt;
* same as development&lt;br /&gt;
* please do not run extract-messages.sh while a release process is going on&lt;br /&gt;
&lt;br /&gt;
=== Debugging ===&lt;br /&gt;
&lt;br /&gt;
Working through [[Hugin Trackers]]&lt;br /&gt;
&lt;br /&gt;
Clearing the bugs in the sourceforge bug tracker is an iterative process critical to the release cycle. Feedback from tester is essential for this process. Please take the time to check if the older bugs apply to a current snapshot, if you like to see a release soon.&lt;br /&gt;
&lt;br /&gt;
We'll be releasing frequent snapshots until a release candidate emerges. This is an iterative process:&lt;br /&gt;
# '''Volunteers''' check the release-critical bugs listed in the [http://sourceforge.net/tracker/?group_id=77506&amp;amp;atid=550441&amp;amp;status=1 bug tracker] (sort open bugs by priority) against the most recent [http://panospace.wordpress.com/downloads/ snapshots] (scroll down on that page).&lt;br /&gt;
#* Install the latest snapshot.&lt;br /&gt;
#* Try to reproduce the bug on your system.&lt;br /&gt;
#* If you find that the bug no longer occurs, chances are that it has been fixed. Close it (assuming you have the required access), or simply leave a note that it has been fixed (together with the SVN revision and the system used for testing).&lt;br /&gt;
#* If you reproduce the bug, leave a note to confirm that it is still actual. Note the SVN revision and the system used for testing. Post detailed instructions how to reproduce the crash. Provide a test case if you can.&lt;br /&gt;
#* Add any comments you have to the ticket in the bug tracker. Let the community know you have tested. The bug-tracker is like a mailing list or forum thread, don't be afraid to post.&lt;br /&gt;
#* If you don't want to open an account with Sourceforge, post your observations on the hugin-ptx mailing list. It is possible to post comments to the bug tracker anonymously, but this interrupts the vital flow of feedback between testers and developers. Anonymous bug reports are likely to be discarded.&lt;br /&gt;
# The '''developers''' fix the bugs identified in the tracker.&lt;br /&gt;
# The '''builders''' build new snapshots including the fixes.&lt;br /&gt;
&lt;br /&gt;
=== Development Codelines ===&lt;br /&gt;
&lt;br /&gt;
It is recommended to work separately on major changes and integrate them in the main codeline when they are ready. The currently open development branches are [http://hugin.svn.sourceforge.net/viewvc/hugin/hugin/branches/ listed] in the repository. If you want to work on a major new feature, ask for SVN write access and open yourself a branch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn cp https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk \&lt;br /&gt;
  https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/branches/NEW_DEVELOPMENT_BRANCH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The branch owners are strongly encouraged to regularly sync their branch with trunk, i.e. merge the changes that have occurred since the last sync (or branching) into their branch.&lt;br /&gt;
&lt;br /&gt;
When development is complete or has reached a milestone, it may be integrated it trunk. Before integrating in trunk it is recommended to:&lt;br /&gt;
* merge trunk's changes since the last sync into the branch&lt;br /&gt;
* test that the branch builds on the major supported plattforms&lt;br /&gt;
* test that the branch does not break existing functionality (unless the break is intended, e.g. when a new functionality replaces an existing one)&lt;br /&gt;
&lt;br /&gt;
When the development branch has fulfilled its purpose; is supreceded or has been abandoned, move it to the obsolete_branches in the repository&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn mv https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/branches/NEW_DEVELOPMENT_BRANCH \&lt;br /&gt;
  https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/obsolete_branches/NEW_DEVELOPMENT_BRANCH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Release ===&lt;br /&gt;
&lt;br /&gt;
Once a month the developers are polled if there is reason to issue a release. If there is enough support for releasing, one developer takes on the role of release manager and undertakes the following steps:&lt;br /&gt;
&lt;br /&gt;
The conditions to declare a release final are:&lt;br /&gt;
* the code builds on the major supported platforms (Ubuntu, Fedora, OSX, Windows)&lt;br /&gt;
* there is no (known) regression, unless intentional. This means: what worked with the previous release should work with the current one.&lt;br /&gt;
&lt;br /&gt;
The next Hugin is likely to be released when these [http://sourceforge.net/search/index.php?group_id=77506&amp;amp;search_summary=1&amp;amp;search_details=1&amp;amp;type_of_search=artifact&amp;amp;group_artifact_id%5b%5d=550441&amp;amp;status_id%5b%5d=1&amp;amp;priority%5b%5d=9&amp;amp;form_submit=Search bugs] will have been fixed.&lt;br /&gt;
&lt;br /&gt;
==== Branching Out For Release ====&lt;br /&gt;
&lt;br /&gt;
1. [[Hugin_translation_guide#Developer_info|Identify]] and add the new strings for translation.&lt;br /&gt;
&lt;br /&gt;
2. Branch out a new release-codeline (replace 2009.2 below with the appropriate version number. 2009 stands for the current year and 2 stands for the next even number in sequence, starting with 0 if the year has changed and this is the first release of the year).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn cp https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk \&lt;br /&gt;
  https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 \&lt;br /&gt;
  -m &amp;quot;Branching 2009.2 for release&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. In the new release-codeline bump up the version number, e.g.&lt;br /&gt;
&lt;br /&gt;
3.a. get the source&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 2009.2&lt;br /&gt;
$ cd 2009.2&lt;br /&gt;
$ gedit CMakeLists.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.b. edit the following lines in the top level CMakeLists.txt file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# version&lt;br /&gt;
set(V_MAJOR 2009)&lt;br /&gt;
set(V_MINOR 2)&lt;br /&gt;
set(V_PATCH 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.c. edit the Mac version number in mac//Version.xcconfig&lt;br /&gt;
&lt;br /&gt;
3.d. check the changes in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn ci&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. in trunk bump up to the next odd version number, e.g. 2009.3 in this example.&lt;br /&gt;
&lt;br /&gt;
4.a. get the source&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn co https://hugin.svn.sourceforge.net/svnroot/hugin/trunk trunk&lt;br /&gt;
$ cd trunk&lt;br /&gt;
$ gedit CMakeLists.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.b. edit the following lines in the top level CMakeLists.txt file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# version&lt;br /&gt;
set(V_MAJOR 2009)&lt;br /&gt;
set(V_MINOR 3)&lt;br /&gt;
set(V_PATCH 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.c. edit the Mac version number in mac//Version.xcconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.d. check the changes in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn ci&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keeping the Branch in Sync with Trunk ====&lt;br /&gt;
&lt;br /&gt;
Committers have no obligation to help maintaining the release branch. As a release manager, you want to stay on top of the changes in trunk and synchronize them into your branch if relevant. E.g. if change 4312 to trunk is relevant to the release and has not been applied, do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd trunk&lt;br /&gt;
$ svn up&lt;br /&gt;
$ svn diff -r 4311:4312 &amp;gt; 4312.patch&lt;br /&gt;
$ mv 4312.patc ../release&lt;br /&gt;
$ cd ../release&lt;br /&gt;
$ patch -p 0 &amp;lt; 4312.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then build, test, commit.&lt;br /&gt;
&lt;br /&gt;
==== Release ====&lt;br /&gt;
&lt;br /&gt;
1. Start with a clean checkout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 2009.2&lt;br /&gt;
$ cd 2009.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Update and commit the Changelog - this can be tricky since after the first branching there may already be significant differences between the trunk and the release codeline. What I found works best for me is to keep synchronized the relevant changes in trunk and in the release codeline; to create the Changelog from trunk; to edit out manually those parts of the trunk changelog that are not relevant to the release, and merge the trunk Changelog from the point of the last release to now into the current release.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ../trunk&lt;br /&gt;
$ svn up&lt;br /&gt;
$ svn2cl&lt;br /&gt;
$ cp Changelog ../2009.2/Changelog.trunk&lt;br /&gt;
$ gedit Changelog.trunk &amp;amp;&lt;br /&gt;
$ gedit Changelog&lt;br /&gt;
$ svn ci&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Note down the SVN revision number - the release equivalent in the repository is the releases/2009.2 branch at the revision that you noted down.&lt;br /&gt;
&lt;br /&gt;
4. Extract the relevant Changelog section for Sourceforge, Write a summary for the announcement.&lt;br /&gt;
&lt;br /&gt;
5. Create tarball&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ..&lt;br /&gt;
$ mkdir hugin-build&lt;br /&gt;
$ cd hugin-build&lt;br /&gt;
$ cmake ../hugin -DENABLE_LAPACK=YES -DCPACK_BINARY_DEB:BOOL=OFF -DCPACK_BINARY_NSIS:BOOL=OFF \&lt;br /&gt;
  -DCPACK_BINARY_RPM:BOOL=OFF -DCPACK_BINARY_STGZ:BOOL=OFF -DCPACK_BINARY_TBZ2:BOOL=OFF \&lt;br /&gt;
  -DCPACK_BINARY_TGZ:BOOL=ON -DCPACK_BINARY_TZ:BOOL=OFF&lt;br /&gt;
$ make package_source&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Build an rpm or deb (depending on your distro) from the tarball as a sanity check. Test what you can test.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ tar xvfz hugin-2009.2.0.tar.gz&lt;br /&gt;
$ mkdir hugin.build&lt;br /&gt;
$ cd hugin.build&lt;br /&gt;
$ cmake ../hugin-2009.2.0 -DENABLE_LAPACK=YES -DCPACK_BINARY_DEB:BOOL=ON -DCPACK_BINARY_NSIS:BOOL=OFF \&lt;br /&gt;
  -DCPACK_BINARY_RPM:BOOL=OFF -DCPACK_BINARY_STGZ:BOOL=OFF -DCPACK_BINARY_TBZ2:BOOL=OFF \&lt;br /&gt;
  -DCPACK_BINARY_TGZ:BOOL=OFF -DCPACK_BINARY_TZ:BOOL=OFF&lt;br /&gt;
$ make package&lt;br /&gt;
$ sudo dpkg -i hugin-2009.2.0-Linux.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Rename the tarball. For snapsnots, append _snapshotYYMMDD (replace YYMMDD with Year/Month/Day). For betas, append _betaX with X being an incremental number starting with 1. For release candidates, append _rcX with X being an incremental number starting with 1. Eventually the last candidate will be renamed &amp;quot;final&amp;quot; (by removing the appendix) after a few more tests prove that no further candidate is needed.&lt;br /&gt;
&lt;br /&gt;
8. Determine the tarball's checksum for the announcement notice&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sha1sum hugin-2009.2.0_beta1.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Upload the tarball to sourceforge, you need to be a 'Release tech' to do this.&lt;br /&gt;
&lt;br /&gt;
10. Tag the release. SVNNR is the revision number noted in 3. TAG_NAME is the same name as given to the tarball, e.g. hugin-2009.2.0_YYMMDD for snapshots and hugin-2009.2.0_rcN for release candidates.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ svn cp -r SVNNR https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 \&lt;br /&gt;
  https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/tags/TAG_NAME \&lt;br /&gt;
  -m &amp;quot;Branching 2009.2 for snapshot&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Paste the announcement into the Sourceforge news system. You need to be a 'News Editor' to do this. Only for the final release, tick the &amp;quot;Submit my news to the Slashdot.org Firehose&amp;quot; box.&lt;br /&gt;
&lt;br /&gt;
12. Mail the announcement to hugin-ptx. Only for the final release, mail it also to other relevant channels such as PanotoolsNG and QuickTimeVR.&lt;br /&gt;
&lt;br /&gt;
13. Wait for feedback and fixes. Volunteers may fix critical bugs. Test that the codeline builds on the major supported platforms. Test that no major functionality is broken. Repeats steps 1-11 as often as necessary.&lt;br /&gt;
&lt;br /&gt;
14. Once the codeline is final, port relevant &amp;quot;polish&amp;quot; commits that have not been ported yet to trunk (similar to merging a development codeline).&lt;br /&gt;
&lt;br /&gt;
15. later on if patches are required, apply them to /releases/2009.2, bump up V_PATCH, tag, and release.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
* There is only so much testing that can be done with our limited resources.&lt;br /&gt;
* Final releases are expected to build and work on the major supported platforms, however it is possible that a bug slips in due to lack of resources / systematic testing&lt;br /&gt;
* We may issue patch releases in case of security issues or other major issues reported after final release.&lt;br /&gt;
&lt;br /&gt;
=== Distribution ===&lt;br /&gt;
&lt;br /&gt;
* '''unchanged''': the Hugin project releases source code that is tested to build on the main supported platforms: Fedora, Ubuntu, Windows, OSX. It works on the developers machines. YMMV.&lt;br /&gt;
* Building and distributing binaries is left to the users communities. Once there are binaries of appropriate quality level for platforms that do not have a package manager (Windows and OSX) we add them as a courtesy to the SF archive - as usual &amp;quot;WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;quot;  See the GNU General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
== Download Test Build ==&lt;br /&gt;
&lt;br /&gt;
If you want to contribute testing but you don't want to go through the hassle of building the code, you can find the latest installer download for Windows and OSX [http://panospace.wordpress.com/downloads/ here].&lt;br /&gt;
&lt;br /&gt;
== Build your Own Test Builds ==&lt;br /&gt;
&lt;br /&gt;
If you are ready to go through the building process, here are the instructions.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em auto 1em 1em;background:#FFFF99;color:#FF0000;text-align:left;border: solid #FF3300;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! '''IMPORTANT:'''&lt;br /&gt;
! These builds are for your computer. If you decide to share them with others, be aware that you are subject to the GPL, and that the general public may need guidance regarding what you distribute. Read the information in the packaging and distribution section [[Development_of_Open_Source_tools#Packaging_and_Distribution | below]]. If you are unsure, ask on the hugin-ptx mailing list for advice before posting a file for download.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Goal ===&lt;br /&gt;
&lt;br /&gt;
an infrastructure for on-demand build and distribution of usable test-binaries for the most popular platforms. These builds are meant to enable users to test the newest features and report bugs. Ideally, on Pablo's demand all those who have a build chain will run it against the newest source code to produce the builds.&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
&lt;br /&gt;
# Experienced users will build the most current hugin and helpers (libpano, enblend, autopano, etc.) for the target platform of their choice, with support from coders.&lt;br /&gt;
# The build process will be documented for each of the supported platform.&lt;br /&gt;
# Users willing to spend some time learning how to build will reproduce the documented process.&lt;br /&gt;
# Power users will script and automate the building process.&lt;br /&gt;
# Users with packaging skills will package the builds for distribution (installers).&lt;br /&gt;
# The produced binaries/installers will be made available on the web.&lt;br /&gt;
&lt;br /&gt;
=== Specific revisions ===&lt;br /&gt;
&lt;br /&gt;
When building from the repository, some revisions have bugs. This process is meant to build the latest revision so that if the latest revision has bugs these can be identified and corrected. However sometimes these bugs can be more critical than other times. If you need a more or less working version of hugin, try applying the process to one of the following revisions. To stay on top of all changes, consult the revision logs.&lt;br /&gt;
&lt;br /&gt;
==== hugin ====&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! width=&amp;quot;80&amp;quot; |&lt;br /&gt;
Revision&lt;br /&gt;
! width=&amp;quot;300&amp;quot; |&lt;br /&gt;
Branch&lt;br /&gt;
! width=&amp;quot;500&amp;quot; |&lt;br /&gt;
Comments&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
4315&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
/hugin/releases/2009.2&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
2009.2_beta2&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
4008&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
/hugin/trunk&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
official 0.8.0 release = RC5&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
3465&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
/hugin/trunk&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
official 0.7.0 release&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* [[older hugin revision notes]]&lt;br /&gt;
* [http://hugin.svn.sourceforge.net/viewvc/hugin/hugin/trunk/?view=log revision log]&lt;br /&gt;
&lt;br /&gt;
==== libpano ====&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! width=&amp;quot;80&amp;quot; |&lt;br /&gt;
Revision&lt;br /&gt;
! width=&amp;quot;300&amp;quot; |&lt;br /&gt;
Branch&lt;br /&gt;
! width=&amp;quot;500&amp;quot; |&lt;br /&gt;
Comments&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
1036&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
trunk&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tentative fix for the error introduced in 1017&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
1017 +&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
trunk&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
builds but has a fatal error [http://groups.google.com/group/hugin-ptx/msg/d7beab28db615445]&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
1016&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
trunk&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
builds and works but messes up locale&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* [[older libpano revision notes]]&lt;br /&gt;
* [http://panotools.svn.sourceforge.net/viewvc/panotools?view=log revision log]&lt;br /&gt;
&lt;br /&gt;
==== enblend-enfuse ====&lt;br /&gt;
&lt;br /&gt;
Use of CVS has been discontinued in favor of Mercurial. The information below is stale.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! width=&amp;quot;100&amp;quot; |&lt;br /&gt;
Revision&lt;br /&gt;
! width=&amp;quot;500&amp;quot; |&lt;br /&gt;
Comments&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
2009-06-09&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
builds on ubuntu 9.04 x86. Note: for experimental use there is a temporary fork by Christoph Spiel in Launchpad.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
2008-02-07&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
builds on ubuntu 7.10 AMD64, OSX (used for snapshot package), Windows (used for first snapshot installer)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* [[older enblend revision notes]]&lt;br /&gt;
* [http://enblend.hg.sourceforge.net/hgweb/enblend/enblend/log revision log]&lt;br /&gt;
&lt;br /&gt;
=== Supported Platforms ===&lt;br /&gt;
&lt;br /&gt;
* If you don't find your preferred platform listed below '''and''' you are willing to contribute your time and skills to build hugin on it, feel free to add it to the table. We will accommodate any well supported platform in the regular release process.&lt;br /&gt;
* The persons marked in bold in the '''credits''' are known to have currently access to a build chain on the selected platform and can possibly produce a snapshot on request, usually within a few days. If you have contributed to the build system, feel free to add yourself here. &lt;br /&gt;
* '''Redundancy is good'''. If you have access to one of the listed platforms, please try to run the documented process below and report success to hugin-ptx. If you think you could do this on a regular basis, enter yourself in the list, in bold.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! width=&amp;quot;90&amp;quot; |&lt;br /&gt;
Platform&lt;br /&gt;
! width=&amp;quot;130&amp;quot; |&lt;br /&gt;
Supported Versions&lt;br /&gt;
! width=&amp;quot;60&amp;quot; |&lt;br /&gt;
Status&lt;br /&gt;
! width=&amp;quot;220&amp;quot; |&lt;br /&gt;
Process&lt;br /&gt;
! width=&amp;quot;400&amp;quot; |&lt;br /&gt;
Credits &lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
ubuntu&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
32bit/64bit&amp;lt;br&amp;gt;8.04 8.10 9.04&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Ubuntu | OK]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
* Sébastien Perez-Duarte&lt;br /&gt;
* Yuval Levy&lt;br /&gt;
* Régis B.&lt;br /&gt;
* Kornel Benko&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Fedora&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
32bit/64bit/ppc/ppc64&amp;lt;br&amp;gt;F-8 F-9&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Fedora | tbd]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
* Bruno Postle&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
OSX  &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
IntelMac/PowerPC&amp;lt;br&amp;gt;10.3 10.4 10.5&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
* [[Hugin Compiling OSX | &amp;quot;roll your own&amp;quot; draft]]&lt;br /&gt;
* [[Build_a_MacOSX_Universal_Hugin_bundle_with_Xcode | universal bundle for distribution draft]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
* Ippei Ukai&lt;br /&gt;
* JD Smith &lt;br /&gt;
* Daniel M. German&lt;br /&gt;
* Peter A. Crowley&lt;br /&gt;
* David Haberthür&lt;br /&gt;
* John Riley&lt;br /&gt;
* Roger Howard&lt;br /&gt;
* Harry van der Wolf&lt;br /&gt;
* Charlie Reiman&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Windows&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
32bit/64bit&amp;lt;br&amp;gt;XP/Vista&amp;lt;br&amp;gt;(64bit officially supported only after 0.8.0)&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
*[[Build Hugin for Windows with SDK | OK, SDK based]] 32bit only.&lt;br /&gt;
*[[Hugin Compiling Windows | draft, from scratch]]&lt;br /&gt;
*[[Hugin_SDK_(MSVC_2008) | build the SDK]] 32bit &amp;amp; 64bit&lt;br /&gt;
*[[Hugin_SDK_(MSVC_2008)_Patches | SDK 64bit patches]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
* Tom Sharpless&lt;br /&gt;
* John Navas&lt;br /&gt;
* Jean-Marc Paratte&lt;br /&gt;
* Yili Zhao&lt;br /&gt;
* Yuval Levy&lt;br /&gt;
* Guido Kohlmeyer&lt;br /&gt;
* Ad Huikeshoven (build automation)&lt;br /&gt;
* Ryan Sleevi (64 bit)&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
OpenSuse&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
32bit/64bit&amp;lt;br&amp;gt;10.2 10.3&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling OpenSuse | tbd]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
* Kornel Benko (10.3)&lt;br /&gt;
* Peter Suetterlin (10.2)&lt;br /&gt;
* Stephan Hegel (10.3 x86_64)&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
FreeBSD&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
32bit/64bit&amp;lt;br&amp;gt;6.3 7.0&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
n/a&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling FreeBSD | OK]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
* Vasil Dimov (6.2/i386)&lt;br /&gt;
* Vasil Dimov (7.0/amd64)&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Gentoo Linux&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
32bit&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin_Compiling_Gentoo | OK]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
* Thomas Pani&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
all platforms&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
a big thank you to '''Pablo d'Angelo''' for supporting all of those building efforts.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stati ===&lt;br /&gt;
&lt;br /&gt;
'''Build Chain'''&lt;br /&gt;
* tbd: looking for responsible&lt;br /&gt;
* OK: mostly automated build process ready on request&lt;br /&gt;
* unavailable: temporarily unavailable (e.g. responsible on holiday)&lt;br /&gt;
* HW-broken: the hardware is temporarily unavailable&lt;br /&gt;
* SW-broken: temporarily dysfunctional, working on a fix&lt;br /&gt;
* broken: nobody is working on a fix&lt;br /&gt;
* unsupported: has been dropped for lack of support&lt;br /&gt;
&lt;br /&gt;
'''Process'''&lt;br /&gt;
* tbd: status unknown&lt;br /&gt;
* auto: work as documented and has been automated to a reasonable extent&lt;br /&gt;
* OK: works as documented, could use automation / scripting&lt;br /&gt;
* draft: documented, needs validation / testing / cleaning&lt;br /&gt;
* incomplete: parts are missing (e.g. enblend, libpano)&lt;br /&gt;
* outdated: worked in the past but needs an update&lt;br /&gt;
* obsolete: nobody has the time to update&lt;br /&gt;
&lt;br /&gt;
== Packaging and Distribution ==&lt;br /&gt;
&lt;br /&gt;
Instructions for packaging binaries for distribution will follow. Some important points:&lt;br /&gt;
&lt;br /&gt;
=== Snapshots ===&lt;br /&gt;
* comply with the GPL&lt;br /&gt;
** join a text of the GPL in the distribution&lt;br /&gt;
** give access to the source code&lt;br /&gt;
** credit the authors&lt;br /&gt;
* label clearly the snapshot as such, with a reference to the build date and/or the SVN revision number&lt;br /&gt;
* edit the text / readme files that come with the snapshot&lt;br /&gt;
** indicate clearly that it is unstable, experimental software&lt;br /&gt;
** indicate where to find the latest version&lt;br /&gt;
** indicate that the advertised features might or might not work&lt;br /&gt;
&lt;br /&gt;
=== Release ===&lt;br /&gt;
* comply with the GPL&lt;br /&gt;
** join a text of the GPL in the distribution&lt;br /&gt;
** give access to the source code&lt;br /&gt;
** credit the authors&lt;br /&gt;
&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
When running through the building process documented above chances are that something goes wrong. While it is disappointing when the process ends in a flurry of cryptic error messages it is not harmful. This is the nature of software development and you are now part of it. There is still a lot of value in your experience and you can help improve the process and get closer to the hoped for software package. Please don't be ashamed that it did not work. This happens even to the most expert coders. Give the developers feedback on the hugin-ptx mailing list. Only with your feedback they can know that something goes wrong, and a well crafted feedback helps them find out quickly what went wrong and devise a solution. Be a part of the solution, not a part of the problem!&lt;br /&gt;
&lt;br /&gt;
To give good feedback, note down carefully all of this information while you are going through the instructions.&lt;br /&gt;
# details about your computer. CPU, operating system, other particularities&lt;br /&gt;
# the revision number of the code checked out with SVN (which appears at the end of the checkout process) or with CVS. Or, if you don't find a revision number, the date and time when you checked out the code.&lt;br /&gt;
# the last step / command you entered into the command line&lt;br /&gt;
# a copy of the last few lines displayed, from where you think the error messages started. Don't worry if you copy a couple of lines too many, it is better to give more lines than less lines.&lt;br /&gt;
&lt;br /&gt;
Even the standard feedback is good feedback. For those wishing to dig deeper, you can try&lt;br /&gt;
* to use &amp;quot;make VERBOSE=1&amp;quot; when building hugin.&lt;br /&gt;
* to do a debug build &amp;quot;cmake -DCMAKE_BUILD_TYPE=DEBUG&amp;quot; and use oprofile for profiling.&lt;br /&gt;
&lt;br /&gt;
[[Category:Community:Project]] [[Category:Software:Hugin]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enblend_reference_manual</id>
		<title>Enblend reference manual</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enblend_reference_manual"/>
				<updated>2009-03-04T09:58:36Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* {{NotTOC|2.2 }}Extended Options */   --depth not available in many versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{anchor|Top}} {{anchor|SEC_Top}}&lt;br /&gt;
&lt;br /&gt;
This manual is for [[Enblend]] (version 3.2-cvs, Thu Sep 25 07:35:10 UTC 2008). It was written by Dr. Christoph L. Spiel, converted partly from the HTML version and corrected using the PDF version both found on http://panorama.dyndns.org/EandE-documentation/&lt;br /&gt;
&lt;br /&gt;
{{anchor|Overview}} {{anchor|SEC1}}&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|1. }}Overview==&lt;br /&gt;
&lt;br /&gt;
Enblend overlays multiple TIFF images using the Burt-Adelson multiresolution spline algorithm.{{anchor|DOCF1}} [[#FOOT1|(1)]] This technique tries to make the seams between the input images invisible. The basic idea is that image features should be blended across a transition zone proportional in size to the spatial frequency of the features. For example, objects like trees and windowpanes have rapid changes in color. By blending these features in a narrow zone, you will not be able to see the seam because the eye already expects to see color changes at the edge of these features. Clouds and sky are the opposite. These features have to be blended across a wide transition zone because any sudden change in color will be immediately noticeable.&lt;br /&gt;
&lt;br /&gt;
Enblend expects each input file to have an alpha channel. The alpha channel should indicate the region of the file that has valid image data. Enblend compares the alpha regions in the input files to find the areas where images overlap. Alpha channels can be used to indicate to Enblend that certain portions of an input image should not contribute to the final image.&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX1}} {{anchor|IDX2}}&lt;br /&gt;
&lt;br /&gt;
Enblend does ''not'' align images. Use a tool as &amp;lt;code&amp;gt;hugin&amp;lt;/code&amp;gt; or PanoTools to do this. The TIFF files produced by these programs are exactly what Enblend is designed to work with. Sometimes these GUIs allow you to select feathering for the edges of your images. This treatment is detrimental to Enblend. Turn off feathering by deselecting it or setting the feather width to zero.&lt;br /&gt;
&lt;br /&gt;
Enblend blends the images in the order they are specified on the command line. You should order your images according to the way that they overlap, for example from left-to-right across the panorama. If you are making a multi-row panorama, we recommend blending each horizontal row individually, and then running Enblend a last time to blend all of the rows together vertically.&lt;br /&gt;
&lt;br /&gt;
Find out more about Enblend on its [http://enblend.sourceforge.net/ webpage].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Invocation}} {{anchor|SEC2}}&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|2. }}Invocation==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;enblend&amp;lt;/code&amp;gt; [&amp;lt;var&amp;gt;OPTIONS&amp;lt;/var&amp;gt;] &amp;lt;code&amp;gt;-o&amp;lt;/code&amp;gt; &amp;lt;var&amp;gt;OUTPUT-FILE&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;INPUT-FILES&amp;lt;/var&amp;gt;&amp;lt;small class=&amp;quot;enddots&amp;quot;&amp;gt;....&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assemble the sequence of images &amp;lt;var&amp;gt;INPUT-FILES&amp;lt;/var&amp;gt;&amp;lt;small class=&amp;quot;enddots&amp;quot;&amp;gt;....&amp;lt;/small&amp;gt; into &amp;lt;var&amp;gt;OUTPUT-FILE&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;menu&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot; |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | General options&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Memory and GPU control&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; |&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Mask generation control&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Common-Options}} {{anchor|SEC3}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|2.1 }}Common Options===&lt;br /&gt;
&lt;br /&gt;
Common options control some overall features of Enblend.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX3}} Pre-assemble non-overlapping images before each blending iteration.This overrides the default behavior which is to blend the images sequentially in the order given on the command line. Enblend will use fewer blending iterations, but it will do more work in each iteration.&lt;br /&gt;
; &amp;lt;code&amp;gt;--compression=&amp;lt;var&amp;gt;COMPRESSION&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX4}} Write a compressed output file.Depending on the output file format Enblend accepts different values for &amp;lt;var&amp;gt;COMPRESSION&amp;lt;/var&amp;gt;.&lt;br /&gt;
:; JPEG&lt;br /&gt;
:: &amp;lt;var&amp;gt;COMPRESSION&amp;lt;/var&amp;gt; is a JPEG quality level ranging from 0–100.&lt;br /&gt;
:; TIFF&lt;br /&gt;
:: &amp;lt;var&amp;gt;COMPRESSION&amp;lt;/var&amp;gt; is one of the keywords:&lt;br /&gt;
::; ‘NONE’&lt;br /&gt;
::: Do not compress. This is the default.&lt;br /&gt;
::; ‘DEFLATE’&lt;br /&gt;
::: {{anchor|IDX5}} {{anchor|IDX6}} Use the Deflate compression scheme also called ZIP-in-TIFF. Deflate is a lossless data compression algorithm that uses a combination of the LZ77 algorithm and Huffman coding.&lt;br /&gt;
::; ‘LZW’&lt;br /&gt;
::: {{anchor|IDX7}} {{anchor|IDX8}} Use Lempel-Ziv-Welch (LZW) adaptive compression scheme. LZW compression is lossless.&lt;br /&gt;
::; ‘PACKBITS’&lt;br /&gt;
::: {{anchor|IDX9}} {{anchor|IDX10}} Use PackBits compression scheme. PackBits is particular variant of run-length compression. It is lossless.&lt;br /&gt;
:; Any other format&lt;br /&gt;
:: Other formats like the PNG do not accept a &amp;lt;var&amp;gt;COMPRESSION&amp;lt;/var&amp;gt; setting.&lt;br /&gt;
; &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX11}} {{anchor|IDX12}} Print information on the available options and exit.&lt;br /&gt;
; &amp;lt;code&amp;gt;-l &amp;lt;var&amp;gt;LEVELS&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX13}} Use exactly this many &amp;lt;var&amp;gt;LEVELS&amp;lt;/var&amp;gt; for pyramid blending.This trades off quality of results for shorter execution time and lower memory usage. The default is to use as many levels as is possible given the size of the overlap regions. Enblend may still use a smaller number of levels if the geometry of the images demands.&lt;br /&gt;
; &amp;lt;code&amp;gt;-o &amp;lt;var&amp;gt;OUTPUT-FILE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX14}} Required option that specifies the name of the &amp;lt;var&amp;gt;OUTPUT-FILE&amp;lt;/var&amp;gt;.&lt;br /&gt;
; &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;--verbose&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX15}} {{anchor|IDX16}} Increase the verbosity of progress reporting. Giving one or more ‘-v’ options will make Enblend more verbose.&lt;br /&gt;
; &amp;lt;code&amp;gt;-V&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;--version&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX17}} {{anchor|IDX18}} Output information on the Enblend version and some configuration details like extra features that have been compiled in.&lt;br /&gt;
; &amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX19}} Blend around the ± 180° boundary. Useful for full 360° panoramas. Version 3.2-cvs of Enblend, the one described here, does not blend neither zenith nor or nadir, so you may still see some seams in these areas.&lt;br /&gt;
; &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX20}} Checkpoint partial results to the output file after each blending step.&lt;br /&gt;
; &amp;lt;code&amp;gt;-z&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX21}} This option has been deprecated. It is kept for backward compatability with older scripts. Use ‘--compression=LZW’ instead.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Extended-Options}} {{anchor|SEC4}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|2.2 }}Extended Options===&lt;br /&gt;
&lt;br /&gt;
Extended options control the image cache, the color model, and the cropping of the output image.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;-b &amp;lt;var&amp;gt;BLOCKSIZE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX22}} {{anchor|IDX23}} Set the &amp;lt;var&amp;gt;BLOCKSIZE&amp;lt;/var&amp;gt; in kilobytes (KB) of Enblend's image cache.This is the amount of data that Enblend will move to and from the disk in one go. The default is 2048KB, which should be ok for most systems.&lt;br /&gt;
; &amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX24}} {{anchor|IDX25}} {{anchor|IDX26}} Use the CIECAM02 color appearance model for blending colors.The input files should have embedded ICC profiles if this option is specified. If no ICC profile is present, Enblend will assume that the image uses the sRGB color space. The difference between this option and Enblend's default color blending algorithm is very slight and will be only noticeable when areas of different primary colors are blended together.&lt;br /&gt;
; &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;--depth=&amp;lt;var&amp;gt;DEPTH&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX27}} {{anchor|IDX28}} {{anchor|IDX29}} Force the number of bits per channel and the numeric format of the output image. All &amp;lt;var&amp;gt;DEPTH&amp;lt;/var&amp;gt; specifications are valid in lowercase as well as uppercase letters. This option is only available in specific builds of Enblend. For integer format use&lt;br /&gt;
:; &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;uint8&amp;lt;/code&amp;gt;&lt;br /&gt;
:: Unsigned 8 bit; range: 0..255&lt;br /&gt;
:; &amp;lt;code&amp;gt;int16&amp;lt;/code&amp;gt;&lt;br /&gt;
:: Signed 16 bit; range: -32768..32767&lt;br /&gt;
:; &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;uint16&amp;lt;/code&amp;gt;&lt;br /&gt;
:: Unsigned 16 bit; range: 0..65536&lt;br /&gt;
:; &amp;lt;code&amp;gt;int32&amp;lt;/code&amp;gt;&lt;br /&gt;
:: Signed 32 bit; range: -2147483648..2147483647&lt;br /&gt;
:; &amp;lt;code&amp;gt;32&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;uint32&amp;lt;/code&amp;gt;&lt;br /&gt;
:: Unsigned 32 bit; range: 0..4294967295 For floating-point format use&lt;br /&gt;
:; &amp;lt;code&amp;gt;r32&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;real32&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;&lt;br /&gt;
:: IEEE754 single precision floating-point, 32 bits wide, 24 bit significant&lt;br /&gt;
::* - Minimal normalized value:  1.2 ×  10&amp;lt;sup&amp;gt;-38&amp;lt;/sup&amp;gt;&lt;br /&gt;
::* - Epsilon:  1.2 ×  10&amp;lt;sup&amp;gt;-7&amp;lt;/sup&amp;gt;&lt;br /&gt;
::* - Maximal finite value:  3.4 ×  10&amp;lt;sup&amp;gt;38&amp;lt;/sup&amp;gt;&lt;br /&gt;
:; &amp;lt;code&amp;gt;r64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;real64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;double&amp;lt;/code&amp;gt;&lt;br /&gt;
:: IEEE754 double precision floating-point, 64 bits wide, 53 bit significant&lt;br /&gt;
::* - Minimal normalized value:  2.2 ×  10&amp;lt;sup&amp;gt;-308&amp;lt;/sup&amp;gt;&lt;br /&gt;
::* - Epsilon:  2.2 ×  10&amp;lt;sup&amp;gt;-16&amp;lt;/sup&amp;gt;&lt;br /&gt;
::* - Maximal finite value:  1.8 ×  10&amp;lt;sup&amp;gt;308&amp;lt;/sup&amp;gt;  If the requested &amp;lt;var&amp;gt;DEPTH&amp;lt;/var&amp;gt; is not supported by the output file format, Enblend warns and chooses the &amp;lt;var&amp;gt;DEPTH&amp;lt;/var&amp;gt; that matches best.&lt;br /&gt;
; &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX30}} {{anchor|IDX31}} {{anchor|IDX32}} {{anchor|IDX33}} Gimp (before version 2.0) and Cinepaint (see section [[#SEC10|Helpful Additional Programs]]) exhibit unusual behavior when loading images with unassociated alpha channels. Use option ‘-g’ to work around this problem. With this flag Enblend creates the output image with the associated alpha tag set, even though the image is really unassociated alpha.&lt;br /&gt;
; &amp;lt;code&amp;gt;--gpu&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX34}} Use the graphics card to accelerate some computations.This is an experimental feature that may not work on all systems. In this version of Enblend, 3.2-cvs, only mask optimization strategy 1 benefits from this option.&lt;br /&gt;
; &amp;lt;code&amp;gt;-f &amp;lt;var&amp;gt;WIDTH&amp;lt;/var&amp;gt;x&amp;lt;var&amp;gt;HEIGHT&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;-f &amp;lt;var&amp;gt;WIDTH&amp;lt;/var&amp;gt;x&amp;lt;var&amp;gt;HEIGHT&amp;lt;/var&amp;gt;+x&amp;lt;var&amp;gt;XOFFSET&amp;lt;/var&amp;gt;+y&amp;lt;var&amp;gt;YOFFSET&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX35}} {{anchor|IDX36}} Set the size of the output image manually to &amp;lt;var&amp;gt;WIDTH&amp;lt;/var&amp;gt;× &amp;lt;var&amp;gt;HEIGHT&amp;lt;/var&amp;gt;. Optionally specify the &amp;lt;var&amp;gt;X-OFFSET&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;Y-OFFSET&amp;lt;/var&amp;gt;, too. {{anchor|IDX37}} {{anchor|IDX38}} This option is useful when the input images are cropped TIFF files, such as those produced by &amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt;. The stitcher &amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt; is part of Hugin. See section [[#SEC10|Helpful Additional Programs]].&lt;br /&gt;
; &amp;lt;code&amp;gt;-m &amp;lt;var&amp;gt;CACHESIZE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX39}} {{anchor|IDX40}} Set the &amp;lt;var&amp;gt;CACHESIZE&amp;lt;/var&amp;gt; in megabytes (MB) of Enblend's image cache.This is the amount of memory Enblend will use for storing image data before swapping to disk. The default is 1024MB which is good for systems with 3–4gigabytes (GB) of RAM.&lt;br /&gt;
; &amp;lt;code&amp;gt;--visualize=&amp;lt;var&amp;gt;IMAGE-FILE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX41}} {{anchor|IDX42}} Create an &amp;lt;var&amp;gt;IMAGE-FILE&amp;lt;/var&amp;gt; that visualizes the mask optimization process.This shows Enblend's view of the overlap region and how it decided to route the seam line. If you are experiencing artifacts or unexpected output, it may be useful to include this visualization image in your bug report.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Mask-Generation-Options}} {{anchor|SEC5}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|2.3 }}Mask Generation Options===&lt;br /&gt;
&lt;br /&gt;
These options control the generation and the usage of masks.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;--coarse-mask&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX43}} {{anchor|IDX44}} {{anchor|IDX45}} Use a scaled-down version of the input images to create the seam line. This is the default.&lt;br /&gt;
; &amp;lt;code&amp;gt;--fine-mask&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX46}} {{anchor|IDX47}} {{anchor|IDX48}} Use the full-size images to create the seam line. This can be slow. Use ‘--fine-mask’ if you have very narrow overlap regions.&lt;br /&gt;
; &amp;lt;code&amp;gt;--load-mask=&amp;lt;var&amp;gt;IMAGE-FILE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX49}} {{anchor|IDX50}} {{anchor|IDX51}} Instead of generating a mask, use the one in &amp;lt;var&amp;gt;IMAGE-FILE&amp;lt;/var&amp;gt;.&lt;br /&gt;
; &amp;lt;code&amp;gt;--no-optimize&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX52}} {{anchor|IDX53}} {{anchor|IDX54}} Turn off seam line optimization. Combined with ‘--fine-mask’ this will produce the same type of mask as Enblend version 2.5.&lt;br /&gt;
; &amp;lt;code&amp;gt;--optimize&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX55}} {{anchor|IDX56}} {{anchor|IDX57}} Use a two-strategy approach to route the seam line around mismatches in the overlap region. This is the default.&lt;br /&gt;
; &amp;lt;code&amp;gt;--save-mask=&amp;lt;var&amp;gt;IMAGE-FILE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX58}} {{anchor|IDX59}} {{anchor|IDX60}} Save the generated mask to &amp;lt;var&amp;gt;IMAGE-FILE&amp;lt;/var&amp;gt;.Use this option if you wish to edit the location of the seam line by hand. This will give you a template of the right size that you can edit to make your changes. Later, use ‘--load-mask’ to blend the project with your custom seam line.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Understanding-Masks}} {{anchor|SEC6}}&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|3. }}Understanding Masks==&lt;br /&gt;
&lt;br /&gt;
A ''binary mask'' indicates for every pixel of an image if this pixel must be considered in further processing or ignored. For a ''weight mask'', the value of the mask determines how much the pixel contributes, zero again meaning “no contribution”.&lt;br /&gt;
&lt;br /&gt;
Masks arise in two places: as part of the input files and as separate files, showing the actual pixel weights prior to image blendung or fusion. We shall explore both occurrences in the next sections.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|SEC7}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|3.1 }}Masks in Input Files===&lt;br /&gt;
&lt;br /&gt;
Each of the input files for Enfuse and Enblend can contain its own mask. Both applications interpret them as binary masks no matter how many bits per image pixel they contain.&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX61}} {{anchor|IDX62}}&lt;br /&gt;
&lt;br /&gt;
Use ImageMagick's &amp;lt;code&amp;gt;identify&amp;lt;/code&amp;gt; or, for TIFF files, &amp;lt;code&amp;gt;tiffinfo&amp;lt;/code&amp;gt; to inquire quickly whether a file contains a mask. [[#SEC10|Helpful Additional Programs]] shows where to find these programs on the web.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 $ identify -format &amp;quot;%f %m %wx%h %r %q-bit&amp;quot; remapped-0000.tif&lt;br /&gt;
 remapped-0000.tif TIFF 800x533 DirectClassRGBMatte 8-bit&lt;br /&gt;
                                              ^^^^^ mask&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 $ tiffinfo remapped-0000.tif&lt;br /&gt;
 TIFF Directory at offset 0x1a398a (1718666)&lt;br /&gt;
   Subfile Type: (0 = 0x0)&lt;br /&gt;
   Image Width: 800 Image Length: 533&lt;br /&gt;
   Resolution: 150, 150 pixels/inch&lt;br /&gt;
   Position: 0, 0&lt;br /&gt;
   Bits/Sample: 8&lt;br /&gt;
   Sample Format: unsigned integer&lt;br /&gt;
   Compression Scheme: PackBits&lt;br /&gt;
   Photometric Interpretation: RGB color&lt;br /&gt;
   Extra Samples: 1&amp;amp;lt;unassoc-alpha&amp;amp;gt;            &amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt; mask&lt;br /&gt;
   Orientation: row 0 top, col 0 lhs&lt;br /&gt;
   Samples/Pixel: 4                           &amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt; R, G, B, and mask&lt;br /&gt;
   Rows/Strip: 327&lt;br /&gt;
   Planar Configuration: single image plane&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The “Matte” part of the image class and the “Extra Samples” line tell us that the file features a mask. Also, many interactive image manipulation programs show the mask as a separate channel, sometimes called “Alpha”. There, the white (high mask value) parts of the mask enable pixels and black (low mask value) parts suppress them.&lt;br /&gt;
&lt;br /&gt;
The multitude of terms all describing the concept of a mask is confusing.&lt;br /&gt;
&lt;br /&gt;
; Mask&lt;br /&gt;
: A mask defines a selection of pixels. A value of zero represents an unselected pixel. The maximum value (“white”) represents a selected pixel and the values between zero and the maximum are partially selected pixels. See [http://gimp-savvy.com/BOOK/index.html$$$$node42.html Gimp-Savy].&lt;br /&gt;
; Alpha Channel&lt;br /&gt;
: The alpha channel stores the transpacency value for each pixel, typically in the range from zero to one. A value of zero means the pixel is completely transparent, thus does not contribute to the image. A value of one on the other hand means the pixel is completely opaque.&lt;br /&gt;
; Matte&lt;br /&gt;
: The notion “matte” as used by ImageMagick refers to an inverted alpha channel, more precisely: 1 - alpha. See [http://www.imagemagick.org/Usage/channels/#trans ImageMagick] for further explanations.&lt;br /&gt;
&lt;br /&gt;
Enblend and Enfuse only consider pixels that have an associated mask value different from zero. If an input image does not have an alpha channel, Enblend warns and assumes a mask of all non-zero values, this is, it will use every pixel of the input image for fusion.&lt;br /&gt;
&lt;br /&gt;
Stitchers like &amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt; add a mask to their output images.&lt;br /&gt;
&lt;br /&gt;
Sometimes it is helpful to manually modify a mask before fusion. For example to suppress unwanted objects (insects and cars come into mind) that moved across the scene during the exposures. If the masks of all input images are black at a certain position, the output image will have a hole there.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|SEC8}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|3.2 }}Weight Mask Files===&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Tuning-Memory-Usage}} {{anchor|SEC9}}&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|4. }}Tuning Memory Usage==&lt;br /&gt;
&lt;br /&gt;
The default configuration of Enfuse assumes a system with 3–4GB of RAM.&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX63}}&lt;br /&gt;
&lt;br /&gt;
If Enfuse has been compiled with the C++-preprocessor symbol &amp;lt;code&amp;gt;ENBLEND_CACHE_IMAGES&amp;lt;/code&amp;gt; it uses its own image cache, whose size is user configurable with the option ‘-m &amp;lt;var&amp;gt;CACHE-SIZE&amp;lt;/var&amp;gt;’ (see section [[#SEC4|Extended Options]]). Furthermore, option ‘-b &amp;lt;var&amp;gt;BUFFER-SIZE&amp;lt;/var&amp;gt;’ (see section [[#SEC4|Extended Options]]) allows for fine-tuning the size of a single buffer inside the image cache. Note that &amp;lt;var&amp;gt;CACHE-SIZE&amp;lt;/var&amp;gt; is given in megabytes, whereas &amp;lt;var&amp;gt;BUFFER-SIZE&amp;lt;/var&amp;gt; is given in kilobytes.&lt;br /&gt;
&lt;br /&gt;
Usually the user lets the operating system take care of the memory management of all processes. However, a user of Enfuse might want to control the balance between the operating systems' Virtual Memory System and Enfuse's image cache for several reasons.&lt;br /&gt;
&lt;br /&gt;
* Paging in or out parts of a process' image runs at kernel level and thus can make user processes appear unresponsive or “jumpy”. The caching mechanism of Enfuse of course runs as a user process, which is why it has less detrimental effects on the system's overall responsiveness.&lt;br /&gt;
* Enfuse's image cache has been optimized for accesses to image data. And all algorithms in Enfuse have been carefully arranged to play nice with the image cache. An operating system's cache has no knowledge of these particular memory access patterns.&lt;br /&gt;
* The disk access of the operating system to the swap device has been highly optimized. Enfuse on the other hand uses the standard IO-layer which is a slower interface.&lt;br /&gt;
* Limiting the amount of image cache prevents Enfuse from eating up most or all RAM, thereby forcing all user applications into the swap device.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;CACHE-SIZE&amp;lt;/var&amp;gt; should be set in a way as to reconcile all of the above aspects even for the biggest data sets (this is many images and large images).&lt;br /&gt;
&lt;br /&gt;
Suggested cache- and buffer-sizes for different amounts of available RAM.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;float&amp;quot;&amp;gt;{{anchor|tab_003acache_002dsize_002dsettings}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! RAM&lt;br /&gt;
! ''CACHE-SIZE''&lt;br /&gt;
! ''BUFFER-SIZE''&lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
! MB&lt;br /&gt;
! MB&lt;br /&gt;
! KB&lt;br /&gt;
|-&lt;br /&gt;
| 4096&lt;br /&gt;
| 1024&lt;br /&gt;
| 2048&lt;br /&gt;
| default&lt;br /&gt;
|-&lt;br /&gt;
| 2048&lt;br /&gt;
| 512–1024&lt;br /&gt;
| 1024&lt;br /&gt;
|-&lt;br /&gt;
| 1024&lt;br /&gt;
| 256–512&lt;br /&gt;
| 256–512&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Table 4.1: Suggested cache-size settings '''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Helpful-Programs}} {{anchor|SEC10}}&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|5. }}Helpful Additional Programs==&lt;br /&gt;
&lt;br /&gt;
Several libraries and programs have proven helpful when working with Enfuse and Enblend.&lt;br /&gt;
&lt;br /&gt;
; '''Raw Image Conversion'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX64}} {{anchor|IDX65}} [http://www.cybercom.net/~dcoffin/dcraw/ DCRaw] is a universal raw-converter.&lt;br /&gt;
:* {{anchor|IDX66}} {{anchor|IDX67}} {{anchor|IDX68}} [http://ufraw.sourceforge.net/ UFRaw], a raw converter based on DCRaw, adds a GUI (&amp;lt;code&amp;gt;ufraw&amp;lt;/code&amp;gt;), versatile batch processing (&amp;lt;code&amp;gt;ufraw-batch&amp;lt;/code&amp;gt;), and some additional features like, for example, cropping, noise reduction with wavelets, and automatic lens error correction.&lt;br /&gt;
&lt;br /&gt;
; '''Image Alignment and Rendering'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX69}} {{anchor|IDX70}} [http://auricle.dyndns.org/ALE/ ALE], David Hilvert's anti-lamenessing engine for the real die-hard command-line users aligns, filters, and renders images.&lt;br /&gt;
:* {{anchor|IDX71}} {{anchor|IDX72}} [http://hugin.sourceforge.net/ Hugin] is a GUI that aligns and stitches images. {{anchor|IDX73}} {{anchor|IDX74}} {{anchor|IDX75}} It comes with several command line tools, like &amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt; to stitch panorama images, &amp;lt;code&amp;gt;align_image_stack&amp;lt;/code&amp;gt; to align overlapping images for HDR or create focus stacks, and &amp;lt;code&amp;gt;fulla&amp;lt;/code&amp;gt; to correct lens errors.&lt;br /&gt;
:* {{anchor|IDX76}} {{anchor|IDX77}} {{anchor|IDX78}} [http://panotools.sourceforge.net/ PanoTools] the successor of Helmut Dersch's [http://www.all-in-one.ee/~dersch/ original PanoTools] offers a set of command-line dirven applications to create panoramas. Most notable are &amp;lt;code&amp;gt;PTOptimizer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;PTmender&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; '''Image Manipulation'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX79}} {{anchor|IDX80}} [http://www.cinepaint.org/ CinePaint] is a branch of an early Gimp forked off at version 1.0.4. It sports much less features than the current Gimp, but offers 8bit, 16bit and 32bit color channels, HDR (for example floating-point TIFF, and OpenEXR), and a tightly integrated color management system.&lt;br /&gt;
:* {{anchor|IDX81}} {{anchor|IDX82}} The [www.gimp.org/ Gimp] is a general purpose image manipulation program. At the time of this writing it is still limited to images with only 8bits per channel.&lt;br /&gt;
:* {{anchor|IDX83}} {{anchor|IDX84}} [http://www.imagemagick.org/ ImageMagick] and its clone [http://www.graphicsmagick.org/ GraphicsMagick] are general purpose command-line driven image manipulation programs.&lt;br /&gt;
&lt;br /&gt;
; '''High Dynamic Range'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX85}} [http://www.openexr.com/ OpenEXR] offers libraries and some programs to work with the EXR HDR format.&lt;br /&gt;
:* {{anchor|IDX86}} [http://pfstools.sourceforge.net/ PFSTools] create, modify, and tonemap high-dynamic range images.&lt;br /&gt;
&lt;br /&gt;
; '''Libraries'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX87}} [http://www.ijg.org/ LibJPEG] is a library for handling the JPEG (JFIF) image format.&lt;br /&gt;
:* {{anchor|IDX88}} [http://www.libpng.org/pub/png/libpng.html LibPNG] is a library that handles the Portable Network Graphics (PNG) image format.&lt;br /&gt;
:* {{anchor|IDX89}} [http://www.remotesensing.org/libtiff/ LibTIFF] offers a library and utility programs to manipulate the ubiquitous Tagged Image File Format, TIFF. {{anchor|IDX90}} The nifty &amp;lt;code&amp;gt;tiffinfo&amp;lt;/code&amp;gt; command quickly inquires the properties of TIFF files.&lt;br /&gt;
&lt;br /&gt;
; '''Meta-Data Handling'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX91}} {{anchor|IDX92}} [http://www.sno.phy.queensu.ca/~phil/exiftool/ EXIFTool] reads and writes EXIF meta data. In particular it copies meta data from one image to another.&lt;br /&gt;
:* {{anchor|IDX93}} {{anchor|IDX94}} [http://www.littlecms.com/ LittleCMS] is the color management library used by Hugin, DCRaw, UFRaw, Enblend, and Enfuse. It supplies some binaries, too. &amp;lt;code&amp;gt;tifficc&amp;lt;/code&amp;gt;, an ICC color profile applier, is of particular interest.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Authors}} {{anchor|SEC11}}&lt;br /&gt;
&lt;br /&gt;
==A. Authors==&lt;br /&gt;
&lt;br /&gt;
* Andrew Mihal [mailto:acmihal@users.sourceforge.net acmihal@users.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Program-Index}} {{anchor|SEC13}}&lt;br /&gt;
&lt;br /&gt;
==Program Index==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Jump to:&lt;br /&gt;
|&lt;br /&gt;
[[#SEC13_0|'''A''']] [[#SEC13_1|'''C''']] [[#SEC13_2|'''D''']] [[#SEC13_3|'''E''']] [[#SEC13_4|'''F''']] [[#SEC13_5|'''G''']] [[#SEC13_6|'''H''']] [[#SEC13_7|'''I''']] [[#SEC13_8|'''L''']] [[#SEC13_9|'''N''']] [[#SEC13_10|'''O''']] [[#SEC13_11|'''P''']] [[#SEC13_12|'''T''']] [[#SEC13_13|'''U''']]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;index-pg&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Index Entry&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Section&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_0}} A&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX69|&amp;lt;code&amp;gt;ALE&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX74|&amp;lt;code&amp;gt;align_image_stack&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX70|&amp;lt;code&amp;gt;Anti-Lamenessing Engine&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_1}} C&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX79|&amp;lt;code&amp;gt;CinePaint&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX80|&amp;lt;code&amp;gt;cinepaint&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_2}} D&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX65|&amp;lt;code&amp;gt;dcraw&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX64|&amp;lt;code&amp;gt;DCRaw&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_3}} E&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX92|&amp;lt;code&amp;gt;exiftool&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX91|&amp;lt;code&amp;gt;EXIFTool&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_4}} F&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX75|&amp;lt;code&amp;gt;fulla&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_5}} G&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX82|&amp;lt;code&amp;gt;gimp&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX81|&amp;lt;code&amp;gt;Gimp&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX84|&amp;lt;code&amp;gt;GraphicsMagick&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_6}} H&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX1|&amp;lt;code&amp;gt;hugin&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX38|&amp;lt;code&amp;gt;Hugin&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX72|&amp;lt;code&amp;gt;hugin&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX71|&amp;lt;code&amp;gt;Hugin&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_7}} I&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX61|&amp;lt;code&amp;gt;identify&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC7|{{NotTOC|3.1 }}Masks in Input Files]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX83|&amp;lt;code&amp;gt;ImageMagick&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_8}} L&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX87|&amp;lt;code&amp;gt;LibJPEG&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX88|&amp;lt;code&amp;gt;LibPNG&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX89|&amp;lt;code&amp;gt;LibTIFF&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX93|&amp;lt;code&amp;gt;LittleCMS, TiffICC&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_9}} N&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX37|&amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX73|&amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_10}} O&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX85|&amp;lt;code&amp;gt;OpenEXR&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_11}} P&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX2|&amp;lt;code&amp;gt;PanoTools&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX76|&amp;lt;code&amp;gt;PanoTools&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX86|&amp;lt;code&amp;gt;PFSTools&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX78|&amp;lt;code&amp;gt;PTmender&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX77|&amp;lt;code&amp;gt;PTOptimizer&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_12}} T&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX94|&amp;lt;code&amp;gt;tifficc&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX62|&amp;lt;code&amp;gt;tiffinfo&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC7|{{NotTOC|3.1 }}Masks in Input Files]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX90|&amp;lt;code&amp;gt;tiffinfo&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC13_13}} U&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX66|&amp;lt;code&amp;gt;UFRaw&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX67|&amp;lt;code&amp;gt;ufraw&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX68|&amp;lt;code&amp;gt;ufraw-batch&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Jump to:&lt;br /&gt;
|&lt;br /&gt;
[[#SEC13_0|'''A''']] [[#SEC13_1|'''C''']] [[#SEC13_2|'''D''']] [[#SEC13_3|'''E''']] [[#SEC13_4|'''F''']] [[#SEC13_5|'''G''']] [[#SEC13_6|'''H''']] [[#SEC13_7|'''I''']] [[#SEC13_8|'''L''']] [[#SEC13_9|'''N''']] [[#SEC13_10|'''O''']] [[#SEC13_11|'''P''']] [[#SEC13_12|'''T''']] [[#SEC13_13|'''U''']]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Option-Index}} {{anchor|SEC14}}&lt;br /&gt;
&lt;br /&gt;
==Option Index==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;index-op&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Index Entry&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Section&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX3|&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX22|&amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC9|&amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC9|{{NotTOC|4. }}Tuning Memory Usage]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX24|&amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX43|&amp;lt;code&amp;gt;--coarse-mask&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX4|&amp;lt;code&amp;gt;--compression&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX27|&amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX28|&amp;lt;code&amp;gt;--depth&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX35|&amp;lt;code&amp;gt;-f&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX46|&amp;lt;code&amp;gt;--fine-mask&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX30|&amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX34|&amp;lt;code&amp;gt;--gpu&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX11|&amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX12|&amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX13|&amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX49|&amp;lt;code&amp;gt;--load-mask&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX39|&amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC9|&amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC9|{{NotTOC|4. }}Tuning Memory Usage]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX52|&amp;lt;code&amp;gt;--no-optimize&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX14|&amp;lt;code&amp;gt;-o&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX55|&amp;lt;code&amp;gt;--optimize&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX58|&amp;lt;code&amp;gt;--save-mask&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX17|&amp;lt;code&amp;gt;-V&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX15|&amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX16|&amp;lt;code&amp;gt;--verbose&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX18|&amp;lt;code&amp;gt;--version&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX41|&amp;lt;code&amp;gt;--visualize&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX19|&amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX20|&amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX21|&amp;lt;code&amp;gt;-z&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|General-Index}} {{anchor|SEC15}}&lt;br /&gt;
&lt;br /&gt;
==General Index==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Jump to:&lt;br /&gt;
|&lt;br /&gt;
[[#SEC15_0|'''A''']] [[#SEC15_1|'''B''']] [[#SEC15_2|'''C''']] [[#SEC15_3|'''D''']] [[#SEC15_4|'''E''']] [[#SEC15_5|'''F''']] [[#SEC15_6|'''G''']] [[#SEC15_7|'''H''']] [[#SEC15_8|'''I''']] [[#SEC15_9|'''L''']] [[#SEC15_10|'''M''']] [[#SEC15_11|'''O''']] [[#SEC15_12|'''P''']] [[#SEC15_13|'''S''']] [[#SEC15_14|'''U''']] [[#SEC15_15|'''W''']]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;index-cp&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Index Entry&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Section&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_0}} A&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX31|alpha channels, unassociated]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_1}} B&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|binary mask]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|{{NotTOC|3. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX29|bits per channel]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_2}} C&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX26|CIECAM02]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX33|Cinepaint]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX45|coarse mask]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX25|color appearance model]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX6|compression, deflate]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX8|compression, LZW]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX10|compression, packbits]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_3}} D&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX5|deflate compression]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_4}} E&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX63|&amp;lt;code&amp;gt;ENBLEND_CACHE_IMAGES&amp;lt;/code&amp;gt; (preprocessor symbol)]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC9|{{NotTOC|4. }}Tuning Memory Usage]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_5}} F&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX48|fine mask]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_6}} G&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC15|general index]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC15|General Index]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX32|Gimp]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_7}} H&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|helpful programs]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_8}} I&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX23|image cache, block size]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX40|image cache, cache size]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC15|index, general]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC15|General Index]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC14|index, option]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC14|Option Index]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC13|index, program]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC13|Program Index]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC7|input masks]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC7|{{NotTOC|3.1 }}Masks in Input Files]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC2|invocation]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC2|{{NotTOC|2. }}Invocation]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_9}} L&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX51|load mask]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX7|LZW compression]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_10}} M&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|mask, binary]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|{{NotTOC|3. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX44|mask, coarse]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX47|mask, fine]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX50|mask, load]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX59|mask, save]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX42|mask, visualization]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|mask, weight]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|{{NotTOC|3. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC7|masks, input files]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC7|{{NotTOC|3.1 }}Masks in Input Files]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|masks, undestanding]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|{{NotTOC|3. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC8|masks, weight]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC8|{{NotTOC|3.2 }}Weight Mask Files]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC9|memory, tuning usage of]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC9|{{NotTOC|4. }}Tuning Memory Usage]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_11}} O&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX53|optimize seam]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX56|optimize seam]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC14|option index]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC14|Option Index]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|options, common]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|options, extended]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|options, mask generation]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX36|output image, set size of]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC1|overview]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_12}} P&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX9|packbits compression]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC13|program index]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC13|Program Index]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|programs, helpful additional]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_13}} S&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX60|save mask]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX54|seam optimization]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#IDX57|seam optimization]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_14}} U&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|undestanding masks]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|{{NotTOC|3. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC15_15}} W&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|weight mask]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC6|{{NotTOC|3. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[#SEC8|weight masks]]&lt;br /&gt;
|&lt;br /&gt;
[[#SEC8|{{NotTOC|3.2 }}Weight Mask Files]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Jump to:&lt;br /&gt;
|&lt;br /&gt;
[[#SEC15_0|'''A''']] [[#SEC15_1|'''B''']] [[#SEC15_2|'''C''']] [[#SEC15_3|'''D''']] [[#SEC15_4|'''E''']] [[#SEC15_5|'''F''']] [[#SEC15_6|'''G''']] [[#SEC15_7|'''H''']] [[#SEC15_8|'''I''']] [[#SEC15_9|'''L''']] [[#SEC15_10|'''M''']] [[#SEC15_11|'''O''']] [[#SEC15_12|'''P''']] [[#SEC15_13|'''S''']] [[#SEC15_14|'''U''']] [[#SEC15_15|'''W''']]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|SEC_Foot}}&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&lt;br /&gt;
{{anchor|FOOT1}} [[#DOCF1|(1)]] Peter J. Burt and Edward H. Adelson, “A Multiresolution Spline With Application to Image Mosaics”, ACM Transactions on Graphics, Vol. 2, No. 4, October 1983, pages 217–236.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|SEC_Contents}}&lt;br /&gt;
&lt;br /&gt;
==Table of Contents==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;contents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{anchor|TOC1}} [[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
* {{anchor|TOC2}} [[#SEC2|{{NotTOC|2. }}Invocation]]&lt;br /&gt;
** {{anchor|TOC3}} [[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
** {{anchor|TOC4}} [[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
** {{anchor|TOC5}} [[#SEC5|{{NotTOC|2.3 }}Mask Generation Options]]&lt;br /&gt;
* {{anchor|TOC6}} [[#SEC6|{{NotTOC|3. }}Understanding Masks]]&lt;br /&gt;
** {{anchor|TOC7}} [[#SEC7|{{NotTOC|3.1 }}Masks in Input Files]]&lt;br /&gt;
** {{anchor|TOC8}} [[#SEC8|{{NotTOC|3.2 }}Weight Mask Files]]&lt;br /&gt;
* {{anchor|TOC9}} [[#SEC9|{{NotTOC|4. }}Tuning Memory Usage]]&lt;br /&gt;
* {{anchor|TOC10}} [[#SEC10|{{NotTOC|5. }}Helpful Additional Programs]]&lt;br /&gt;
* {{anchor|TOC11}} [[#SEC11|A. Authors]]&lt;br /&gt;
* {{anchor|TOC13}} [[#SEC13|Program Index]]&lt;br /&gt;
* {{anchor|TOC14}} [[#SEC14|Option Index]]&lt;br /&gt;
* {{anchor|TOC15}} [[#SEC15|General Index]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;br /&gt;
[[Category:Software:Platform:Windows]]&lt;br /&gt;
[[Category:Software:Platform:Mac OS X]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse_reference_manual</id>
		<title>Enfuse reference manual</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse_reference_manual"/>
				<updated>2009-03-04T09:57:51Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* {{NotTOC|2.2 }}Extended Options */ -d parameter not available in many versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{anchor|Overview}} {{anchor|SEC1}}&lt;br /&gt;
&lt;br /&gt;
This manual is for Enfuse (version 3.2-cvs, Thu Sep 25 07:35:21 UTC 2008). It was written by Dr. Christoph L. Spiel, converted partly from the HTML version, formulas mainly from the TeX original and corrected using the PDF version all found on http://panorama.dyndns.org/EandE-documentation/&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|1. }}Overview==&lt;br /&gt;
&lt;br /&gt;
Enfuse merges overlapping images using the Mertens-Kautz-Van Reeth exposure fusion algorithm.{{anchor|DOCF1}} [[#FOOT1|(1)]] This is a quick way for example to blend differently exposed images into a nice output image, without producing intermediate high-dynamic range (HDR) images that are then tonemapped to a viewable image. This simplified process often works much better than tonemapping algorithms.&lt;br /&gt;
&lt;br /&gt;
Enfuse can also be used to build extended depth-of-field (DOF) images by blending a focus stack.&lt;br /&gt;
&lt;br /&gt;
The idea is that pixels in the input images are weighted according to qualities such as, for example, proper exposure, good contrast, or high saturation. These weights determine how much a given pixel will contribute to the final image.&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX1}}&lt;br /&gt;
&lt;br /&gt;
A Burt-Adelson multiresolution spline blender{{anchor|DOCF2}} [[#FOOT2|(2)]] is used to combine the images according to the weights. The multiresolution blending ensures that transitions between regions where different images contribute are difficult to spot.&lt;br /&gt;
&lt;br /&gt;
Enfuse uses up to four criteria to judge the quality of a pixel, which [[#tab_003aweighting_002dcriteria|tab:weighting-criteria]] briefly describes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;float&amp;quot;&amp;gt;{{anchor|tab_003aweighting_002dcriteria}}&lt;br /&gt;
&lt;br /&gt;
; Exposure&lt;br /&gt;
: {{anchor|IDX2}} The exposure criteria favors pixels with luminance close to the middle of the range. These pixels are considered better exposed as those with high or low luminance levels.&lt;br /&gt;
; Saturation&lt;br /&gt;
: {{anchor|IDX3}} The saturation criteria favors highly-saturated pixels. (Note that saturation is only defined for color pixels.)&lt;br /&gt;
; Contrast&lt;br /&gt;
: {{anchor|IDX4}} The contrast criteria favors pixels inside a high-contrast neighborhood. Enfuse can use standard deviation or Laplacian magnitude or a blend of both as local contrast measure.&lt;br /&gt;
; Entropy&lt;br /&gt;
: {{anchor|IDX5}} The entropy criteria prefers pixels inside a high-entropy neighborhood. In addition, Enfuse allows the user to mitigate the problem of noisy images when using entropy weighting by setting a black threshold.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Table 1.1: Enfuse's four weighting criteria. '''&lt;br /&gt;
&lt;br /&gt;
For the concept of pixel weighting and details on the different weighting functions see [[#SEC8|Weighting Functions]].&lt;br /&gt;
&lt;br /&gt;
Adjust how much importance is given to each criterion by setting the weight parameters on the command line. For example, if you set ‘--wExposure=1.0’ and ‘--wSaturation=0.5’, Enfuse will favor well-exposed pixels over highly-saturated pixels when blending the source images. The effect of these parameters on the final result will not always be clear in advance. The quality of the result is subject to your artistic interpretation. Playing with the weights may or may not give a more pleasing result. The authors encourage you to experiment, perhaps using down-sized{{anchor|DOCF3}} [[#FOOT3|(3)]] or cropped images for speed.&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX6}} {{anchor|IDX7}}&lt;br /&gt;
&lt;br /&gt;
Enfuse expects but does not require each input image to have an alpha channel. By setting the alpha values of pixels to zero, users can manually remove those pixels from consideration when blending. If an input image lacks an alpha channel, Enfuse will issue a warning and continue assuming all pixels should contribute to the final output. Any alpha value other than zero is interpreted as “this pixel should contribute to the final image”.&lt;br /&gt;
&lt;br /&gt;
Find out more about Enfuse on its [http://enblend.sourceforge.net/ webpage].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Invocation}} {{anchor|SEC2}}&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|2. }}Invocation==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;enfuse&amp;lt;/code&amp;gt; [&amp;lt;var&amp;gt;OPTIONS&amp;lt;/var&amp;gt;] &amp;lt;code&amp;gt;-o&amp;lt;/code&amp;gt; &amp;lt;var&amp;gt;OUTPUT-FILE&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;INPUT-FILES&amp;lt;/var&amp;gt;&amp;lt;small class=&amp;quot;enddots&amp;quot;&amp;gt;....&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fuse the sequence of images &amp;lt;var&amp;gt;INPUT-FILES&amp;lt;/var&amp;gt;… into &amp;lt;var&amp;gt;OUTPUT-FILE&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;menu&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | General options&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Memory control and others&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Fusion Options]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Image fusion control&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Contrast and entropy selection configuration&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC7|{{NotTOC|2.5 }}Option Delimiters]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | How to separate options' arguments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Common-Options}} {{anchor|SEC3}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|2.1 }}Common Options===&lt;br /&gt;
&lt;br /&gt;
Common options control some overall features of Enfuse.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;--compression=&amp;lt;var&amp;gt;COMPRESSION&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX8}} {{anchor|IDX9}} {{anchor|IDX10}} Write a compressed output file.Depending on the output file format Enfuse accepts different values for &amp;lt;var&amp;gt;COMPRESSION&amp;lt;/var&amp;gt;.&lt;br /&gt;
:; JPEG&lt;br /&gt;
:: &amp;lt;var&amp;gt;COMPRESSION&amp;lt;/var&amp;gt; is a JPEG quality level ranging from 0–100.&lt;br /&gt;
:; TIFF&lt;br /&gt;
:: &amp;lt;var&amp;gt;COMPRESSION&amp;lt;/var&amp;gt; is one of the keywords:&lt;br /&gt;
::; ‘NONE’&lt;br /&gt;
::: Do not compress. This is the default.&lt;br /&gt;
::; ‘DEFLATE’&lt;br /&gt;
::: {{anchor|IDX11}} {{anchor|IDX12}} Use the Deflate compression scheme also called ZIP-in-TIFF. Deflate is a lossless data compression algorithm that uses a combination of the LZ77 algorithm and Huffman coding.&lt;br /&gt;
::; ‘LZW’&lt;br /&gt;
::: {{anchor|IDX13}} {{anchor|IDX14}} Use Lempel-Ziv-Welch (LZW) adaptive compression scheme. LZW compression is lossless.&lt;br /&gt;
::; ‘PACKBITS’&lt;br /&gt;
::: {{anchor|IDX15}} {{anchor|IDX16}} Use PackBits compression scheme. PackBits is a particular variant of run-length compression; it is lossless.&lt;br /&gt;
:; Any other format&lt;br /&gt;
:: Other formats like the PNG do not accept a &amp;lt;var&amp;gt;COMPRESSION&amp;lt;/var&amp;gt; setting.&lt;br /&gt;
; &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX17}} {{anchor|IDX18}} Print information on the available options then exit.&lt;br /&gt;
; &amp;lt;code&amp;gt;-l &amp;lt;var&amp;gt;LEVELS&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX19}} {{anchor|IDX20}} {{anchor|IDX21}} Use exactly this many &amp;lt;var&amp;gt;LEVELS&amp;lt;/var&amp;gt; for pyramid blending.This option allows to trades off quality of results for slightly shorter execution time and lower memory usage. The default is to use as many levels as possible given the size of the overlap region. Enfuse may still use a smaller number of levels if the geometry of the images demands it.&lt;br /&gt;
; &amp;lt;code&amp;gt;-o &amp;lt;var&amp;gt;OUTPUT-FILE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX22}} Required option that specifies the name of the &amp;lt;var&amp;gt;OUTPUT-FILE&amp;lt;/var&amp;gt;.&lt;br /&gt;
; &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;--verbose&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX23}} {{anchor|IDX24}} Increase the verbosity of progress reporting. Giving one or more ‘-v’ options will make Enfuse more verbose.&lt;br /&gt;
; &amp;lt;code&amp;gt;-V&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;--version&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX25}} {{anchor|IDX26}} Output information on the Enblend version and some configuration details like extra features that have been compiled in.&lt;br /&gt;
; &amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX27}} {{anchor|IDX28}} Blend around the ± 180° boundary. This is useful for full 360° panoramas.Version 3.2-cvs of Enfuse, the one described here, does not blend neither zenith nor or nadir, so you may still see some seams in these areas.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Extended-Options}} {{anchor|SEC4}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|2.2 }}Extended Options===&lt;br /&gt;
&lt;br /&gt;
Extended options control the image cache, the color model, and the cropping of the output image.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;-b &amp;lt;var&amp;gt;BLOCKSIZE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX29}} {{anchor|IDX30}} Set the &amp;lt;var&amp;gt;BLOCKSIZE&amp;lt;/var&amp;gt; in kilobytes (KB) of Enfuse's image cache.This is the amount of data that Enfuse will move to and from the disk in one go. The default is 2048KB, which should be ok for most systems.See [[#SEC25|Tuning Memory Usage]] for details.&lt;br /&gt;
; &amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX31}} {{anchor|IDX32}} {{anchor|IDX33}} Use the CIECAM02 color appearance model for blending colors.The input files should have embedded ICC profiles when this option is specified. If no ICC profile is present, Enfuse will assume that the image uses the sRGB color space. The difference between this option and Enfuse's default color blending algorithm is slight, and will be only noticeable when areas of different primary colors are blended together.&lt;br /&gt;
; &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;--depth=&amp;lt;var&amp;gt;DEPTH&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX34}} {{anchor|IDX35}} {{anchor|IDX36}} Force the number of bits per channel and the numeric format of the output image. All &amp;lt;var&amp;gt;DEPTH&amp;lt;/var&amp;gt; specifications are valid in lowercase as well as uppercase letters. This option is only available in specific builds of Enfuse. For integer format use&lt;br /&gt;
:; &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;uint8&amp;lt;/code&amp;gt;&lt;br /&gt;
:: Unsigned 8 bit; range: 0..255&lt;br /&gt;
:; &amp;lt;code&amp;gt;int16&amp;lt;/code&amp;gt;&lt;br /&gt;
:: Signed 16 bit; range: -32768..32767&lt;br /&gt;
:; &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;uint16&amp;lt;/code&amp;gt;&lt;br /&gt;
:: Unsigned 16 bit; range: 0..65536&lt;br /&gt;
:; &amp;lt;code&amp;gt;int32&amp;lt;/code&amp;gt;&lt;br /&gt;
:: Signed 32 bit; range: -2147483648..2147483647&lt;br /&gt;
:; &amp;lt;code&amp;gt;32&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;uint32&amp;lt;/code&amp;gt;&lt;br /&gt;
:: Unsigned 32 bit; range: 0..4294967295For floating-point format use&lt;br /&gt;
:; &amp;lt;code&amp;gt;r32&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;real32&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;&lt;br /&gt;
:: IEEE754 single precision floating-point, 32 bits wide, 24 bit significant&lt;br /&gt;
::* - Minimal normalized value:  1.2 ×  10&amp;lt;sup&amp;gt;-38&amp;lt;/sup&amp;gt;&lt;br /&gt;
::* - Epsilon:  1.2 ×  10&amp;lt;sup&amp;gt;-7&amp;lt;/sup&amp;gt;&lt;br /&gt;
::* - Maximal finite value:  3.4 ×  10&amp;lt;sup&amp;gt;38&amp;lt;/sup&amp;gt;&lt;br /&gt;
:; &amp;lt;code&amp;gt;r64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;real64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;double&amp;lt;/code&amp;gt;&lt;br /&gt;
:: IEEE754 double precision floating-point, 64 bits wide, 53 bit significant&lt;br /&gt;
::* - Minimal normalized value:  2.2 ×  10&amp;lt;sup&amp;gt;-308&amp;lt;/sup&amp;gt;&lt;br /&gt;
::* - Epsilon:  2.2 ×  10&amp;lt;sup&amp;gt;-16&amp;lt;/sup&amp;gt;&lt;br /&gt;
::* - Maximal finite value:  1.8 ×  10&amp;lt;sup&amp;gt;308&amp;lt;/sup&amp;gt;  If the requested &amp;lt;var&amp;gt;DEPTH&amp;lt;/var&amp;gt; is not supported by the output file format, Enblend warns and chooses the &amp;lt;var&amp;gt;DEPTH&amp;lt;/var&amp;gt; that matches best.&lt;br /&gt;
; &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX37}} {{anchor|IDX38}} Save alpha channel as “associated”. {{anchor|IDX39}} {{anchor|IDX40}} Gimp (before version 2.0) and CinePaint (see section [[#SEC45|Helpful Additional Programs]]) exhibit unusual behavior when loading images with unassociated alpha channels. Use option ‘-g’ to work around this problem. With this flag Enfuse will create the output image with the associated alpha tag set, even though the image is really unassociated alpha.&lt;br /&gt;
; &amp;lt;code&amp;gt;-f &amp;lt;var&amp;gt;WIDTH&amp;lt;/var&amp;gt;x&amp;lt;var&amp;gt;HEIGHT&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;-f &amp;lt;var&amp;gt;WIDTH&amp;lt;/var&amp;gt;x&amp;lt;var&amp;gt;HEIGHT&amp;lt;/var&amp;gt;+x&amp;lt;var&amp;gt;X-OFFSET&amp;lt;/var&amp;gt;+y&amp;lt;var&amp;gt;Y- OFFSET&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX41}} {{anchor|IDX42}} Set the size of the output image manually to &amp;lt;var&amp;gt;WIDTH&amp;lt;/var&amp;gt;× &amp;lt;var&amp;gt;HEIGHT&amp;lt;/var&amp;gt;. Optionally specify the &amp;lt;var&amp;gt;X-OFFSET&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;Y-OFFSET&amp;lt;/var&amp;gt;, too. {{anchor|IDX43}} {{anchor|IDX44}} This option is useful when the input images are cropped TIFF files, such as those produced by &amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt;. The stitcher &amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt; is part of Hugin. See section [[#SEC45|Helpful Additional Programs]].&lt;br /&gt;
; &amp;lt;code&amp;gt;-m &amp;lt;var&amp;gt;CACHESIZE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX45}} {{anchor|IDX46}} Set the &amp;lt;var&amp;gt;CACHESIZE&amp;lt;/var&amp;gt; in megabytes (MB) of Enfuse's image cache.This is the amount of memory Enfuse will use for storing image data before swapping to disk. The default is 1024MB, which is good for systems with 3–4gigabytes (GB) of RAM.See [[#SEC25|Tuning Memory Usage]] for details.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Fusion-Options}} {{anchor|SEC5}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|2.3 }}Fusion Options===&lt;br /&gt;
&lt;br /&gt;
Fusion options define the proportion to which each input image's pixel contributes to the output image.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;--wContrast=&amp;lt;var&amp;gt;WEIGHT&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX47}} Sets the relative &amp;lt;var&amp;gt;WEIGHT&amp;lt;/var&amp;gt; of high-contrast pixels. Default: 0.0. Valid range: 0 &amp;amp;le; WEIGHT &amp;amp;le; 1.  See [[#SEC14|Contrast Weighting]] and [[#SEC6|Option ContrastWindowSize]].&lt;br /&gt;
; &amp;lt;code&amp;gt;--wEntropy=&amp;lt;var&amp;gt;WEIGHT&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX48}} Sets the relative &amp;lt;var&amp;gt;WEIGHT&amp;lt;/var&amp;gt; of high entropy pixels. Default: 0.0. Valid range: 0 &amp;amp;le; WEIGHT &amp;amp;le; 1.   See [[#SEC21|Entropy Weighting]] and [[#SEC6|Options EntropyWindowSize and EntropyCutoff]].&lt;br /&gt;
; &amp;lt;code&amp;gt;--wExposure=&amp;lt;var&amp;gt;WEIGHT&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX49}} Sets the relative &amp;lt;var&amp;gt;WEIGHT&amp;lt;/var&amp;gt; of the well-exposedness criterion. Increasing this weight relative to the others will make well exposed pixels contribute more to the final output. Default: 1.0. Valid range: 0 &amp;amp;le; WEIGHT &amp;amp;le; 1 .   See section [[#SEC12|Exposure Weighting]].&lt;br /&gt;
; &amp;lt;code&amp;gt;--wMu=&amp;lt;var&amp;gt;MEAN&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX50}} Set the &amp;lt;var&amp;gt;MEAN&amp;lt;/var&amp;gt; (this is, the center) of the Gaussian exposure weight curve. Default: 0.5. Valid range: 0 &amp;amp;le; MEAN &amp;amp;le; 1 .Use this option to fine-tune exposure weighting (see section [[#SEC12|Exposure Weighting]]).&lt;br /&gt;
; &amp;lt;code&amp;gt;--wSaturation=&amp;lt;var&amp;gt;WEIGHT&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX51}} Sets the relative &amp;lt;var&amp;gt;WEIGHT&amp;lt;/var&amp;gt; of high-saturation pixels. Increasing this weight makes pixels with high saturation contribute more to the final output. Default: 0.2. Valid range: 0 &amp;amp;le; WEIGHT &amp;amp;le; 1. Saturation weighting is only defined for color images. See section [[#SEC13|Saturation Weighting]].&lt;br /&gt;
; &amp;lt;code&amp;gt;--wSigma=&amp;lt;var&amp;gt;STD-DEV&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX52}} Standard deviation &amp;lt;var&amp;gt;STD-DEV&amp;lt;/var&amp;gt; of the Gaussian exposure weight curve. Default: 0.2. Low numbers give less weight to pixels that are far from ‘--wMu’ and vice versa. Valid range: 0 &amp;amp;le; STD-DEV &amp;amp;le; 1 .Use this option to fine-tune exposure weighting (see section [[#SEC12|Exposure Weighting]]).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Expert-Options}} {{anchor|SEC6}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|2.4 }}Expert Options===&lt;br /&gt;
&lt;br /&gt;
Expert options influence the workings of Enfuse that require the user to read the manual before applying them successfully.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;--ContrastWindowSize=&amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX53}} Set the window &amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt; for local contrast analysis. The window will be a square of &amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt;× &amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt; pixels.For contrast analysis &amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt; values larger than 5 might result in a blurry composite image. Values of 3 and 5 have given good results on focus stacks.Valid range:   SIZE &amp;amp;ge; 3 .Given an even &amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt; Enfuse will automatically use the next odd number.See also [[#SEC5|Option –wContrast]] and ‘--HardMask’ below.&lt;br /&gt;
; &amp;lt;code&amp;gt;--EdgeScale=&amp;lt;var&amp;gt;EDGE-SCALE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;--EdgeScale=&amp;lt;var&amp;gt;EDGE-SCALE&amp;lt;/var&amp;gt;:&amp;lt;var&amp;gt;LCE-SCALE&amp;lt;/var&amp;gt;:&amp;lt;var&amp;gt;LCE-FACTOR&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX54}} A non-zero value for &amp;lt;var&amp;gt;EDGE-SCALE&amp;lt;/var&amp;gt; switches on the Laplacian-of-Gaussian (LoG) edge detection algorithm. &amp;lt;var&amp;gt;EDGE-SCALE&amp;lt;/var&amp;gt; is the radius of the Gaussian used in the search for edges. Default: 0 pixels.A positive &amp;lt;var&amp;gt;LCE-SCALE&amp;lt;/var&amp;gt; turns on local contrast enhancement (LCE) before the LoG edge detection. &amp;lt;var&amp;gt;LCE-SCALE&amp;lt;/var&amp;gt; is the radius of the Gaussian used in the enhancement step, &amp;lt;var&amp;gt;LCE-FACTOR&amp;lt;/var&amp;gt; is the weight factor (“strength”).&lt;br /&gt;
:&amp;lt;math&amp;gt;enhanced = (1 + LCE-FACTOR) * original - LCE-FACTOR * GaussianSmooth(original, LCE-SCALE)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;var&amp;gt;LCE­-SCALE&amp;lt;/var&amp;gt; defaults to 0 pixels and &amp;lt;var&amp;gt;LCE-FACTOR&amp;lt;/var&amp;gt; defaults to 0. Append ‘%’ to &amp;lt;var&amp;gt;LCE-SCALE&amp;lt;/var&amp;gt; to specify the radius as a percentage of &amp;lt;var&amp;gt;EDGE-SCALE&amp;lt;/var&amp;gt;. Append ‘%’ to &amp;lt;var&amp;gt;LCE-FACTOR&amp;lt;/var&amp;gt; to specify the weight as a percentage.&lt;br /&gt;
; &amp;lt;code&amp;gt;--EntropyCutoff=&amp;lt;var&amp;gt;LOWER-CUTOFF&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;--EntropyCutoff=&amp;lt;var&amp;gt;LOWER-CUTOFF&amp;lt;/var&amp;gt;:&amp;lt;var&amp;gt;UPPER-CUTOFF&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX55}} The first form defines the lower cutoff value below of which pixels are treated as pure black when calculating the local entropy. The second form also defines the upper cutoff value above of which pixels are treated as pure white.For color images &amp;lt;var&amp;gt;LOWER-CUTOFF&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;UPPER-CUTOFF&amp;lt;/var&amp;gt; are applied separately and independently to each channel.Defaults: 0% for &amp;lt;var&amp;gt;LOWER-CUTOFF&amp;lt;/var&amp;gt; and 100% for &amp;lt;var&amp;gt;UPPER-CUTOFF&amp;lt;/var&amp;gt;, this is, all pixels' values are taken into account. Append a ‘%’ to specify the cutoff relative to maximum pixel value in the source image (for example 255 or 65535). [[#fig_003aentropy_002dcutoff|fig:entropy-cutoff]] shows an example.&amp;lt;div class=&amp;quot;float&amp;quot;&amp;gt;{{anchor|fig_003aentropy_002dcutoff}} [[Image:entropy-cutoff.png|602px|entropy-cutoff]]&amp;lt;/div&amp;gt;'''Figure 2.1: Linear lightness &amp;lt;var&amp;gt;Y&amp;lt;/var&amp;gt; in comparison with an entropy-cutoff function for &amp;lt;var&amp;gt;LOWER-CUTOFF&amp;lt;/var&amp;gt; = 5% and &amp;lt;var&amp;gt;UPPER-CUTOFF&amp;lt;/var&amp;gt; = 90% which are rather extreme values. '''Note that a high &amp;lt;var&amp;gt;LOWER-CUTOFF&amp;lt;/var&amp;gt; value lightens the resulting image, as dark (and presumably noisy) pixels are averaged with ''equal'' weights. With ‘--EntropyCutoff=0’, the default, on the other hand, “noise” might be interpreted as high entropy and the noisy pixels get a high weight, which in turn renders the resulting image darker. Analogously, a low &amp;lt;var&amp;gt;UPPER-CUTOFF&amp;lt;/var&amp;gt; darkens the output image.&lt;br /&gt;
; &amp;lt;code&amp;gt;--EntropyWindowSize=&amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX56}} Window &amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt; for local entropy analysis. The window will be a square of &amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt;× &amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt; pixels.In the entropy calculation &amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt; values of 3 to 7 yield an acceptable compromise of the locality of the information and the significance of the local entropy value itself.Valid range:   SIZE &amp;amp;ge; 3 .Given an even &amp;lt;var&amp;gt;SIZE&amp;lt;/var&amp;gt; Enfuse will automatically use the next odd number.&lt;br /&gt;
; &amp;lt;code&amp;gt;--GrayProjector=&amp;lt;var&amp;gt;PROJECTOR&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX57}} {{anchor|IDX58}} Use gray projector &amp;lt;var&amp;gt;PROJECTOR&amp;lt;/var&amp;gt; for conversion of RGB images to grayscale masks:    R G B  &amp;amp;rightarrow; Y .   In version 3.2-cvs of Enfuse, the option is effective for exposure weighting contrast weighting. Default: ‘average’.Valid values for &amp;lt;var&amp;gt;PROJECTOR&amp;lt;/var&amp;gt; are:&lt;br /&gt;
; &amp;lt;code&amp;gt;average&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX59}} Average red, green, and blue channel with equal weights. This is the default and it often is a good projector for gamma = 1 data.&lt;br /&gt;
: &amp;lt;math&amp;gt;Y = {(R + G + B)}/{3}&amp;lt;/math&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;l-star&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX60}} {{anchor|IDX61}} {{anchor|IDX62}} Use the L-channel of the L*a*b*-conversion of the image as its grayscale representation. This is a useful projector for gamma = 1 data. It reveals minute contrast variations even in the shadows and the highlights. This projector is computationally expensive.See [[wikipedia:Lab_color_space]] for a detailed description of the Lab color space.&lt;br /&gt;
; &amp;lt;code&amp;gt;lightness&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX63}} Compute the lightness of each RGB pixel as in an Hue-Saturation-Lightness (HSL) conversion of the image.&lt;br /&gt;
: &amp;lt;math&amp;gt;Y = {(max(R, G, B) + min(R, G, B))}/{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX64}} Take the Value-channel of the Hue-Saturation-Value (HSV) conversion of the image.&lt;br /&gt;
: &amp;lt;math&amp;gt;Y = max(R, G, B)&amp;lt;/math&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;luminance&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX65}} Use the weighted average of the RGB pixel's channels as defined by CIE (“Commission Internationale de l'Éclairage”) and the JPEG standard.&lt;br /&gt;
: &amp;lt;math&amp;gt;Y = 0.30 * R + 0.59 * G + 0.11 * B&amp;lt;/math&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;channel-mixer:&amp;lt;var&amp;gt;RED-WEIGHT&amp;lt;/var&amp;gt;:&amp;lt;var&amp;gt;GREEN-WEIGHT&amp;lt;/var&amp;gt;:&amp;lt;var&amp;gt;BLUE-WEIGHT&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX66}} Weight the channels as given.&lt;br /&gt;
: &amp;lt;math&amp;gt;Y = RED-WEIGHT * R + GREEN-WEIGHT * G + BLUE-WEIGHT * B&amp;lt;/math&amp;gt;&lt;br /&gt;
: The weights are automatically normalized to one, so&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 --GrayProjector=channel-mixer:0.25:0.5:0.25&lt;br /&gt;
 --GrayProjector=channel-mixer:1:2:1&lt;br /&gt;
 --GrayProjector=channel-mixer:25:50:25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:all define the same mixer configuration.The three weights &amp;lt;var&amp;gt;RED-WEIGHT&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;GREEN-WEIGHT&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;BLUE-WEIGHT&amp;lt;/var&amp;gt; define the relative weight of the respective color channel. The sum of all weights is normalized to one.&lt;br /&gt;
; &amp;lt;code&amp;gt;--HardMask&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX67}} Force hard blend masks on the finest scale. This is the opposite flag of ‘--SoftMask’.This blending mode avoids averaging of fine details (only) at the expense of increasing the noise. However it considerably improvs the sharpness of focus stacks. Blending with hard masks has solely proven useful with focus stacks.See also [[#SEC5|Option –wContrast]] and ‘--ContrastWindowSize’ above.&lt;br /&gt;
; &amp;lt;code&amp;gt;--MinCurvature=&amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX68}} Define the minimum &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; for the LoG edge detection. Default: 0. Append a ‘%’ to specify the minimum curvature relative to maximum pixel value in the source image (for example 255 or 65535).A positive value makes Enfuse use the local contrast data (controlled with ‘--ContrastWindowSize’) for curvatures less than &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; and LoG data for values above it.A negative value truncates all curvatures less than -&amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; to zero. Values above &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; are left unchanged. This effectively suppresses weak edges.&lt;br /&gt;
; &amp;lt;code&amp;gt;--SoftMask&amp;lt;/code&amp;gt;&lt;br /&gt;
: {{anchor|IDX69}} Consider all masks when fusing. This is the default.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Option-Delimiters}} {{anchor|SEC7}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|2.5 }}Option Delimiters===&lt;br /&gt;
&lt;br /&gt;
Enfuse allows the arguments supplied to the program's options to be separated by different separators. The online documentation and this manual, however, exclusively uses the colon ‘:’ in every syntax definition and in all examples. Valid delimiters are the comma ‘,’, the semicolon ‘;’, the colon ‘:’, and the slash ‘/’. All delimiters may be mixed within any option.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
; ‘--EdgeScale=0.667:6.67:3.5’&lt;br /&gt;
: Separate all arguments with colons.&lt;br /&gt;
; ‘--EdgeScale=0.667,6.67,3.5’&lt;br /&gt;
: Use commas.&lt;br /&gt;
; ‘--EdgeScale=0.667;6.67/3.5’&lt;br /&gt;
: Mix semicolon and slash in weird ways.&lt;br /&gt;
; ‘--EntropyCutoff=3%/99%’&lt;br /&gt;
: All delimiters also work in conjuction with percentages.&lt;br /&gt;
; ‘--GrayProjector=channel-mixer:3/6/1’&lt;br /&gt;
: Separate arguments with a colon and two slashes.&lt;br /&gt;
; ‘--GrayProjector=channel-mixer/30;60,10’&lt;br /&gt;
: Go wild and Enfuse will understand.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Weighting-Functions}} {{anchor|SEC8}}&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|3. }}Weighting Functions==&lt;br /&gt;
&lt;br /&gt;
As has been noted in the Overview (see section [[#SEC1|Overview]]), Enfuse supports four different types of weighting. The following subsections describe the concept of weighting and all weighting functions in detail.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;menu&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC9|{{NotTOC|3.1 }}Weighting Pixels]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | General concept of weighting pixels&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC12|{{NotTOC|3.2 }}Exposure Weighting]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Weighting by exposure&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC13|{{NotTOC|3.3 }}Saturation Weighting]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Weighting by saturation&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC14|{{NotTOC|3.4 }}Contrast Weighting]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Weighting by local contrast&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC21|{{NotTOC|3.5 }}Entropy Weighting]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Weighting by local entropy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Weighting-Pixels}} {{anchor|SEC9}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|3.1 }}Weighting Pixels===&lt;br /&gt;
&lt;br /&gt;
Image fusion maps each pixel ''P(i, x, y)'' of every input image ''i'' to a single pixel ''Q(x, y)'' in the output image:''P(i, x, y) ? Q(x, y),'' where ''x'' runs from 1 to the common width of the images, ''y'' from 1 to the common height, and ''i'' from 1 to the number of input images ''n''.&lt;br /&gt;
&lt;br /&gt;
Enfuse allows for weighting the contribution of each ''P(i, x, y)'' to the final ''Q(x, y)'':&amp;lt;br&amp;gt; ''w(P(1, x, y)) * P(1, x, y) +... +w(P(n, x, y)) * P(n, x, y)? Q(x, y),'' (W)&amp;lt;br&amp;gt;&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
* each ''w'' is non-negative to yield a physical intensity and&lt;br /&gt;
* the sum of all ''w'' is one to leave the total intensity unchanged.&lt;br /&gt;
&lt;br /&gt;
The pixel weights ''w'' themselves are weighted sums with the same constraints&lt;br /&gt;
&lt;br /&gt;
''w(P) = w&amp;lt;sub&amp;gt;exp&amp;lt;/sub&amp;gt; * f&amp;lt;sub&amp;gt;exp&amp;lt;/sub&amp;gt;(P) +w&amp;lt;sub&amp;gt;sat&amp;lt;/sub&amp;gt; * f&amp;lt;sub&amp;gt;sat&amp;lt;/sub&amp;gt;(P) +w&amp;lt;sub&amp;gt;cont&amp;lt;/sub&amp;gt; * f&amp;lt;sub&amp;gt;cont&amp;lt;/sub&amp;gt;(P, r&amp;lt;sub&amp;gt;cont&amp;lt;/sub&amp;gt;) +w&amp;lt;sub&amp;gt;ent&amp;lt;/sub&amp;gt; * f&amp;lt;sub&amp;gt;ent&amp;lt;/sub&amp;gt;(P, r&amp;lt;sub&amp;gt;ent&amp;lt;/sub&amp;gt;)'', &lt;br /&gt;
&lt;br /&gt;
where we have abbreviated  ''P(i, x, y)'' to P for simplicity. The user defines the constants ''w&amp;lt;sub&amp;gt;exp&amp;lt;/sub&amp;gt;'',   ''w&amp;lt;sub&amp;gt;sat&amp;lt;/sub&amp;gt;'',   ''w&amp;lt;sub&amp;gt;cont&amp;lt;/sub&amp;gt;'', and   ''w&amp;lt;sub&amp;gt;ent&amp;lt;/sub&amp;gt;'' with the options `&amp;lt;tt&amp;gt;--wExposure&amp;lt;/tt&amp;gt;', `&amp;lt;tt&amp;gt;--wSaturation&amp;lt;/tt&amp;gt;', `&amp;lt;tt&amp;gt;--wContrast&amp;lt;/tt&amp;gt;', and `&amp;lt;tt&amp;gt;--wEntropy&amp;lt;/tt&amp;gt;' respectively. The functions   ''f&amp;lt;sub&amp;gt;exp&amp;lt;/sub&amp;gt;'',   ''f&amp;lt;sub&amp;gt;sat&amp;lt;/sub&amp;gt;'',   ''f&amp;lt;sub&amp;gt;cont&amp;lt;/sub&amp;gt;'', and   ''f&amp;lt;sub&amp;gt;ent&amp;lt;/sub&amp;gt;'' along with the window sizes   ''r&amp;lt;sub&amp;gt;cont&amp;lt;/sub&amp;gt;'' and   ''r&amp;lt;sub&amp;gt;ent&amp;lt;/sub&amp;gt;'' are explained in the next sections.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;menu&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC10|{{NotTOC|3.1.1 }}Weighted Average]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Enfuse's default weighting algorithm&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC11|{{NotTOC|3.1.2 }}Disabling Averaging: Option ‘--HardMask’]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | “Super Trouper” weighting for focus stacks&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Weighted-Average}} {{anchor|SEC10}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|3.1.1 }}Weighted Average====&lt;br /&gt;
&lt;br /&gt;
By default, Enfuse uses a weighted average, where ''each'' pixel contributes as much as its weight demands. Of course the weights can be extreme, favouring only a few pixels or even only one pixel in the input stack. Extremes are untypical, however.&lt;br /&gt;
&lt;br /&gt;
Equal weights are another extreme that turns (W) into an arithmetic average. this is why we sometimes speak of the “averaging property” of this weighting algorithm, like smoothing out noise.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Disabling-Averaging}} {{anchor|SEC11}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|3.1.2 }}Disabling Averaging: Option ‘-- HardMask’====&lt;br /&gt;
&lt;br /&gt;
The weighted average computation as described above has proven to be widely successful with the exception of one special case: focus stacking (see section [[#SEC34|Focus Stacks – Depth-of-Field Increase]]), where the averaging noticeably softens the final image.&lt;br /&gt;
&lt;br /&gt;
Use ‘--HardMask’ to switch Enfuse into a different (“Super Trouper”) weighting mode, where the pixel with the highest weight wins, this is, gets weight one, and all other pixels get the weight of zero ([[wikipedia:The_Winner_Takes_It_All]). With ‘--HardMask’ Equation (W) becomes &amp;lt;br&amp;gt;''P(i, x, y) ? Q(x, y),'' where ''w(P(i, x, y)) ? w(P(j, x, y))'' for all ''1 ? j ? n''.&lt;br /&gt;
&lt;br /&gt;
Note that this “averaging” scheme lacks the nice noise-reduction property of the weighted average (W), because only a single input pixel contributes to the output.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Exposure-Weighting}} {{anchor|SEC12}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|3.2 }}Exposure Weighting===&lt;br /&gt;
&lt;br /&gt;
Exposure weighting prefers pixels with a luminance ''Y'' close to the center of the normalized, real-valued luminance interval ''[0, 1]''.&lt;br /&gt;
&lt;br /&gt;
RGB-pixels get converted to luminance using the grayscale projector given by ‘--GrayProjector’, which defaults to &amp;lt;code&amp;gt;average&amp;lt;/code&amp;gt;. Grayscale pixels are identified with luminance.&lt;br /&gt;
&lt;br /&gt;
In the normalized luminance interval 0.0 represents pure black and 1.0 represents pure white independently of the data type of the input image. This is, for a JPEG image the luminance 255 maps to 1.0 in the normalized interval and for a 32bit TIFF picture the highest luminance value 4294967295 also maps to 1.0. The middle if the luminance interval, 0.5, is where a neutral gray tone ends up with every camera that had no exposure correction dialed in, for example the image of a gray- or white-card.&lt;br /&gt;
&lt;br /&gt;
The exposure weighting algorithm only looks at a single pixel at a time; the pixel's neighborhood is not taken into account.&lt;br /&gt;
&lt;br /&gt;
The weighting function is the Gaussian  &amp;lt;math&amp;gt;w_{exp}(Y) = exp \left( - \frac{1}{2} \left( \frac{Y - Mu}{Sigma} \right) ^2 \right), \,&amp;lt;/math&amp;gt; whose center ''Mu'' and width ''Sigma'' are controlled by the command line options ‘--wMu’ and ‘-- wSigma’ respectively. ''Mu'' defaults to 0.5, the middle of the luminance interval. ''Sigma'' defaults to 0.2. [[#fig_003agaussian|fig:gaussian]] shows a Gaussian with these parameters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;float&amp;quot;&amp;gt;{{anchor|fig_003agaussian}}&lt;br /&gt;
&lt;br /&gt;
[[Image:gaussian.png|565px|gaussian]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Figure 3.1: Gaussian function with Enfuse's default parameters &amp;lt;var&amp;gt;Mu&amp;lt;/var&amp;gt; = 0.5 and &amp;lt;var&amp;gt;Sigma&amp;lt;/var&amp;gt; = 0.2. '''&lt;br /&gt;
&lt;br /&gt;
The options ‘--wMu’ and ‘--wSigma’ are for fine-tuning the final result without changing the set of input images. Option ‘--wMu’ sets the point &amp;lt;var&amp;gt;Mu&amp;lt;/var&amp;gt; of optimum exposure. The default is &amp;lt;var&amp;gt;Mu&amp;lt;/var&amp;gt; = 0.5, exactly the middle between pure black (0.0) and pure white (1.0). Increasing &amp;lt;var&amp;gt;Mu&amp;lt;/var&amp;gt; makes Enfuse prefer lighter pixels, rendering the final image lighter and vice versa. Option ‘--wSigma’ defines the range &amp;lt;var&amp;gt;Sigma&amp;lt;/var&amp;gt; of acceptable exposures. The default is &amp;lt;var&amp;gt;Sigma&amp;lt;/var&amp;gt; = 0.2, which means at &amp;lt;var&amp;gt;Mu&amp;lt;/var&amp;gt; ± 0.2 the weight will be approximately 0.88. Small values of &amp;lt;var&amp;gt;Sigma&amp;lt;/var&amp;gt; penalize exposures deviant from &amp;lt;var&amp;gt;Mu&amp;lt;/var&amp;gt; more and vice versa.&lt;br /&gt;
&lt;br /&gt;
'''Summary of influential options'''&lt;br /&gt;
&lt;br /&gt;
; ‘--wExposure’&lt;br /&gt;
: [[#SEC5|Fusion Options]]&lt;br /&gt;
; ‘--wMu’&lt;br /&gt;
: [[#SEC5|Fusion Options]]&lt;br /&gt;
; ‘--wSigma’&lt;br /&gt;
: [[#SEC5|Fusion Options]]&lt;br /&gt;
; ‘--GrayProjector’&lt;br /&gt;
: [[#SEC6|Expert Options]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Saturation-Weighting}} {{anchor|SEC13}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|3.3 }}Saturation Weighting===&lt;br /&gt;
&lt;br /&gt;
Saturation weighting prefers pixels with a high saturation.&lt;br /&gt;
&lt;br /&gt;
Enfuse computes the saturation of a pixel according to the following algorithm.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pas&amp;quot;&amp;gt;&lt;br /&gt;
max := maximum(R, G, B)&lt;br /&gt;
min := minimum(R, G, B)&lt;br /&gt;
if max = min then&lt;br /&gt;
    saturation := 0&lt;br /&gt;
else&lt;br /&gt;
    sum := max + min&lt;br /&gt;
    difference := max - min&lt;br /&gt;
    if sum &amp;lt;= 1 then&lt;br /&gt;
        saturation := difference / sum&lt;br /&gt;
    else&lt;br /&gt;
        saturation := difference / (2 - sum)&lt;br /&gt;
    end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, saturation weighting can only be defined for RGB images, not for grayscale ones! If you need something similar check out [[#SEC21|Entropy Weighting]]&amp;lt;nowiki&amp;gt;; entropy weighting works for both &amp;lt;/nowiki&amp;gt;RGB and grayscale pictures.&lt;br /&gt;
&lt;br /&gt;
The saturation weighting algorithm only looks at a single pixel at a time; the pixel's neighborhood is not taken into account.&lt;br /&gt;
&lt;br /&gt;
'''Summary of influential options'''&lt;br /&gt;
&lt;br /&gt;
; ‘--wSaturation’&lt;br /&gt;
: [[#SEC5|Fusion Options]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Contrast-Weighting}} {{anchor|SEC14}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|3.4 }}Contrast Weighting===&lt;br /&gt;
&lt;br /&gt;
Contrast weighting favors pixels inside a high contrast neighborhood. The notion of “high contrast” is defined either by two different criteria or by a blend of both:&lt;br /&gt;
&lt;br /&gt;
* The standard deviation (SDev) of all the pixels in the local analysis window is large. See section [[#SEC15|Standard Deviation]].&lt;br /&gt;
* The Laplacian-of-Gaussian (LoG) has a large magnitude. See section [[#SEC18|Laplacian of Gaussian]].&lt;br /&gt;
* If the LoG magnitude is below a given threshold, use SDev data, otherwise stick with LoG. See section [[#SEC19|Blend Standard Deviation and Laplacian of Gaussian]].&lt;br /&gt;
&lt;br /&gt;
Enfuse converts every RGB image to grayscale before it determines its contrast. Option ‘--GrayProjector’ (see section [[#SEC6|Expert Options]]) controls the projector function. Depending on the subject one of several grayscale projectors may yield the best black-and-white contrast for image fusion.&lt;br /&gt;
&lt;br /&gt;
In the following sections we describe each algorithm in detail.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;menu&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC15|{{NotTOC|3.4.1 }}Standard Deviation]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
Standard deviation (SDev)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC18|{{NotTOC|3.4.2 }}Laplacian of Gaussian]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
LoG, a second derivative method&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC19|{{NotTOC|3.4.3 }}Blend Standard Deviation and Laplacian of Gaussian]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
Mix and match SDev and LoG&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC20|{{NotTOC|3.4.4 }}Scaling and Choice of Mode]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | How parameters do not scale; neither does mode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Standard-Deviation}} {{anchor|SEC15}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|3.4.1 }}Standard Deviation====&lt;br /&gt;
&lt;br /&gt;
The pixel under consideration C sits exactly in the center of a square, the so-called ''local analysis window''. It always has an uneven edge length. The user sets the size with option ‘--ContrastWindowSize’. [[#fig_003alocal_002danalysis_002dwindow|fig:local-analysis-window]] shows two windows with different sizes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;float&amp;quot;&amp;gt;{{anchor|fig_003alocal_002danalysis_002dwindow}}&lt;br /&gt;
&lt;br /&gt;
[[Image:local-analysis-window.png|428px|local-analysis-window]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Figure 3.2: Examples of local analysis windows for the sizes 3 and 5. “C” marks the center where the pixel gets the weight. “N” are neighboring pixels, which all contribute equally to the weight. '''&lt;br /&gt;
&lt;br /&gt;
During the analysis Enfuse scans the local analysis window across all rows and all columns{{anchor|DOCF4}} [[#FOOT4|(4)]] of each of the input images to compute the contrast weight of every pixel.&lt;br /&gt;
&lt;br /&gt;
'''Summary of influential options'''&lt;br /&gt;
&lt;br /&gt;
; ‘--wContrast’&lt;br /&gt;
: [[#SEC5|Fusion Options]]&lt;br /&gt;
; ‘--HardMask’&lt;br /&gt;
: [[#SEC5|Fusion Options]]&lt;br /&gt;
; ‘--ContrastWindowSize’&lt;br /&gt;
: [[#SEC6|Expert Options]]&lt;br /&gt;
; ‘--GrayProjector’&lt;br /&gt;
: [[#SEC6|Expert Options]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|SEC16}}&lt;br /&gt;
&lt;br /&gt;
====={{NotTOC|3.4.1.1 }}Statistical Moments=====&lt;br /&gt;
&lt;br /&gt;
We start with the ''probability function'' ''w'' of the random variable &amp;lt;math&amp;gt;X \,&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w: x \rightarrow p(\{\omega: X(\omega) = x\}) \,&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It associates a probability &amp;lt;math&amp;gt;p \,&amp;lt;/math&amp;gt; with each of the &amp;lt;math&amp;gt;n \,&amp;lt;/math&amp;gt; different possible outcomes &amp;lt;math&amp;gt;\omega \,&amp;lt;/math&amp;gt; of the random variable &amp;lt;math&amp;gt;X \,&amp;lt;/math&amp;gt;. {{anchor|IDX70}} Based on &amp;lt;math&amp;gt;w \,&amp;lt;/math&amp;gt;, we define the ''expectation value'' or “First Moment” of the random variable &amp;lt;math&amp;gt;X \,&amp;lt;/math&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\hbox{ Ex } X := \sum_{i = 1}^n x_i w(x_i). \,&amp;lt;/math&amp;gt;.    &lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX71}} Using the definition of the expectation value, we define the ''variance'', or “Second Moment” as &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\mbox{ Var } X := \mbox{Ex}\left( (X - \mbox{Ex} X)^2 \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX72}} and the ''standard deviation'' as&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sigma X := \sqrt{\mbox{Var}\ X}&amp;lt;/math&amp;gt;.   &lt;br /&gt;
&lt;br /&gt;
Obviously, the variance of &amp;lt;math&amp;gt;X \,&amp;lt;/math&amp;gt; is the expectation value of the squared deviation from the expectation value of &amp;lt;math&amp;gt;X \,&amp;lt;/math&amp;gt; itself. Note that the variance's dimension is &amp;lt;math&amp;gt;X \,&amp;lt;/math&amp;gt;'s dimension squared; the standard deviation rectifies the dimension to make it comparable with &amp;lt;math&amp;gt;X \,&amp;lt;/math&amp;gt; itself again.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|SEC17}}&lt;br /&gt;
&lt;br /&gt;
====={{NotTOC|3.4.1.2 }}Estimators=====&lt;br /&gt;
&lt;br /&gt;
In Enfuse, we assume that &amp;lt;math&amp;gt;X \,&amp;lt;/math&amp;gt; follows a uniform probability function ''w(x)'' = const. This is, all pixel values in the local analysis window are considered to be equally probable. Thus, the expectation value and the variance can be estimated from the pixel values like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\mbox{Ex}\ X := {1 \over n} \sum_{i = 1}^n x_i&amp;lt;/math&amp;gt;.   &lt;br /&gt;
&lt;br /&gt;
In other words: the expectation value is the arithmetic mean of the lightness of all pixels in the local analysis window. Analogously, the variance becomes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\mbox{Var}\ X := {1 \over {n - 1}} \, \mbox{Ex}\left( (X - \mbox{Ex}\ X)^2 \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Laplacian-of-Gaussian}} {{anchor|SEC18}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|3.4.2 }}Laplacian of Gaussian====&lt;br /&gt;
&lt;br /&gt;
The ''Laplacian of Gaussian'' (LoG) is an operator to detect edges in an image. Sometimes the LoG-operator is also called Marr-Hildreth operator. A Laplacian-of-Gaussian operator, [http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/doc/vigra/group__CommonConvolutionFilters.html &amp;lt;code&amp;gt;vigra::laplacianOf Gaussian&amp;lt;/code&amp;gt;] is part of the package [http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/ Vigra] that Enfuse is built upon and is used for edge detection if option ‘--EdgeScale’ is non-zero and ‘--MinCurvature’ equal to or less than zero.&lt;br /&gt;
&lt;br /&gt;
Let the Gaussian function be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g(x, y) = {1 \over {2 \pi \sigma^2}} \, {\exp\left(-{{x^2 + y^2} \over {2 \sigma^2}}\right)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;math&amp;gt;\sigma \,&amp;lt;/math&amp;gt;, the argument of option ‘--EdgeScale’, is the length scale on which edges are detected by ''g(x, y)''. We apply the Laplacian operator in Cartesian coordinates&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\triangle \equiv \nabla \cdot \nabla =  {\partial^2 \over \partial x^2} + {\partial^2 \over \partial y^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to ''g(x, y)'', to arrive at a continous representation of the two-dimensional filter kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;k(x, y) = {{\xi^2 - 1} \over {\pi \sigma^4}} \exp(-\xi^2)&amp;lt;/math&amp;gt;,   &lt;br /&gt;
&lt;br /&gt;
where we have used the dimensionless distance &amp;lt;math&amp;gt;\xi \,&amp;lt;/math&amp;gt; from the origin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\xi^2 = {{x^2 + y^2} \over {2 \sigma^2}}&amp;lt;/math&amp;gt;.   &lt;br /&gt;
&lt;br /&gt;
Enfuse uses a discrete approximation of ''k'' in the convolution with the image. The operator is radially symmetric with respect to the origin, which is why we can easily plot it in [[#fig_003alaplacian_002dof_002dgaussian|fig:laplacian-of-gaussian]], setting &amp;lt;math&amp;gt;R = \sqrt{x^2 + y^2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;float&amp;quot;&amp;gt;{{anchor|fig_003alaplacian_002dof_002dgaussian}}&lt;br /&gt;
&lt;br /&gt;
[[Image:laplacian-of-gaussian.png|586px|laplacian-of-gaussian]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Figure 3.3: Laplacian-of-Gaussian function for  ?  = 0.5. '''&lt;br /&gt;
&lt;br /&gt;
See also [http://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm HIPR2&amp;lt;nowiki&amp;gt;: Laplacian of Gaussian&amp;lt;/nowiki&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
Sometimes the LoG is plagued by noise in the input images. After all it is a numerical approximation of the second derivative and deriving always “roughens” a function. The (normalized) mask files relentlessly disclose such problems. Use option ‘--MinCurvature’ with a ''negative'' argument &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; to suppress all edges with a curvature below -&amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; (which is a positive value). Check the effects with the mask files and particularly the ‘&amp;lt;tt&amp;gt;mask####_wta.tif&amp;lt;/tt&amp;gt;’ files if using option ‘--HardMask’.&lt;br /&gt;
&lt;br /&gt;
To indicate the &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; in relative terms, which is particularly comprehensible for humans, append a percent sign (‘%’). Try minimum curvatures starting from -0.5% to -3%.&lt;br /&gt;
&lt;br /&gt;
'''Summary of influential options'''&lt;br /&gt;
&lt;br /&gt;
; ‘--wContrast’&lt;br /&gt;
: [[#SEC5|Fusion Options]]&lt;br /&gt;
; ‘--HardMask’&lt;br /&gt;
: [[#SEC5|Fusion Options]]&lt;br /&gt;
; ‘--EdgeScale’&lt;br /&gt;
: [[#SEC6|Expert Options]]&lt;br /&gt;
; ‘--MinCurvature’&lt;br /&gt;
: [[#SEC6|Expert Options]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Blend-SDev-and-LoG}} {{anchor|SEC19}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|3.4.3 }}Blend Standard Deviation and Laplacian of Gaussian====&lt;br /&gt;
&lt;br /&gt;
Enfuse can team the standard deviation computation and Laplacian of Gaussian to deliver the best of both methods. Use a ''positive'' argument &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; with option ‘--MinCurvature’ to combine both algorithms. In this mode of operation Enfuse computes the SDev-weight and the LoG-weight, then uses the LoG to decide whether to go with that value or prefer the SDev data. If the LoG is greater than &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; Enfuse uses the weight delivered by the LoG, otherwise the SDev-weight is rescaled such that its maximum is equal to &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; and the scaled SDev is used as weight.&lt;br /&gt;
&lt;br /&gt;
This technique merges the two edge detection methods where the are best. The LoG excels with clear edges and cannot be fooled by strong but smooth gradients. However, it is bad at detecting faint edges and it is susceptible to noise. The SDev on the othe hand shines with even the most marginal edges and resists noise quite well. Its weakness is that is is easily deceived by strong and smooth gradients. Tuning &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; the user can pick the best threshold for a given set of images.&lt;br /&gt;
&lt;br /&gt;
'''Summary of influential options'''&lt;br /&gt;
&lt;br /&gt;
; ‘--wContrast’&lt;br /&gt;
: [[#SEC5|Fusion Options]]&lt;br /&gt;
; ‘--HardMask’&lt;br /&gt;
: [[#SEC5|Fusion Options]]&lt;br /&gt;
; ‘--ContrastWindowSize’&lt;br /&gt;
: [[#SEC6|Expert Options]]&lt;br /&gt;
; ‘--GrayProjector’&lt;br /&gt;
: [[#SEC6|Expert Options]]&lt;br /&gt;
; ‘--EdgeScale’&lt;br /&gt;
: [[#SEC6|Expert Options]]&lt;br /&gt;
; ‘--MinCurvature’&lt;br /&gt;
: [[#SEC6|Expert Options]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Scaling-and-Choice-of-Mode}} {{anchor|SEC20}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|3.4.4 }}Scaling and Choice of Mode====&lt;br /&gt;
&lt;br /&gt;
Experience has shown that neither the parameters &amp;lt;var&amp;gt;EDGESCALE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; nor the mode of operation (SDev-only, LoG-only, or a blend of both) scales to different image sizes. In practice this means that if you start with a set of reduced size images, say 2808× 1872 pixels, carefully optimize &amp;lt;var&amp;gt;EDGESCALE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; and so on, moreover find LoG-only the best mode and then switch to the original resolution of 5616× 3744 pixels, multiplying (or dividing) the parameters by four and sticking to LoG-only might ''not'' result in the best fused image. For best quality perform the parameter optimization and the search for the most appropriate mode at the final resolution.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Entropy-Weighting}} {{anchor|SEC21}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|3.5 }}Entropy Weighting===&lt;br /&gt;
&lt;br /&gt;
Entropy weighting prefers pixels inside a high entropy neighborhood.&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX73}}&lt;br /&gt;
&lt;br /&gt;
Let ''S'' be an ''n''-ary source. Watching the output of ''S'' an observer on average gains the information&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_a(n) := \sum_{x \in S} p(x) \log_a(1 / p(x))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX74}} per emitted message, where we assume the knowledge of the probability function ''p(S)''. The expectation value ''H_a(n)'' is called ''entropy'' of the source ''S''. Entropy measures our uncertainty if we are to guess which message gets chosen by the source in the future. The unit of the entropy depends on the choice of the constant ''a &amp;gt; 1''. Obviously&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;H_b(n) = H_a(n) / \log_a(b) \,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
holds for all ''b &amp;gt; 1''. We use ''a = 2'' for entropy weighting and set the entropy of the “impossible message” to zero according to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lim_{p \rightarrow 0} \, p \, \log_a(1 / p) = 0&amp;lt;/math&amp;gt;.   &lt;br /&gt;
&lt;br /&gt;
[[#fig_003aentropy|fig:entropy]] shows an entropy function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;float&amp;quot;&amp;gt;{{anchor|fig_003aentropy}}&lt;br /&gt;
&lt;br /&gt;
[[Image:entropy.png|581px|entropy]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Figure 3.4: Entropy function H for an experiment with exactly two outcomes. '''&lt;br /&gt;
&lt;br /&gt;
For more on (information) entropy visit [[wikipedia:Information_entropy]].&lt;br /&gt;
&lt;br /&gt;
Enfuse computes a pixel's entropy by considering the pixel itself and its surrounding pixels quite similar to [[#SEC14|Contrast Weighting]]. The size of the window is set by ‘--EntropyWindowSize’. Choosing the right size is difficult, because there is a serious tradeoff between the locality of the data and the size of the sample used to compute ''H''. A large window results in a large sample size and therefore in a reliable entropy, but considering pixels far away from the center degrades ''H'' into a non-local measure. For small windows the opposite holds true.&lt;br /&gt;
&lt;br /&gt;
Another difficulty arises from the use of entropy as a weighting function in dark parts of an image, this is, in areas where the signal-to-noise ratio is low. Without any precautions high noise is taken to be high entropy, which might not be desired. Use option ‘--EntropyCutoff’ to control the black level when computing the entropy.&lt;br /&gt;
&lt;br /&gt;
On the other extreme side of lightness, very light parts of an image, the sensor might already have overflown without the signal reaching 1.0 in the normalized luminance interval. For these pixels the entropy is zero and Enfuse can be told of the threshold by properly setting the second argument of ‘--EntropyCutoff’.&lt;br /&gt;
&lt;br /&gt;
'''Summary of influential options'''&lt;br /&gt;
&lt;br /&gt;
; ‘--wEntropy’&lt;br /&gt;
: [[#SEC5|Fusion Options]]&lt;br /&gt;
; ‘--EntropyWindowSize’&lt;br /&gt;
: [[#SEC6|Expert Options]]&lt;br /&gt;
; ‘--EntropyCutoff’&lt;br /&gt;
: [[#SEC6|Expert Options]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Understanding-Masks}} {{anchor|SEC22}}&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|4. }}Understanding Masks==&lt;br /&gt;
&lt;br /&gt;
A ''binary mask'' indicates for every pixel of an image if this pixel must be considered in further processing or ignored. For a ''weight mask'', the value of the mask determines how much the pixel contributes, zero again meaning “no contribution”.&lt;br /&gt;
&lt;br /&gt;
Masks arise in two places: as part of the input files and as separate files, showing the actual pixel weights prior to image blendung or fusion. We shall explore both occurrences in the next sections.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|SEC23}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|4.1 }}Masks in Input Files===&lt;br /&gt;
&lt;br /&gt;
Each of the input files for Enfuse and Enblend can contain its own mask. Both applications interpret them as binary masks no matter how many bits per image pixel they contain.&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX75}} {{anchor|IDX76}}&lt;br /&gt;
&lt;br /&gt;
Use ImageMagick's &amp;lt;code&amp;gt;identify&amp;lt;/code&amp;gt; or, for TIFF files, &amp;lt;code&amp;gt;tiffinfo&amp;lt;/code&amp;gt; to inquire quickly whether a file contains a mask. [[#SEC45|Helpful Additional Programs]] shows where to find these programs on the web.&lt;br /&gt;
&lt;br /&gt;
 $ identify -format &amp;quot;%f %m %wx%h %r %q-bit&amp;quot; remapped-0000.tif&lt;br /&gt;
 remapped-0000.tif TIFF 800x533 DirectClassRGBMatte 8-bit&lt;br /&gt;
                                              ^^^^^ mask&lt;br /&gt;
&lt;br /&gt;
 $ tiffinfo remapped-0000.tif&lt;br /&gt;
 TIFF Directory at offset 0x1a398a (1718666)&lt;br /&gt;
   Subfile Type: (0 = 0x0)&lt;br /&gt;
   Image Width: 800 Image Length: 533&lt;br /&gt;
   Resolution: 150, 150 pixels/inch&lt;br /&gt;
   Position: 0, 0&lt;br /&gt;
   Bits/Sample: 8&lt;br /&gt;
   Sample Format: unsigned integer&lt;br /&gt;
   Compression Scheme: PackBits&lt;br /&gt;
   Photometric Interpretation: RGB color&lt;br /&gt;
   Extra Samples: 1&amp;lt;unassoc-alpha&amp;gt;            &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; mask&lt;br /&gt;
   Orientation: row 0 top, col 0 lhs&lt;br /&gt;
   Samples/Pixel: 4                           &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; R, G, B, and mask&lt;br /&gt;
   Rows/Strip: 327&lt;br /&gt;
   Planar Configuration: single image plane&lt;br /&gt;
&lt;br /&gt;
The “Matte” part of the image class and the “Extra Samples” line tell us that the file features a mask. Also, many interactive image manipulation programs show the mask as a separate channel, sometimes called “Alpha”. There, the white (high mask value) parts of the mask enable pixels and black (low mask value) parts suppress them.&lt;br /&gt;
&lt;br /&gt;
The multitude of terms all describing the concept of a mask is confusing.&lt;br /&gt;
&lt;br /&gt;
; Mask&lt;br /&gt;
: A mask defines a selection of pixels. A value of zero represents an unselected pixel. The maximum value (“white”) represents a selected pixel and the values between zero and the maximum are partially selected pixels. See [http://gimp-savvy.com/BOOK/index.html?node42.html Gimp-Savy].&lt;br /&gt;
; Alpha Channel&lt;br /&gt;
: The alpha channel stores the transpacency value for each pixel, typically in the range from zero to one. A value of zero means the pixel is completely transparent, thus does not contribute to the image. A value of one on the other hand means the pixel is completely opaque.&lt;br /&gt;
; Matte&lt;br /&gt;
: The notion “matte” as used by ImageMagick refers to an inverted alpha channel, more precisely: 1 - alpha. See [http://www.imagemagick.org/Usage/channels/#trans ImageMagick] for further explanations.&lt;br /&gt;
&lt;br /&gt;
Enblend and Enfuse only consider pixels that have an associated mask value different from zero. If an input image does not have an alpha channel, Enblend warns and assumes a mask of all non-zero values, this is, it will use every pixel of the input image for fusion.&lt;br /&gt;
&lt;br /&gt;
Stitchers like &amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt; add a mask to their output images.&lt;br /&gt;
&lt;br /&gt;
Sometimes it is helpful to manually modify a mask before fusion. For example to suppress unwanted objects (insects and cars come into mind) that moved across the scene during the exposures. If the masks of all input images are black at a certain position, the output image will have a hole there.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|SEC24}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|4.2 }}Weight Mask Files===&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Tuning-Memory-Usage}} {{anchor|SEC25}}&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|5. }}Tuning Memory Usage==&lt;br /&gt;
&lt;br /&gt;
The default configuration of Enfuse assumes a system with 3–4GB of RAM.&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX77}}&lt;br /&gt;
&lt;br /&gt;
If Enfuse has been compiled with the C++-preprocessor symbol &amp;lt;code&amp;gt;ENBLEND_CACHE_IMAGES&amp;lt;/code&amp;gt; it uses its own image cache, whose size is user configurable with the option ‘-m &amp;lt;var&amp;gt;CACHE-SIZE&amp;lt;/var&amp;gt;’ (see section [[#SEC4|Extended Options]]). Furthermore, option ‘-b &amp;lt;var&amp;gt;BUFFER-SIZE&amp;lt;/var&amp;gt;’ (see section [[#SEC4|Extended Options]]) allows for fine-tuning the size of a single buffer inside the image cache. Note that &amp;lt;var&amp;gt;CACHE-SIZE&amp;lt;/var&amp;gt; is given in megabytes, whereas &amp;lt;var&amp;gt;BUFFER-SIZE&amp;lt;/var&amp;gt; is given in kilobytes.&lt;br /&gt;
&lt;br /&gt;
Usually the user lets the operating system take care of the memory management of all processes. However, a user of Enfuse might want to control the balance between the operating systems' Virtual Memory System and Enfuse's image cache for several reasons.&lt;br /&gt;
&lt;br /&gt;
* Paging in or out parts of a process' image runs at kernel level and thus can make user processes appear unresponsive or “jumpy”. The caching mechanism of Enfuse of course runs as a user process, which is why it has less detrimental effects on the system's overall responsiveness.&lt;br /&gt;
* Enfuse's image cache has been optimized for accesses to image data. And all algorithms in Enfuse have been carefully arranged to play nice with the image cache. An operating system's cache has no knowledge of these particular memory access patterns.&lt;br /&gt;
* The disk access of the operating system to the swap device has been highly optimized. Enfuse on the other hand uses the standard IO-layer which is a slower interface.&lt;br /&gt;
* Limiting the amount of image cache prevents Enfuse from eating up most or all RAM, thereby forcing all user applications into the swap device.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;CACHE-SIZE&amp;lt;/var&amp;gt; should be set in a way as to reconcile all of the above aspects even for the biggest data sets (this is many images and large images).&lt;br /&gt;
&lt;br /&gt;
Suggested cache- and buffer-sizes for different amounts of available RAM.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;float&amp;quot;&amp;gt;{{anchor|tab_003acache_002dsize_002dsettings}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! RAM&lt;br /&gt;
! ''CACHE-SIZE''&lt;br /&gt;
! ''BUFFER-SIZE''&lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
! MB&lt;br /&gt;
! MB&lt;br /&gt;
! KB&lt;br /&gt;
|-&lt;br /&gt;
| 4096&lt;br /&gt;
| 1024&lt;br /&gt;
| 2048&lt;br /&gt;
| default&lt;br /&gt;
|-&lt;br /&gt;
| 2048&lt;br /&gt;
| 512–1024&lt;br /&gt;
| 1024&lt;br /&gt;
|-&lt;br /&gt;
| 1024&lt;br /&gt;
| 256–512&lt;br /&gt;
| 256–512&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Table 5.1: Suggested cache-size settings '''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Applications}} {{anchor|SEC26}}&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|6. }}Applications of Enfuse==&lt;br /&gt;
&lt;br /&gt;
The section describes some of the novel possibilities that Enfuse offers the photographer. In contrast to the previous chapters it centers around the image effects.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;menu&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC27|{{NotTOC|6.1 }}What Makes Images Fusable? ]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | What makes images fusable?&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC28|{{NotTOC|6.2 }}Repetition – Noise Reduction]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Just taking the same shot multiple times&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC29|{{NotTOC|6.3 }}Exposure Series – Dynamic Range Increase]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Varying the exposure time&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC32|{{NotTOC|6.4 }}Flash Exposure Series – Directed Lighting]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Varying the flash output&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC33|{{NotTOC|6.5 }}Polarization Series – Saturation Enhancement]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Changing the polarizer angle&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC34|{{NotTOC|6.6 }}Focus Stacks – Depth-of-Field Increase]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Stacking images with different in-focus distance&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|What-Images}} {{anchor|SEC27}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|6.1 }}What Makes Images Fusable?===&lt;br /&gt;
&lt;br /&gt;
Images should align well to be suitable for fusion. However, there is no hard mathematical rule what “well” means. The alignment requirements for 16MPixel images to yield a sharp 4&amp;quot;× 6&amp;quot; print at 300dpi (“dpi” means dots per inch) or even for web presentation are relatively low, whereas the alignment of 8MPixel images for a 12&amp;quot;× 18&amp;quot; print ought to be tight.&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX78}}&lt;br /&gt;
&lt;br /&gt;
If the input images need to be aligned, Hugin (see section [[#SEC45|Helpful Additional Programs]]) is the tool of choice. It produces images exactly in the format that Enfuse expects.&lt;br /&gt;
&lt;br /&gt;
Sometimes images naturally align extremely well so that no re-alignment is required. An image series with preprogrammed exposure steps taken in rapid succession where the camera is mounted on a heavy tripod and a humongous ball head, mirror lockup and a cable release are used comes into mind.&lt;br /&gt;
&lt;br /&gt;
When in doubt what will work, try it, and judge for yourself.&lt;br /&gt;
&lt;br /&gt;
Useful ideas for a good alignment:&lt;br /&gt;
&lt;br /&gt;
* Fix all camera parameters that are not explicitely varied.&lt;br /&gt;
*; ''Aperture''&lt;br /&gt;
*: Engage full manual (&amp;lt;M&amp;gt;) or aperture-priority (&amp;lt;A&amp;gt;) mode.&lt;br /&gt;
*; ''Auto-focus''&lt;br /&gt;
*: Disable “Auto Focus”. Be aware that the auto-focus function could be linked to shutter-release button position “half pressed” or to the shutter release in insidious ways.&lt;br /&gt;
*; ''Closed eyepiece''&lt;br /&gt;
*: (This applies only to single lens reflex cameras.) Close the eyepiece when using a cable release to suppress variations in stray light.&lt;br /&gt;
*; ''Exposure time/Shutter speed''&lt;br /&gt;
*: Use the shortest possible exposure time or, in other words, use the fastest shutter speed to avoid blur caused by camera shake or motion blur.&lt;br /&gt;
*; ''Flash power''&lt;br /&gt;
*: Explicitely control the flash power of ''all'' flashes. This is sometimes called “flash exposure lock”.&lt;br /&gt;
*; ''Sensitivity''&lt;br /&gt;
*: Disable “Auto ISO”.&lt;br /&gt;
*; ''White balance''&lt;br /&gt;
*: Disable “Auto White Balance”. Instead use the most suitable fixed white balance or take the white balance off a white card. When in doubt use the setting “Daylight” or equivalent.&lt;br /&gt;
* Steady the camera by any means.&lt;br /&gt;
** Apply your best camera bracing technique combined with controlled breathing.&lt;br /&gt;
** Prefer a monopod or better rigid tripod with a heavy head.&lt;br /&gt;
** (This applies to cameras with a moving mirror only.) Engage “mirror lockup”.&lt;br /&gt;
** Consider automatic bracketing when applicable.&lt;br /&gt;
** Activate camera- or lens-based image stabilization if you are sure that it improves the image quality in your particular case, otherwise disengage the feature. For some lens-based image stabilization systems it is known that they “lock” into different positions every time they are activated. Moreover, some stabilization systems decrease the image quality when the lens is mounted on a tripod.&lt;br /&gt;
* Fire in rapid succession.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Repetition}} {{anchor|SEC28}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|6.2 }}Repetition – Noise Reduction===&lt;br /&gt;
&lt;br /&gt;
'''Main Purpose: ''' Reduce noise&lt;br /&gt;
&lt;br /&gt;
With the default settings Enfuse computes a weighted average of the input pixels. For a series of images, repeated with identical settings this results in a reduction of (photon shot) noise. In other words, the dynamic range increases slightly, because the higher signal-to-noise ratio makes darker shades usable. Furthermore, smooth or glossy surfaces get a “cleaner” look and edges become visually sharper. The nitty-gritty reportage look that sometimes stems from a high sensitivity setting disappears.&lt;br /&gt;
&lt;br /&gt;
Averaged images and therefore low-noise images are the base for a multitude of techniques like for example differences. The most prominent method in this class is dark-frame subtraction.&lt;br /&gt;
&lt;br /&gt;
The defaults set ‘--wExposure=1.0’ and ‘-- wSaturation=0.2’. Eliminating the saturation component with ‘--wSaturation=0.0’ can be worth an extra run.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Exposure-Series}} {{anchor|SEC29}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|6.3 }}Exposure Series – Dynamic Range Increase===&lt;br /&gt;
&lt;br /&gt;
'''Main Purpose: ''' Increase manageable dynamic range&lt;br /&gt;
&lt;br /&gt;
An exposure series is a set of images taken with identical parameters except for the exposure time. Some cameras even provide special functions to automate recording exposure series. See the instruction manual of your model for details.&lt;br /&gt;
&lt;br /&gt;
Enfuse's defaults, ‘--wExposure=1.0’ and ‘-- wSaturation=0.2’ are well suited for fusion of ''color'' images. Remember that saturation weighting only works for RGB data. Option ‘--wSaturation’ helps controlling burnt-out highlights as these are heavily desaturated. If no image suffers from troublesome highlights, the relative saturation weight can be reduced and even be set to zero. For black and white images ‘--wEntropy’ can be an alternative to ‘-- wSaturation’ because it suppresses overexposed pixels as these contain little information. However, saturation weighting is not limited to grayscale data. It has been successfully applied to RGB images, too. Note that saturation weighting considers ''each'' color channel of an RGB image separately and chooses the channel with the minimum entropy as representative for the whole pixel.&lt;br /&gt;
&lt;br /&gt;
Enfuse offers the photographer tremendous flexibility on fusing differenly exposed images. Whether you combine only two pictures or a series of 21, Enfuse imposes no limits on you. Accordingly, the photographic effects achieved range from subtle to surreal like the late 1980s “Max Headroom” TV-Series to really unreal. Like some time ago in the chemical days of photography a new developer opened unseen possibilities for artists, exposure fusion extends a photographer's expressive space in the digital age. Whether the results look good or bad, whether the images are dull or exciting is entirely up the artist.&lt;br /&gt;
&lt;br /&gt;
In the next sections we give assistance to starters and rectify several misconceptions about Enfuse.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;menu&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC30|{{NotTOC|6.3.1 }}Tips For Beginners]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Some hints for beginners&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC31|{{NotTOC|6.3.2 }}Common Misconceptions]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | What works despite the hype&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Exposure-Series-Tips}} {{anchor|SEC30}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|6.3.1 }}Tips For Beginners====&lt;br /&gt;
&lt;br /&gt;
Here are some tips to get you in business quickly.&lt;br /&gt;
&lt;br /&gt;
; ''Include the best single exposure.''&lt;br /&gt;
: Include the exposure you would have taken if you did not use Enfuse in your series. It gives you a solid starting point. Think of the other images as augmenting this best single exposure to bring out the light and dark features you would like to see.&lt;br /&gt;
; ''Begin with as little images as possible.''&lt;br /&gt;
: Pre-visualizing the results of Enfuse is difficult. The more images enter the fusion process and the wider their EV-spacing is, the more challenging thinking of the output image becomes. Therefore, start off with as little images as possible.You can take a larger series of images and only use part of it.&lt;br /&gt;
; ''Start with a moderate EV-spacing.''&lt;br /&gt;
: As has been pointed out in the previous item, a wide EV-spacing makes pre-visualization harder. So set out with a spacing of 2/3EV to 1+1/3EV.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Exposure-Series-Misconceptions}} {{anchor|SEC31}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|6.3.2 }}Common Misconceptions====&lt;br /&gt;
&lt;br /&gt;
Here are some surprisingly common misconceptions about exposure series.&lt;br /&gt;
&lt;br /&gt;
; ''A single image cannot be the source of an exposure series.''&lt;br /&gt;
: {{anchor|IDX79}} {{anchor|IDX80}} Raw-files in particular lend themselves to be converted multiple times and the results being fused together. The technique is simpler, faster, and usually even looks better than [http://luminous-landscape.com/tutorials/digital-blending.shtml digital blending] (as opposed to using a graduated neutral density filter) or [http://www.gimpguru.org/Tutorials/BlendingExposures/ blending exposures] in an image manipulation program. Moreover, perfect alignment comes free of charge!&lt;br /&gt;
; ''An exposure series must feature symmetric exposures.''&lt;br /&gt;
: Twice wrong! Neither do the exposures have to be “symmetric” like {0EV, -2/3EV, +2/3EV}, nor does the number of exposures have to be odd. Series like {-1-1/3EV, -1/3EV, +1/3EV} or {-1EV, 1EV} might be just right. By the way, the order in which the images were taken does not matter either.&lt;br /&gt;
; ''An exposure series must cover the whole dynamic range of the scene.''&lt;br /&gt;
: {{anchor|IDX81}} Unless you do not want to cover the whole range, you do not have to. Some HDR programs require the user to take a light probe,{{anchor|DOCF5}} [[#FOOT5|(5)]] whereas Enfuse offers the user complete freedom of exposure.&lt;br /&gt;
; ''All exposure values must be different.''&lt;br /&gt;
: You can repeat any exposure as often as you like. That way you combine and exposure series with parts of [[#SEC28|Repetition – Noise Reduction]], emphasizing the multiply occuring exposures and reducing noise.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Flash-Exposure-Series}} {{anchor|SEC32}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|6.4 }}Flash Exposure Series – Directed Lighting===&lt;br /&gt;
&lt;br /&gt;
'''Main Purpose: ''' ???&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Polarization-Series}} {{anchor|SEC33}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|6.5 }}Polarization Series – Saturation Enhancement===&lt;br /&gt;
&lt;br /&gt;
'''Main Purpose: ''' Reflection suppression, saturation enhancement&lt;br /&gt;
&lt;br /&gt;
In the current implementation of Enfuse it is not possible in general to fuse a polarization series. Naïvely abusing ‘--wSaturation’ will not work.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Focus-Stacks}} {{anchor|SEC34}}&lt;br /&gt;
&lt;br /&gt;
==={{NotTOC|6.6 }}Focus Stacks – Depth-of-Field Increase===&lt;br /&gt;
&lt;br /&gt;
'''Main Purpose: ''' Synthetic Depth-of-Field Increase&lt;br /&gt;
&lt;br /&gt;
A ''focus stack'' is a series of images where the distance of the focal plane from the sensor varies. Sloppyly speaking, the images were focussed at different distances. Fusing such a stack increases the depth-of-field (DOF) beyond the physical limits of diffraction.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;menu&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC35|{{NotTOC|6.6.1 }}Why create focus stacks? ]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Why take the hassle?&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC36|{{NotTOC|6.6.2 }}Preparing Focus Stacks]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | How to get suitable input images&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC37|{{NotTOC|6.6.3 }}Contrast Based Fusing]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Fundamental command line options&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC38|{{NotTOC|6.6.4 }}Basic Focus Stacking]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Simple, standard deviation method&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC39|{{NotTOC|6.6.5 }}Advanced Focus Stacking]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Advanced, Laplacian technique&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Tips for focus stacking experts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Why-Focus-Stacks}} {{anchor|SEC35}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|6.6.1 }}Why create focus stacks?====&lt;br /&gt;
&lt;br /&gt;
Given&lt;br /&gt;
&lt;br /&gt;
* a fixed sensor or film size,&lt;br /&gt;
* a lens' particular focal length, and&lt;br /&gt;
* {{anchor|IDX82}} {{anchor|IDX83}} a notion about “sharpness”, technically speaking the size of the circle-of-confusion (CoC)&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX84}} {{anchor|IDX85}}&lt;br /&gt;
&lt;br /&gt;
the photographer controls the depth-of-field with the aperture. Smaller apertures – this is larger aperture numbers – increase the DOF and vice versa. However, smaller apertures increase diffraction which in turn renders the image unsharp. So, there is an optimum aperture where the photographer gets maximum DOF. Sadly, for some purposes like macro shots it is not enough. One way out is to combine the sharp parts of images focused at different distances, thereby artifically increasing the total DOF. This is exactly what Enfuse can do.&lt;br /&gt;
&lt;br /&gt;
{{anchor|IDX86}} {{anchor|IDX87}}&lt;br /&gt;
&lt;br /&gt;
All lenses have a so called “sweet spot” aperture, where their resolution is best. Taking pictures at this aperture the photographer squeezes the maximum quality out of the lens. But: the “sweet spot” aperture often is only one or two stops away from wide open. Wouldn't it be great to be able combine these best-possible images to form one high-quality, sufficient-DOF image? Welcome to Enfuse's contrast selection abilities.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Preparing-Focus-Stacks}} {{anchor|SEC36}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|6.6.2 }}Preparing Focus Stacks====&lt;br /&gt;
&lt;br /&gt;
We are going to combine images with limited DOF to increase their in-focus parts. The whole process is about image sharpness. Therefore, the input images must align very well, not just well, but very well. For optimum results the maximum controlpoint distance in Hugin (see section [[#SEC45|Helpful Additional Programs]]) should not exceed 0.3–0.5pixels to ensure perfect blending.&lt;br /&gt;
&lt;br /&gt;
As in all image fusion operations it is preferable to use 16bit linear (gamma = 1) images throughout, but 8bit gamma encoded images will do. Naturally, high SNR input data always is welcome.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Contrast-Based-Fusing}} {{anchor|SEC37}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|6.6.3 }}Contrast Based Fusing====&lt;br /&gt;
&lt;br /&gt;
A bare bones call to Enfuse for focus stacking could look like this.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 enfuse \&lt;br /&gt;
     --wExposure=0 \&lt;br /&gt;
     --wSaturation=0 \&lt;br /&gt;
     --wContrast={{NotTOC|1 }}\&lt;br /&gt;
     --HardMask \&lt;br /&gt;
     … \&lt;br /&gt;
     -o output.tif \&lt;br /&gt;
     input-&amp;lt;0000-9999&amp;gt;.tif&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Here is what the option cause.&lt;br /&gt;
&lt;br /&gt;
; ‘--wExposure=0’&lt;br /&gt;
: Switch '''off''' exposure based pixel selection. The default weight is 1.&lt;br /&gt;
; ‘--wSaturation=0’&lt;br /&gt;
: Switch '''off''' saturation based pixel selection. The default weight is 0.2.&lt;br /&gt;
; ‘--wContrast=1’&lt;br /&gt;
: Switch '''on''' pixel selection based on contrast.&lt;br /&gt;
; ‘--HardMask’&lt;br /&gt;
: Select the best pixel from the image stack and ignore all others. Without this option Enfuse uses all pixels in the stack and weights them according to their respective quality, which in our case would be contrast. Without ‘--HardMask’ the result will always look a bit soft. See section [[#SEC14|Contrast Weighting]].&lt;br /&gt;
&lt;br /&gt;
If you want to see some entertaining progress messages – contrast weighting takes a while –, also pass the ‘-v’ option for a verbose progress report.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Basic-Focus-Stacking}} {{anchor|SEC38}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|6.6.4 }}Basic Focus Stacking====&lt;br /&gt;
&lt;br /&gt;
For a large class of image stacks Enfuse's default algorithm, as selected in [[#SEC37|Contrast Based Fusing]], to determine the sharpness produces nice results. The algorithm uses a moving square window, the so called contrast window. It computes the standard deviation of the pixels inside of the window. The program then selects the window's center pixel of the image in the stack where the standard deviation is largest, this is the local contrast reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
However, the algorithm fails to deliver good masks for images which exhibit high contrast edges on the scale of the contrast window size. The typical artifacts that show up are&lt;br /&gt;
&lt;br /&gt;
* faint dark seams on the light side of the high contrast edges and&lt;br /&gt;
* extremely soft, slighly lighter seams on the dark side of the high contrast edges,&lt;br /&gt;
&lt;br /&gt;
where the distance of the seams from the middle of the edge is comparable to the contrast window size.&lt;br /&gt;
&lt;br /&gt;
If your results do not show any of this artifacts, stick with the basic algorithm. Advanced focus stacking as described in the next sections delivers superior results in case of artifacts, though requires manually tuning several parameters.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Advanced-Focus-Stacking}} {{anchor|SEC39}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|6.6.5 }}Advanced Focus Stacking====&lt;br /&gt;
&lt;br /&gt;
If your fused image shows any of the defects described in the previous section, you can try a more difficult to use algorithm that effectively works around the seam artifacts. It is described in the next section.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;menu&amp;quot;&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC40|{{NotTOC|6.6.5.1 }}A Detailed Look at the Problem]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | What is the problem Kenneth?&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC41|{{NotTOC|6.6.5.2 }}Laplacian Edge Detection]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Using a Laplacian-of- Gaussian to detect edges&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC42|{{NotTOC|6.6.5.3 }}Local Contrast Enhancement]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | Boosting local contrast before weighting&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  |&lt;br /&gt;
[[#SEC43|{{NotTOC|6.6.5.4 }}Suppressing Noise or Recognizing Faint Edges]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot;  | The best of both worlds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Local-Contrast-Problem}} {{anchor|SEC40}}&lt;br /&gt;
&lt;br /&gt;
====={{NotTOC|6.6.5.1 }}A Detailed Look at the Problem=====&lt;br /&gt;
&lt;br /&gt;
Let us use an example to illustrate the problem of relating the sharpness with the local contrast variations. Say we use a 5× 5 contrast window. Moreover, let &amp;lt;code&amp;gt;sharp_edge&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;smooth_edge&amp;lt;/code&amp;gt; be two specific configurations:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 sharp_edge =  #(    0,    0,  200,    0,    0;&lt;br /&gt;
                     0,  225,    0,    0,    0;&lt;br /&gt;
                     0,  255,    0,    0,    0;&lt;br /&gt;
                   215,    0,    0,    0,    0;&lt;br /&gt;
                   200,    0,    0,    0,    0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 smooth_edge = #(    0,   62,  125,  187,  250;&lt;br /&gt;
                     1,   63,  126,  188,  251;&lt;br /&gt;
                     2,   65,  127,  190,  252;&lt;br /&gt;
                     3,   66,  128,  191,  253;&lt;br /&gt;
                     5,   67,  130,  192,  255)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Imagess [[#fig_003asharp_002dedge|fig:sharp-edge]] and [[#fig_003asmooth_002dedge|fig:smooth-edge]] show plots of the matrices &amp;lt;code&amp;gt;sharp_edge&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;smooth_edge&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;float&amp;quot;&amp;gt;{{anchor|fig_003asharp_002dedge}}&lt;br /&gt;
&lt;br /&gt;
[[Image:sharp-edge.png|545px|sharp-edge]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Figure 6.1: 3D plot augmented by contour plot of the matrix &amp;lt;code&amp;gt;sharp_edge&amp;lt;/code&amp;gt;. '''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;float&amp;quot;&amp;gt;{{anchor|fig_003asmooth_002dedge}}&lt;br /&gt;
&lt;br /&gt;
[[Image:smooth-edge.png|531px|smooth-edge]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Figure 6.2: 3D plot augmented by contour plot of the matrix &amp;lt;code&amp;gt;smooth_edge&amp;lt;/code&amp;gt;. '''&lt;br /&gt;
&lt;br /&gt;
Our intuition lets us “see” an extremely sharp edge in the first matrix, whereas the second one describes an extraordinarily smooth diagonal intensity ramp. Which one will be selected? Well, &amp;lt;code&amp;gt;sharp_edge&amp;lt;/code&amp;gt; has a standard deviation of 88.07 and &amp;lt;code&amp;gt;smooth_edge&amp;lt;/code&amp;gt; has 88.41. Thus, &amp;lt;code&amp;gt;smooth_edge&amp;lt;/code&amp;gt; wins, contradicting our intuition and even worse our intention!&lt;br /&gt;
&lt;br /&gt;
Sadly, configurations like &amp;lt;code&amp;gt;smooth_edge&amp;lt;/code&amp;gt; occur more often with high-quality, good [http://www.luminous-landscape.com/essays/bokeh.shtml bokeh] lenses. In fact they are the very manifestation of “good bokeh”. Therefore, Laplacian edge detection plays an important role when working with high-quality lenses.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Laplacian-Edge-Detection}} {{anchor|SEC41}}&lt;br /&gt;
&lt;br /&gt;
====={{NotTOC|6.6.5.2 }}Laplacian Edge Detection=====&lt;br /&gt;
&lt;br /&gt;
Enfuse provides a Laplacian-based algorithm that can help in situations where weighting based on the standard deviation fails. It is activated with a positive value for &amp;lt;var&amp;gt;SCALE&amp;lt;/var&amp;gt; in &amp;lt;code&amp;gt;--EdgeScale&amp;lt;/code&amp;gt;=&amp;lt;var&amp;gt;SCALE&amp;lt;/var&amp;gt;. The Laplacian will detect two-dimensional ''curvature'' on the scale of &amp;lt;var&amp;gt;SCALE&amp;lt;/var&amp;gt;. Here and in the following we simply speak of “curvature” where we mean “magnitude of curvature”. This is, we shall not distinguish between convex and concave edges. Enfuse always use the magnitude of curvature for weighting.&lt;br /&gt;
&lt;br /&gt;
Typically, &amp;lt;var&amp;gt;SCALE&amp;lt;/var&amp;gt; ranges between 0.1pixels and 0.5pixels, where 0.3pixels is a good starting point. To find the best value for &amp;lt;var&amp;gt;SCALE&amp;lt;/var&amp;gt; though, usually some experimentation will be necessary. Use the ‘--debug’ option to get all ‘&amp;lt;tt&amp;gt;mask####.tif&amp;lt;/tt&amp;gt;’ and ‘&amp;lt;tt&amp;gt;mask####_wta.tif&amp;lt;/tt&amp;gt;’ files (see section [[#SEC22|Understanding Masks]]) and check how different scales affect the artifacts.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Local-Contrast-Enhancement}} {{anchor|SEC42}}&lt;br /&gt;
&lt;br /&gt;
====={{NotTOC|6.6.5.3 }}Local Contrast Enhancement=====&lt;br /&gt;
&lt;br /&gt;
Sometimes Enfuse misses smoother edges with ‘--EdgeScale’ and a little local contrast enhancement (LCE) helps. Set &amp;lt;code&amp;gt;--EdgeScale&amp;lt;/code&amp;gt;=&amp;lt;var&amp;gt;SCALE&amp;lt;/var&amp;gt;:&amp;lt;var&amp;gt;LCE-SCALE&amp;lt;/var&amp;gt;:&amp;lt;var&amp;gt;LCE-FACTOR&amp;lt;/var&amp;gt;. where &amp;lt;var&amp;gt;LCE-SCALE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;LCE-FACTOR&amp;lt;/var&amp;gt; work like the [http://www.cambridgeincolour.com/tutorials/unsharp-mask.htm unsharp mask] filters in various image manipulation programs. Start with &amp;lt;var&amp;gt;LCE-SCALE&amp;lt;/var&amp;gt; ten times the value of &amp;lt;var&amp;gt;SCALE&amp;lt;/var&amp;gt; and a &amp;lt;var&amp;gt;LCE-FACTOR&amp;lt;/var&amp;gt; of 2–5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;LCE-SCALE&amp;lt;/var&amp;gt; can be specified as a percentage of &amp;lt;var&amp;gt;SCALE&amp;lt;/var&amp;gt;. &amp;lt;var&amp;gt;LCE-FACTOR&amp;lt;/var&amp;gt; also can be specified as a percentage. Examples:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 --EdgeScale=0.3:3.0:3&lt;br /&gt;
 --EdgeScale=0.3:1000%:3.0&lt;br /&gt;
 --EdgeScale=0.3:3:300%&lt;br /&gt;
 --EdgeScale=0.3:1000%:300%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
By default LCE is turned off.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Suppressing-Noise-or-Recognizing-Faint-Edges}} {{anchor|SEC43}}&lt;br /&gt;
&lt;br /&gt;
====={{NotTOC|6.6.5.4 }}Suppressing Noise or Recognizing Faint Edges=====&lt;br /&gt;
&lt;br /&gt;
The Laplacian-based algorithm much better resists the seam problem than the local-contrast algorithm, but it has two shortcomings:&lt;br /&gt;
&lt;br /&gt;
# The Laplacian is very susceptible to noise and&lt;br /&gt;
# it fails to recognize faint edges.&lt;br /&gt;
&lt;br /&gt;
The ‘--MinCurvature’ option helps to mitigate both flaws.&lt;br /&gt;
&lt;br /&gt;
The argument to &amp;lt;code&amp;gt;--MinCurvature&amp;lt;/code&amp;gt;=&amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; either is an absolute lightness value, for example 0..255 for 8bit data and 0..65535 for 16bit data, or, when given with a ‘%’-sign it is a relative lightness value ranging from 0% to 100%.&lt;br /&gt;
&lt;br /&gt;
To suppress unreal edges or counter excessive noise use the ‘--MinCurvature’ option with a ''negative'' curvature measure &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt;. This forces all curvatures less than -&amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; to zero.&lt;br /&gt;
&lt;br /&gt;
A ''positive'' curvature measure &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; makes Enfuse merge the LoG data with the local-contrast data. Every curvature larger or equal to &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; is left unchanged and every curvature less than &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt; gets replaced by the rescaled local-contrast data such that the largest local contrast is just below &amp;lt;var&amp;gt;CURVATURE&amp;lt;/var&amp;gt;. This combines the best parts of both techniques and ensures a precise edge detection over the whole range of edge curvatures.&lt;br /&gt;
&lt;br /&gt;
'''Summary'''&lt;br /&gt;
&lt;br /&gt;
; --EdgeScale=0.3&lt;br /&gt;
: Use LoG to detect edges on a scale of 0.3 pixels. Apply the default grayscale projector: &amp;lt;code&amp;gt;average&amp;lt;/code&amp;gt;.&lt;br /&gt;
; --EdgeScale=0.3 --GrayProjector=l-star&lt;br /&gt;
: Use LoG to detect edges on a scale of 0.3 pixels. Apply the L*-grayscale projector.&lt;br /&gt;
; --EdgeScale=0.3:3:300%&lt;br /&gt;
: Use LoG to detect edges on a scale of 0.3 pixels, pre-sharpen the input images by 300% on a scale of 3 pixels. Apply the default grayscale projector: &amp;lt;code&amp;gt;average&amp;lt;/code&amp;gt;.&lt;br /&gt;
; --EdgeScale=0.3 --MinCurvature=-0.5%&lt;br /&gt;
: Use LoG to detect edges on a scale of 0.3 pixels. Apply the default grayscale projector: &amp;lt;code&amp;gt;average&amp;lt;/code&amp;gt; and throw away all edges with a curvature of less than 0.5%.&lt;br /&gt;
; --EdgeScale=0.3 --MinCurvature=0.5% --ContrastWindowSize=7&lt;br /&gt;
: Use LoG to detect edges on a scale of 0.3 pixels. Apply the default grayscale projector: &amp;lt;code&amp;gt;average&amp;lt;/code&amp;gt; and throw away all edges with a curvature of less than 0.5% and replace the LoG data between 0% and 0.5% with SDev data. Usa a window of 7× 7 pixel window to compute the SDev.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Expert-Stacking}} {{anchor|SEC44}}&lt;br /&gt;
&lt;br /&gt;
===={{NotTOC|6.6.6 }}Tips For Focus Stacking Experts====&lt;br /&gt;
&lt;br /&gt;
We have collected some advice of which even focus stacking adepts can benefit.&lt;br /&gt;
&lt;br /&gt;
* {{anchor|IDX88}} Ensure that the sensor is clean. Aligning focus stacks requires varying the viewing angle, which corresponds to a changing focal length. Hence, the same pixel on the sensor gets mapped onto different positions in the final image. Dirt spots will occur not only once but as many times as there are images in the stack – something unfunny to correct in postprocessing. {{anchor|IDX89}} {{anchor|IDX90}} {{anchor|IDX91}} {{anchor|IDX92}} Along the same lines the photographer may want to consider to prepare dark frames before and possibly also after the shoot of the focus stack to subtract hot pixels before fusion.&lt;br /&gt;
* {{anchor|IDX93}} Prefer a low-sensitivity setting on the camera to get low-noise images. Fusing with ‘--HardMask’ does not average and thus does not suppress any noise in the input images.&lt;br /&gt;
* If the transition of in-focus to out-of-focus areas is too abrupt, record the images with closest and farthest focusing distances twice: first with the intended working aperture and a second time with a small aperture (large aperture number). {{anchor|IDX94}} {{anchor|IDX95}} The small aperture will give the fused image a more natural in-focus to out-of-focus transition and the working-aperture shots supply the detail in the in-focus regions.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Helpful-Programs}} {{anchor|SEC45}}&lt;br /&gt;
&lt;br /&gt;
=={{NotTOC|7. }}Helpful Additional Programs==&lt;br /&gt;
&lt;br /&gt;
Several libraries and programs have proven helpful when working with Enfuse and Enblend.&lt;br /&gt;
&lt;br /&gt;
; '''Raw Image Conversion'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX96}} {{anchor|IDX97}} [http://www.cybercom.net/~dcoffin/dcraw/ DCRaw] is a universal raw-converter.&lt;br /&gt;
:* {{anchor|IDX98}} {{anchor|IDX99}} {{anchor|IDX100}} [http://ufraw.sourceforge.net/ UFRaw], a raw converter based on DCRaw, adds a GUI (&amp;lt;code&amp;gt;ufraw&amp;lt;/code&amp;gt;), versatile batch processing (&amp;lt;code&amp;gt;ufraw-batch&amp;lt;/code&amp;gt;), and some additional features like, for example, cropping, noise reduction with wavelets, and automatic lens error correction.&lt;br /&gt;
&lt;br /&gt;
; '''Image Alignment and Rendering'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX101}} {{anchor|IDX102}} [http://auricle.dyndns.org/ALE/ ALE], David Hilvert's anti-lamenessing engine for the real die-hard command-line users aligns, filters, and renders images.&lt;br /&gt;
:* {{anchor|IDX103}} {{anchor|IDX104}} [http://hugin.sourceforge.net/ Hugin] is a GUI that aligns and stitches images. {{anchor|IDX105}} {{anchor|IDX106}} {{anchor|IDX107}} &amp;lt;br&amp;gt;It comes with several command line tools, like &amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt; to stitch panorama images, &amp;lt;code&amp;gt;align_image_stack&amp;lt;/code&amp;gt; to align overlapping images for HDR or create focus stacks, and &amp;lt;code&amp;gt;fulla&amp;lt;/code&amp;gt; to correct lens errors.&lt;br /&gt;
:* {{anchor|IDX108}} {{anchor|IDX109}} {{anchor|IDX110}} [http://panotools.sourceforge.net/ PanoTools] the successor of Helmut Dersch's [http://www.all-in-one.ee/~dersch/ original PanoTools] offers a set of command-line dirven applications to create panoramas. Most notable are &amp;lt;code&amp;gt;PTOptimizer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;PTmender&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; '''Image Manipulation'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX111}} {{anchor|IDX112}} [http://www.cinepaint.org/ CinePaint] is a branch of an early Gimp forked off at version 1.0.4. It sports much less features than the current Gimp, but offers 8bit, 16bit and 32bit color channels, HDR (for example floating-point TIFF, and OpenEXR), and a tightly integrated color management system.&lt;br /&gt;
:* {{anchor|IDX113}} {{anchor|IDX114}} The [www.gimp.org/ Gimp] is a general purpose image manipulation program. At the time of this writing it is still limited to images with only 8bits per channel.&lt;br /&gt;
:* {{anchor|IDX115}} {{anchor|IDX116}} [http://www.imagemagick.org/ ImageMagick] and its clone [http://www.graphicsmagick.org/ GraphicsMagick] are general purpose command-line driven image manipulation programs.&lt;br /&gt;
&lt;br /&gt;
; '''High Dynamic Range'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX117}} [http://www.openexr.com/ OpenEXR] offers libraries and some programs to work with the EXR HDR format.&lt;br /&gt;
:* {{anchor|IDX118}} [http://pfstools.sourceforge.net/ PFSTools] create, modify, and tonemap high-dynamic range images.&lt;br /&gt;
&lt;br /&gt;
; '''Libraries'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX119}} [http://www.ijg.org/ LibJPEG] is a library for handling the JPEG (JFIF) image format.&lt;br /&gt;
:* {{anchor|IDX120}} [http://www.libpng.org/pub/png/libpng.html LibPNG] is a library that handles the Portable Network Graphics (PNG) image format.&lt;br /&gt;
:* {{anchor|IDX121}} [http://www.remotesensing.org/libtiff/ LibTIFF] offers a library and utility programs to manipulate the ubiquitous Tagged Image File Format, TIFF. {{anchor|IDX122}} The nifty &amp;lt;code&amp;gt;tiffinfo&amp;lt;/code&amp;gt; command quickly inquires the properties of TIFF files.&lt;br /&gt;
&lt;br /&gt;
; '''Meta-Data Handling'''&lt;br /&gt;
&lt;br /&gt;
:* {{anchor|IDX123}} {{anchor|IDX124}} [http://www.sno.phy.queensu.ca/~phil/exiftool/ EXIFTool] reads and writes EXIF meta data. In particular it copies meta data from one image to another.&lt;br /&gt;
:* {{anchor|IDX125}} {{anchor|IDX126}} [http://www.littlecms.com/ LittleCMS] is the color management library used by Hugin, DCRaw, UFRaw, Enblend, and Enfuse. It supplies some binaries, too. &amp;lt;code&amp;gt;tifficc&amp;lt;/code&amp;gt;, an ICC color profile applier, is of particular interest.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Authors}} {{anchor|SEC46}}&lt;br /&gt;
&lt;br /&gt;
==A. Authors==&lt;br /&gt;
&lt;br /&gt;
* Andrew Mihal ([mailto:acmihal@users.sourceforge.net acmihal@users.sourceforge.net]) has written Enfuse.&lt;br /&gt;
* Thanks to Simon Andriot and Pablo Joubert for suggesting the Mertens-Kautz-Van Reeth technique and the name “Enfuse”.&lt;br /&gt;
* The contrast criteria was added by Pablo d'Angelo ([mailto:dangelo@users.sourceforge.net dangelo@users.sourceforge.net]).&lt;br /&gt;
* Dr. Christoph L. Spiel added the gray projectors, the LoG-based edge detection, an O(n)-algorithm for the calculation of local contrast, and entropy weighting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|List-of-Tables}} {{anchor|SEC48}}&lt;br /&gt;
&lt;br /&gt;
==List of Tables==&lt;br /&gt;
&lt;br /&gt;
; [[#tab_003aweighting_002dcriteria|Table 1.1]]&lt;br /&gt;
: Weighting criteria&lt;br /&gt;
; [[#tab_003acache_002dsize_002dsettings|Table 5.1]]&lt;br /&gt;
: Suggested cache-size settings&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|List-of-Figures}} {{anchor|SEC49}}&lt;br /&gt;
&lt;br /&gt;
==List of Figures==&lt;br /&gt;
&lt;br /&gt;
; [[#fig_003aentropy_002dcutoff|Figure 2.1]]&lt;br /&gt;
: Entropy cutoff function&lt;br /&gt;
; [[#fig_003agaussian|Figure 3.1]]&lt;br /&gt;
: Gaussian function&lt;br /&gt;
; [[#fig_003alocal_002danalysis_002dwindow|Figure 3.2]]&lt;br /&gt;
: Local analysis window&lt;br /&gt;
; [[#fig_003alaplacian_002dof_002dgaussian|Figure 3.3]]&lt;br /&gt;
: Laplacian-of- Gaussian&lt;br /&gt;
; [[#fig_003aentropy|Figure 3.4]]&lt;br /&gt;
: Entropy function&lt;br /&gt;
; [[#fig_003asharp_002dedge|Figure 6.1]]&lt;br /&gt;
: Sharp edge&lt;br /&gt;
; [[#fig_003asmooth_002dedge|Figure 6.2]]&lt;br /&gt;
: Smooth edge&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Program-Index}} {{anchor|SEC50}}&lt;br /&gt;
&lt;br /&gt;
==Program Index==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!  | Jump to:&lt;br /&gt;
|&lt;br /&gt;
[[#SEC50_0|'''A''']] [[#SEC50_1|'''C''']] [[#SEC50_2|'''D''']] [[#SEC50_3|'''E''']] [[#SEC50_4|'''F''']] [[#SEC50_5|'''G''']] [[#SEC50_6|'''H''']] [[#SEC50_7|'''I''']] [[#SEC50_8|'''L''']] [[#SEC50_9|'''N''']] [[#SEC50_10|'''O''']] [[#SEC50_11|'''P''']] [[#SEC50_12|'''T''']] [[#SEC50_13|'''U''']]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;index-pg&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Index Entry&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Section&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_0}} A&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX101|&amp;lt;code&amp;gt;ALE&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX106|&amp;lt;code&amp;gt;align_image_stack&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX102|&amp;lt;code&amp;gt;Anti-Lamenessing Engine&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_1}} C&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX112|&amp;lt;code&amp;gt;cinepaint&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX40|&amp;lt;code&amp;gt;CinePaint&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX111|&amp;lt;code&amp;gt;CinePaint&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_2}} D&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX96|&amp;lt;code&amp;gt;DCRaw&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX97|&amp;lt;code&amp;gt;dcraw&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_3}} E&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX123|&amp;lt;code&amp;gt;EXIFTool&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX124|&amp;lt;code&amp;gt;exiftool&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_4}} F&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX107|&amp;lt;code&amp;gt;fulla&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_5}} G&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX39|&amp;lt;code&amp;gt;Gimp&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX114|&amp;lt;code&amp;gt;gimp&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX113|&amp;lt;code&amp;gt;Gimp&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX116|&amp;lt;code&amp;gt;GraphicsMagick&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_6}} H&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX104|&amp;lt;code&amp;gt;hugin&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX44|&amp;lt;code&amp;gt;Hugin&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX78|&amp;lt;code&amp;gt;Hugin&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC27|{{NotTOC|6.1 }}What Makes Images Fusable?]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX103|&amp;lt;code&amp;gt;Hugin&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_7}} I&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX75|&amp;lt;code&amp;gt;identify&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC23|{{NotTOC|4.1 }}Masks in Input Files]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX115|&amp;lt;code&amp;gt;ImageMagick&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_8}} L&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX119|&amp;lt;code&amp;gt;LibJPEG&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX120|&amp;lt;code&amp;gt;LibPNG&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX121|&amp;lt;code&amp;gt;LibTIFF&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX125|&amp;lt;code&amp;gt;LittleCMS, TiffICC&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_9}} N&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX43|&amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX105|&amp;lt;code&amp;gt;nona&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_10}} O&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX117|&amp;lt;code&amp;gt;OpenEXR&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_11}} P&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX108|&amp;lt;code&amp;gt;PanoTools&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX118|&amp;lt;code&amp;gt;PFSTools&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX110|&amp;lt;code&amp;gt;PTmender&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX109|&amp;lt;code&amp;gt;PTOptimizer&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_12}} T&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX126|&amp;lt;code&amp;gt;tifficc&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX76|&amp;lt;code&amp;gt;tiffinfo&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC23|{{NotTOC|4.1 }}Masks in Input Files]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX122|&amp;lt;code&amp;gt;tiffinfo&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC50_13}} U&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX98|&amp;lt;code&amp;gt;UFRaw&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX99|&amp;lt;code&amp;gt;ufraw&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX100|&amp;lt;code&amp;gt;ufraw-batch&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!  | Jump to:&lt;br /&gt;
|&lt;br /&gt;
[[#SEC50_0|'''A''']] [[#SEC50_1|'''C''']] [[#SEC50_2|'''D''']] [[#SEC50_3|'''E''']] [[#SEC50_4|'''F''']] [[#SEC50_5|'''G''']] [[#SEC50_6|'''H''']] [[#SEC50_7|'''I''']] [[#SEC50_8|'''L''']] [[#SEC50_9|'''N''']] [[#SEC50_10|'''O''']] [[#SEC50_11|'''P''']] [[#SEC50_12|'''T''']] [[#SEC50_13|'''U''']]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|Option-Index}} {{anchor|SEC51}}&lt;br /&gt;
&lt;br /&gt;
==Option Index==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!  | Jump to:&lt;br /&gt;
|&lt;br /&gt;
[[#SEC51_0|'''-''']]&amp;lt;br /&amp;gt;[[#SEC51_1|'''S''']]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;index-op&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Index Entry&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Section&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC51_0}} -&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX29|&amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC25|&amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC25|{{NotTOC|5. }}Tuning Memory Usage]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX31|&amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX8|&amp;lt;code&amp;gt;--compression&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX53|&amp;lt;code&amp;gt;--ContrastWindowSize&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX34|&amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX35|&amp;lt;code&amp;gt;--depth&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX54|&amp;lt;code&amp;gt;--EdgeScale&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX55|&amp;lt;code&amp;gt;--EntropyCutoff&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX56|&amp;lt;code&amp;gt;--EntropyWindowSize&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX41|&amp;lt;code&amp;gt;-f&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX37|&amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX57|&amp;lt;code&amp;gt;--GrayProjector&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX17|&amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX67|&amp;lt;code&amp;gt;--HardMask&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC11|&amp;lt;code&amp;gt;--HardMask&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC11|{{NotTOC|3.1.2 }}Disabling Averaging: Option ‘-- HardMask’]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX93|&amp;lt;code&amp;gt;--HardMask&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX18|&amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX19|&amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX45|&amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC25|&amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC25|{{NotTOC|5. }}Tuning Memory Usage]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX68|&amp;lt;code&amp;gt;--MinCurvature&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX22|&amp;lt;code&amp;gt;-o&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX25|&amp;lt;code&amp;gt;-V&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX23|&amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX24|&amp;lt;code&amp;gt;--verbose&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX26|&amp;lt;code&amp;gt;--version&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX27|&amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX47|&amp;lt;code&amp;gt;--wContrast&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Fusion Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX48|&amp;lt;code&amp;gt;--wEntropy&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Fusion Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX49|&amp;lt;code&amp;gt;--wExposure&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Fusion Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX50|&amp;lt;code&amp;gt;--wMu&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Fusion Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX51|&amp;lt;code&amp;gt;--wSaturation&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Fusion Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX52|&amp;lt;code&amp;gt;--wSigma&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Fusion Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC51_1}} S&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX69|&amp;lt;code&amp;gt;SoftMask&amp;lt;/code&amp;gt;]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!  | Jump to:&lt;br /&gt;
|&lt;br /&gt;
[[#SEC51_0|'''-''']]&amp;lt;br /&amp;gt;[[#SEC51_1|'''S''']]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|General-Index}} {{anchor|SEC52}}&lt;br /&gt;
&lt;br /&gt;
==General Index==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!  | Jump to:&lt;br /&gt;
|&lt;br /&gt;
[[#SEC52_0|'''3''']]&amp;lt;br /&amp;gt;[[#SEC52_1|'''A''']] [[#SEC52_2|'''B''']] [[#SEC52_3|'''C''']] [[#SEC52_4|'''D''']] [[#SEC52_5|'''E''']] [[#SEC52_6|'''F''']] [[#SEC52_7|'''G''']] [[#SEC52_8|'''H''']] [[#SEC52_9|'''I''']] [[#SEC52_10|'''L''']] [[#SEC52_11|'''M''']] [[#SEC52_12|'''N''']] [[#SEC52_13|'''O''']] [[#SEC52_14|'''P''']] [[#SEC52_15|'''S''']] [[#SEC52_16|'''T''']] [[#SEC52_17|'''U''']] [[#SEC52_18|'''V''']] [[#SEC52_19|'''W''']]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;index-cp&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Index Entry&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Section&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_0}} 3&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX28|360° panorama]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_1}} A&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC39|advanced focus stacking]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC39|{{NotTOC|6.6.5 }}Advanced Focus Stacking]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC43|advanced focus stacking, recognizing faint edges]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC43|{{NotTOC|6.6.5.4 }}Suppressing Noise or Recognizing Faint Edges]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC43|advanced focus stacking, suppressing noise]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC43|{{NotTOC|6.6.5.4 }}Suppressing Noise or Recognizing Faint Edges]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX6|alpha channel]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX38|alpha channels, unassociated]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX87|aperture, sweet spot]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC35|{{NotTOC|6.6.1 }}Why create focus stacks?]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC26|applications of enfuse]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC26|{{NotTOC|6. }}Applications of Enfuse]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC46|authors, list of]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC46|A. Authors]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC10|average, weighted]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC10|{{NotTOC|3.1.1 }}Weighted Average]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC11|averaging, disabling]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC11|{{NotTOC|3.1.2 }}Disabling Averaging: Option ‘-- HardMask’]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_2}} B&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC38|basic focus stacking]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC38|{{NotTOC|6.6.4 }}Basic Focus Stacking]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|binary mask]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|{{NotTOC|4. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX36|bits per channel]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX80|blending exposures]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC31|{{NotTOC|6.3.2 }}Common Misconceptions]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX1|Burt-Adelson multiresolution spline]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_3}} C&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX7|channel, alpha]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX33|CIECAM02]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX82|circle-of-confusion]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC35|{{NotTOC|6.6.1 }}Why create focus stacks?]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX83|CoC]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC35|{{NotTOC|6.6.1 }}Why create focus stacks?]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX32|color appearance model]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX10|compression]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX12|compression, deflate]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX14|compression, LZW]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX16|compression, packbits]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC37|contrased-based fusing]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC37|{{NotTOC|6.6.3 }}Contrast Based Fusing]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC42|contrast enhancement, local]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC42|{{NotTOC|6.6.5.3 }}Local Contrast Enhancement]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC19|contrast weighting using a blend of methods]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC19|{{NotTOC|3.4.3 }}Blend Standard Deviation and Laplacian of Gaussian]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC18|contrast weighting using laplacian- of–gaussian]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC18|{{NotTOC|3.4.2 }}Laplacian of Gaussian]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC15|contrast weighting using standard deviation]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC15|{{NotTOC|3.4.1 }}Standard Deviation]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX62|conversion, L*a*b*]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_4}} D&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX89|dark frame]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX11|deflate compression]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC7|delimiters, option]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC7|{{NotTOC|2.5 }}Option Delimiters]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX84|depth-of-field]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC35|{{NotTOC|6.6.1 }}Why create focus stacks?]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC34|depth-of-focus increase]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC34|{{NotTOC|6.6 }}Focus Stacks – Depth-of-Field Increase]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX79|digital blending]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC31|{{NotTOC|6.3.2 }}Common Misconceptions]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC11|disabling averaging]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC11|{{NotTOC|3.1.2 }}Disabling Averaging: Option ‘-- HardMask’]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX85|DOF]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC35|{{NotTOC|6.6.1 }}Why create focus stacks?]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC29|dynamic range increase]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC29|{{NotTOC|6.3 }}Exposure Series – Dynamic Range Increase]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC32|dynamic range increase]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC32|{{NotTOC|6.4 }}Flash Exposure Series – Directed Lighting]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_5}} E&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC41|edge detection, laplacian]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC41|{{NotTOC|6.6.5.2 }}Laplacian Edge Detection]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX77|&amp;lt;code&amp;gt;ENBLEND_CACHE_IMAGES&amp;lt;/code&amp;gt; (preprocessor symbol)]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC25|{{NotTOC|5. }}Tuning Memory Usage]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX74|entropy]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC21|{{NotTOC|3.5 }}Entropy Weighting]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX73|entropy, definition]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC21|{{NotTOC|3.5 }}Entropy Weighting]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC17|estimators]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC17|{{NotTOC|3.4.1.2 }}Estimators]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX70|expectation value]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC16|{{NotTOC|3.4.1.1 }}Statistical Moments]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|expert focus stacking ttops]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC29|exposure series]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC29|{{NotTOC|6.3 }}Exposure Series – Dynamic Range Increase]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC31|exposure series, common misconceptions]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC31|{{NotTOC|6.3.2 }}Common Misconceptions]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC30|exposure series, tips for beginners]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC30|{{NotTOC|6.3.1 }}Tips For Beginners]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_6}} F&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC32|flash exposure series]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC32|{{NotTOC|6.4 }}Flash Exposure Series – Directed Lighting]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC39|focus stacking, advanced]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC39|{{NotTOC|6.6.5 }}Advanced Focus Stacking]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC38|focus stacking, basic]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC38|{{NotTOC|6.6.4 }}Basic Focus Stacking]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC34|focus stacks]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC34|{{NotTOC|6.6 }}Focus Stacks – Depth-of-Field Increase]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC37|focus stacks, fusing]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC37|{{NotTOC|6.6.3 }}Contrast Based Fusing]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC36|focus stacks, preparation]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC36|{{NotTOC|6.6.2 }}Preparing Focus Stacks]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC35|focus stacks, why create them]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC35|{{NotTOC|6.6.1 }}Why create focus stacks?]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC37|fusing, contrased-based]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC37|{{NotTOC|6.6.3 }}Contrast Based Fusing]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_7}} G&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC52|general index]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC52|General Index]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX58|gray projector]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX59|gray projector, ‘average’]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX66|gray projector, ‘channel- mixer’]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX60|gray projector, ‘l- star’]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX63|gray projector, ‘lightness’]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX65|gray projector, ‘luminance’]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX64|gray projector, ‘value’]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_8}} H&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|helpful programs]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX91|hot pixels]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_9}} I&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX30|image cache, block size]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX46|image cache, cache size]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC27|images, fusable]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC27|{{NotTOC|6.1 }}What Makes Images Fusable?]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC52|index, general]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC52|General Index]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC51|index, option]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC51|Option Index]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC50|index, program]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC50|Program Index]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC23|input masks]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC23|{{NotTOC|4.1 }}Masks in Input Files]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC2|invocation]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC2|{{NotTOC|2. }}Invocation]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_10}} L&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX61|L*a*b* conversion]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC41|laplacian edge detection]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC41|{{NotTOC|6.6.5.2 }}Laplacian Edge Detection]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC18|Laplacian of Gaussian]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC18|{{NotTOC|3.4.2 }}Laplacian of Gaussian]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX21|levels, pyramid]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX81|light probe]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC31|{{NotTOC|6.3.2 }}Common Misconceptions]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC15|local analysis window]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC15|{{NotTOC|3.4.1 }}Standard Deviation]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC42|local contrast enhancement]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC42|{{NotTOC|6.6.5.3 }}Local Contrast Enhancement]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC40|local contrast problem]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC40|{{NotTOC|6.6.5.1 }}A Detailed Look at the Problem]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC18|LoG]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC18|{{NotTOC|3.4.2 }}Laplacian of Gaussian]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX13|LZW compression]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_11}} M&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|mask, binary]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|{{NotTOC|4. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|mask, weight]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|{{NotTOC|4. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC23|masks, input files]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC23|{{NotTOC|4.1 }}Masks in Input Files]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|masks, undestanding]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|{{NotTOC|4. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC24|masks, weight]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC24|{{NotTOC|4.2 }}Weight Mask Files]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC25|memory, tuning usage of]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC25|{{NotTOC|5. }}Tuning Memory Usage]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC1|Mertens-Kautz-Van Reeth exposure fusion]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC20|mode of operation (SDev, LoG, …)]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC20|{{NotTOC|3.4.4 }}Scaling and Choice of Mode]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_12}} N&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX94|natural sharp-unsharp transition]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC28|noise reduction]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC28|{{NotTOC|6.2 }}Repetition – Noise Reduction]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_13}} O&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC7|option delimiters]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC7|{{NotTOC|2.5 }}Option Delimiters]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC51|option index]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC51|Option Index]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|options, common]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|options, expert]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|options, extended]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC5|options, fusion]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC5|{{NotTOC|2.3 }}Fusion Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX9|output file compression]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX42|output image, set size of]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC1|overview]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_14}} P&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX15|packbits compression]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX92|pixels, hot]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC33|polarization series]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC33|{{NotTOC|6.5 }}Polarization Series – Saturation Enhancement]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC16|probability function]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC16|{{NotTOC|3.4.1.1 }}Statistical Moments]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC40|problem, local contrast]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC40|{{NotTOC|6.6.5.1 }}A Detailed Look at the Problem]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC50|program index]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC50|Program Index]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|programs, helpful additional]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX20|pyramid levels]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_15}} S&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC33|saturation enhancement]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC33|{{NotTOC|6.5 }}Polarization Series – Saturation Enhancement]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC20|scaling of parameters]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC20|{{NotTOC|3.4.4 }}Scaling and Choice of Mode]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX88|sensor, use of clean]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC29|series, exposure]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC29|{{NotTOC|6.3 }}Exposure Series – Dynamic Range Increase]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC32|series, flash exposure]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC32|{{NotTOC|6.4 }}Flash Exposure Series – Directed Lighting]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC33|series, polarization]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC33|{{NotTOC|6.5 }}Polarization Series – Saturation Enhancement]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC28|series, simple]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC28|{{NotTOC|6.2 }}Repetition – Noise Reduction]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC28|simple series]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC28|{{NotTOC|6.2 }}Repetition – Noise Reduction]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX72|standard deviation]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC16|{{NotTOC|3.4.1.1 }}Statistical Moments]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC16|statistical moments]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC16|{{NotTOC|3.4.1.1 }}Statistical Moments]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX90|subtraction of dark frame]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX86|sweet spot aperture]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC35|{{NotTOC|6.6.1 }}Why create focus stacks?]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_16}} T&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|tips, focus stacking experts]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX95|transition, natural sharp-unsharp]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_17}} U&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|undestanding masks]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|{{NotTOC|4. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_18}} V&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX71|variance]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC16|{{NotTOC|3.4.1.1 }}Statistical Moments]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
! {{anchor|SEC52_19}} W&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|weight mask]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC22|{{NotTOC|4. }}Understanding Masks]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC24|weight masks]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC24|{{NotTOC|4.2 }}Weight Mask Files]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC10|weighted average]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC10|{{NotTOC|3.1.1 }}Weighted Average]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC8|weighting functions]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC8|{{NotTOC|3. }}Weighting Functions]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX4|weighting, contrast]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC14|weighting, contrast]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC14|{{NotTOC|3.4 }}Contrast Weighting]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC19|weighting, contrast using a blend of methods]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC19|{{NotTOC|3.4.3 }}Blend Standard Deviation and Laplacian of Gaussian]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC18|weighting, contrast using laplacian- of–gaussian]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC18|{{NotTOC|3.4.2 }}Laplacian of Gaussian]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC15|weighting, contrast using standard deviation]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC15|{{NotTOC|3.4.1 }}Standard Deviation]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX5|weighting, entropy]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC21|weighting, entropy]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC21|{{NotTOC|3.5 }}Entropy Weighting]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX2|weighting, exposure]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC12|weighting, exposure]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC12|{{NotTOC|3.2 }}Exposure Weighting]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC9|weighting, general concept of]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC9|{{NotTOC|3.1 }}Weighting Pixels]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#IDX3|weighting, saturation]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC13|weighting, saturation]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC13|{{NotTOC|3.3 }}Saturation Weighting]]&lt;br /&gt;
|-&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC15|window, local-analysis]]&lt;br /&gt;
|  |&lt;br /&gt;
[[#SEC15|{{NotTOC|3.4.1 }}Standard Deviation]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!  | Jump to:&lt;br /&gt;
|&lt;br /&gt;
[[#SEC52_0|'''3''']]&amp;lt;br /&amp;gt;[[#SEC52_1|'''A''']] [[#SEC52_2|'''B''']] [[#SEC52_3|'''C''']] [[#SEC52_4|'''D''']] [[#SEC52_5|'''E''']] [[#SEC52_6|'''F''']] [[#SEC52_7|'''G''']] [[#SEC52_8|'''H''']] [[#SEC52_9|'''I''']] [[#SEC52_10|'''L''']] [[#SEC52_11|'''M''']] [[#SEC52_12|'''N''']] [[#SEC52_13|'''O''']] [[#SEC52_14|'''P''']] [[#SEC52_15|'''S''']] [[#SEC52_16|'''T''']] [[#SEC52_17|'''U''']] [[#SEC52_18|'''V''']] [[#SEC52_19|'''W''']]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|SEC_Foot}}&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&lt;br /&gt;
{{anchor|FOOT1}} [[#DOCF1|(1)]] Tom Mertens, Jan Kautz, and Frank van Reeth, “Exposure Fusion”, Proceedings of the 15th Pacific Conference on Computer Graphics and Applications, pages 382–390.&lt;br /&gt;
&lt;br /&gt;
{{anchor|FOOT2}} [[#DOCF2|(2)]] Peter J. Burt and Edward H. Adelson, “A Multiresolution Spline With Application to Image Mosaics”, ACM Transactions on Graphics, Vol. 2, No. 4, October 1983, pages 217–236.&lt;br /&gt;
&lt;br /&gt;
{{anchor|FOOT3}} [[#DOCF3|(3)]] Downsampling with a good interpolator reduces noise, which might not desired to judge the image quality of the original-size image. Cropping might be an alternative, though.&lt;br /&gt;
&lt;br /&gt;
{{anchor|FOOT4}} [[#DOCF4|(4)]] In the current implementation a &amp;lt;code&amp;gt;floor(ContrastWindowSize / 2)&amp;lt;/code&amp;gt; wide border around the images remains unprocessed and gets a weight of zero.&lt;br /&gt;
&lt;br /&gt;
{{anchor|FOOT5}} [[#DOCF5|(5)]] [http://www.debevec.org/ Paul E. Debevec] defines: “A ''light probe'' image is an omnidirectional, high dynamic range image that records the incident illumination conditions at a particular point in space.”&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{anchor|SEC_Contents}}&lt;br /&gt;
&lt;br /&gt;
==Table of Contents==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;contents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{anchor|TOC1}} [[#SEC1|{{NotTOC|1. }}Overview]]&lt;br /&gt;
* {{anchor|TOC2}} [[#SEC2|{{NotTOC|2. }}Invocation]]&lt;br /&gt;
** {{anchor|TOC3}} [[#SEC3|{{NotTOC|2.1 }}Common Options]]&lt;br /&gt;
** {{anchor|TOC4}} [[#SEC4|{{NotTOC|2.2 }}Extended Options]]&lt;br /&gt;
** {{anchor|TOC5}} [[#SEC5|{{NotTOC|2.3 }}Fusion Options]]&lt;br /&gt;
** {{anchor|TOC6}} [[#SEC6|{{NotTOC|2.4 }}Expert Options]]&lt;br /&gt;
** {{anchor|TOC7}} [[#SEC7|{{NotTOC|2.5 }}Option Delimiters]]&lt;br /&gt;
* {{anchor|TOC8}} [[#SEC8|{{NotTOC|3. }}Weighting Functions]]&lt;br /&gt;
** {{anchor|TOC9}} [[#SEC9|{{NotTOC|3.1 }}Weighting Pixels]]&lt;br /&gt;
*** {{anchor|TOC10}} [[#SEC10|{{NotTOC|3.1.1 }}Weighted Average]]&lt;br /&gt;
*** {{anchor|TOC11}} [[#SEC11|{{NotTOC|3.1.2 }}Disabling Averaging: Option ‘-- HardMask’]]&lt;br /&gt;
** {{anchor|TOC12}} [[#SEC12|{{NotTOC|3.2 }}Exposure Weighting]]&lt;br /&gt;
** {{anchor|TOC13}} [[#SEC13|{{NotTOC|3.3 }}Saturation Weighting]]&lt;br /&gt;
** {{anchor|TOC14}} [[#SEC14|{{NotTOC|3.4 }}Contrast Weighting]]&lt;br /&gt;
*** {{anchor|TOC15}} [[#SEC15|{{NotTOC|3.4.1 }}Standard Deviation]]&lt;br /&gt;
**** {{anchor|TOC16}} [[#SEC16|{{NotTOC|3.4.1.1 }}Statistical Moments]]&lt;br /&gt;
**** {{anchor|TOC17}} [[#SEC17|{{NotTOC|3.4.1.2 }}Estimators]]&lt;br /&gt;
*** {{anchor|TOC18}} [[#SEC18|{{NotTOC|3.4.2 }}Laplacian of Gaussian]]&lt;br /&gt;
*** {{anchor|TOC19}} [[#SEC19|{{NotTOC|3.4.3 }}Blend Standard Deviation and Laplacian of Gaussian]]&lt;br /&gt;
*** {{anchor|TOC20}} [[#SEC20|{{NotTOC|3.4.4 }}Scaling and Choice of Mode]]&lt;br /&gt;
** {{anchor|TOC21}} [[#SEC21|{{NotTOC|3.5 }}Entropy Weighting]]&lt;br /&gt;
* {{anchor|TOC22}} [[#SEC22|{{NotTOC|4. }}Understanding Masks]]&lt;br /&gt;
** {{anchor|TOC23}} [[#SEC23|{{NotTOC|4.1 }}Masks in Input Files]]&lt;br /&gt;
** {{anchor|TOC24}} [[#SEC24|{{NotTOC|4.2 }}Weight Mask Files]]&lt;br /&gt;
* {{anchor|TOC25}} [[#SEC25|{{NotTOC|5. }}Tuning Memory Usage]]&lt;br /&gt;
* {{anchor|TOC26}} [[#SEC26|{{NotTOC|6. }}Applications of Enfuse]]&lt;br /&gt;
** {{anchor|TOC27}} [[#SEC27|{{NotTOC|6.1 }}What Makes Images Fusable?]]&lt;br /&gt;
** {{anchor|TOC28}} [[#SEC28|{{NotTOC|6.2 }}Repetition – Noise Reduction]]&lt;br /&gt;
** {{anchor|TOC29}} [[#SEC29|{{NotTOC|6.3 }}Exposure Series – Dynamic Range Increase]]&lt;br /&gt;
*** {{anchor|TOC30}} [[#SEC30|{{NotTOC|6.3.1 }}Tips For Beginners]]&lt;br /&gt;
*** {{anchor|TOC31}} [[#SEC31|{{NotTOC|6.3.2 }}Common Misconceptions]]&lt;br /&gt;
** {{anchor|TOC32}} [[#SEC32|{{NotTOC|6.4 }}Flash Exposure Series – Directed Lighting]]&lt;br /&gt;
** {{anchor|TOC33}} [[#SEC33|{{NotTOC|6.5 }}Polarization Series – Saturation Enhancement]]&lt;br /&gt;
** {{anchor|TOC34}} [[#SEC34|{{NotTOC|6.6 }}Focus Stacks – Depth-of-Field Increase]]&lt;br /&gt;
*** {{anchor|TOC35}} [[#SEC35|{{NotTOC|6.6.1 }}Why create focus stacks?]]&lt;br /&gt;
*** {{anchor|TOC36}} [[#SEC36|{{NotTOC|6.6.2 }}Preparing Focus Stacks]]&lt;br /&gt;
*** {{anchor|TOC37}} [[#SEC37|{{NotTOC|6.6.3 }}Contrast Based Fusing]]&lt;br /&gt;
*** {{anchor|TOC38}} [[#SEC38|{{NotTOC|6.6.4 }}Basic Focus Stacking]]&lt;br /&gt;
*** {{anchor|TOC39}} [[#SEC39|{{NotTOC|6.6.5 }}Advanced Focus Stacking]]&lt;br /&gt;
**** {{anchor|TOC40}} [[#SEC40|{{NotTOC|6.6.5.1 }}A Detailed Look at the Problem]]&lt;br /&gt;
**** {{anchor|TOC41}} [[#SEC41|{{NotTOC|6.6.5.2 }}Laplacian Edge Detection]]&lt;br /&gt;
**** {{anchor|TOC42}} [[#SEC42|{{NotTOC|6.6.5.3 }}Local Contrast Enhancement]]&lt;br /&gt;
**** {{anchor|TOC43}} [[#SEC43|{{NotTOC|6.6.5.4 }}Suppressing Noise or Recognizing Faint Edges]]&lt;br /&gt;
*** {{anchor|TOC44}} [[#SEC44|{{NotTOC|6.6.6 }}Tips For Focus Stacking Experts]]&lt;br /&gt;
* {{anchor|TOC45}} [[#SEC45|{{NotTOC|7. }}Helpful Additional Programs]]&lt;br /&gt;
* {{anchor|TOC46}} [[#SEC46|A. Authors]]&lt;br /&gt;
* {{anchor|TOC48}} [[#SEC48|List of Tables]]&lt;br /&gt;
* {{anchor|TOC49}} [[#SEC49|List of Figures]]&lt;br /&gt;
* {{anchor|TOC50}} [[#SEC50|Program Index]]&lt;br /&gt;
* {{anchor|TOC51}} [[#SEC51|Option Index]]&lt;br /&gt;
* {{anchor|TOC52}} [[#SEC52|General Index]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;br /&gt;
[[Category:Software:Platform:Windows]]&lt;br /&gt;
[[Category:Software:Platform:Mac OS X]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2008-06-27T20:37:52Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Add panoglview&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress. Initially tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer, they have also been tested on Ubuntu 7.04 on a AMD64 computer, Ubuntu 7.10 on an AMD Athlon XP computer and Ubuntu 8.04 on an Intel processor. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment  on the [http://groups.google.com/group/hugin-ptx hugin-ptx mailing list]). Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu -&amp;gt; System -&amp;gt; Konsole or Applications -&amp;gt; Accessories -&amp;gt; Terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unless you have an amd64 system prior to 7.10, add the following packages.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev libgcc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For older amd64 environments, these are the packages have a slightly different name.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev-amd64 lib64gcc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN and CVS repositories, and for this we need the correct tools:&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install subversion cvs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pkg-config libtiff4-dev libboost-graph-dev libboost-thread-dev \&lt;br /&gt;
  liblcms1-dev libglew-dev libplot-dev libglut3-dev libopenexr-dev libopenexr2c2a libxi-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu 8.04:''' libopenexr2c2a does not seem to exist, nor to be needed.&lt;br /&gt;
&lt;br /&gt;
Once all dependencies are in place, we get the code from CVS (simply press ENTER when prompted for a password on the login command) and build it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend login&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend co -P enblend&lt;br /&gt;
cd enblend&amp;lt;/pre&amp;gt;&lt;br /&gt;
We are then ready to compile.&lt;br /&gt;
&amp;lt;pre&amp;gt;make -f Makefile.cvs&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second make step can be very long and memory consuming. Make sure you have enough swap space, and go get a healthy snack while the computer is compiling.&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing, what machine/operating system, the revision checked out from CVS, and all other relevant information.&lt;br /&gt;
&lt;br /&gt;
You are then ready to install with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install zlib1g zlib1g-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On older distributions, zlib1g and zlib1g-dev may not be found. In that case, the same library may be available with the names lib64z1 and lib64z1-dev.&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev \&lt;br /&gt;
  gettext libwxgtk2.8-dev libexiv2-dev libimage-exiftool-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important:''' at the time of writing hugin is under development. The SVN trunk is likely to change often and can sometimes have critical bugs. Try the above first. If it does not work, please report back to the hugin-ptx mailing list. If you need a recent working version of hugin, find out from the mailing list what is the latest working revision number and plug it in after the -r switch in&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co -r 2906 https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you compiled and installed libpano to a non standard location set the variables CMAKE_INCLUDE_PATH and CMAKE_LIBRARY_PATH to point to your install location's include and lib directories.&lt;br /&gt;
&lt;br /&gt;
Finally, launch the compilation and installation with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
== Building panoglview ==&lt;br /&gt;
panoglview is a program that allows you to view an equirectangular image interactively.&lt;br /&gt;
You have to install&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install wx-common&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To build&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/panoglview/trunk panoglview&lt;br /&gt;
cd panoglview&lt;br /&gt;
./bootstrap&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autopano-sift-C ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml2-dev&lt;br /&gt;
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk/ autopano-sift-C&lt;br /&gt;
cd autopano-sift-C&lt;br /&gt;
cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Match-n-shift ==&lt;br /&gt;
&lt;br /&gt;
Match-n-shift is yet an other Autopano-SIFT replacement. It comes in a bundle with pto file manipulation perl libraries and a rich selection of other tools that use nona, enblend, ImageMagick among other things. To use match-n-shift, you need to install at least the [http://search.cpan.org/dist/Panotools-Script/ Panotools::Script] library and some other perl modules. It requires:&lt;br /&gt;
&lt;br /&gt;
*  Math::Matrix 0.4&lt;br /&gt;
*  Image::Size 2.9&lt;br /&gt;
*  Storable 2.0&lt;br /&gt;
&lt;br /&gt;
Chances are that you do not need to update Storable which is a standard perl module. To check the version of installed versions of these modules, write these lines to the command prompt:&lt;br /&gt;
&lt;br /&gt;
  perl -MStorable -le 'print Storable-&amp;gt;VERSION;'&lt;br /&gt;
  perl -MMath::Matrix -le 'print Math::Matrix-&amp;gt;VERSION;'&lt;br /&gt;
  perl -MImage::Size -le 'print Image::Size-&amp;gt;VERSION;'&lt;br /&gt;
&lt;br /&gt;
There are various ways to install or upgrade these modules. Ubuntu has binary packages for many perl modules but unfortunately not for Math::Matrix. Perl is&lt;br /&gt;
interpreted language and these modules are pure perl, so installing&lt;br /&gt;
from source is an easy thing.&lt;br /&gt;
&lt;br /&gt;
The best place to install perl modules is directly from a CPAN archive. CPAN is short for Comprehensive Perl Archive Network. The program to interact with CPAN comes with all perl installations. Start it by running:&lt;br /&gt;
&lt;br /&gt;
  sudo cpan&lt;br /&gt;
&lt;br /&gt;
If this is your first time running the program you will be asked a number of questions (you can safely accept the suggested values). Last question lets you select a number of CPAN mirrors nearest to you.&lt;br /&gt;
&lt;br /&gt;
When all is done, you can enter the install commands after the 'cpan&amp;gt;' prompt:&lt;br /&gt;
&lt;br /&gt;
  install Math::Matrix Image::Size Storable&lt;br /&gt;
&lt;br /&gt;
Answer 'y' to any question of dependencies and wait for install to complete. 'exit' leaves the cpan shell.&lt;br /&gt;
&lt;br /&gt;
If you rather use Ubuntu packages to install as much as you can, you can skip the Image::Size installation above and type:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install libimage-size-perl&lt;br /&gt;
&lt;br /&gt;
Lastly, you can download Math::Matrix tar ball from CPAN: http://search.cpan.org/~ulpfr/Math-Matrix-0.5/ and follow the installation instructions in the tar ball file.&lt;br /&gt;
&lt;br /&gt;
Next, you need to retrive and install the Panotools-Script collection&lt;br /&gt;
of perl libraries (Panotools::Script) and programs that use them -&lt;br /&gt;
including match-n-shift:&lt;br /&gt;
&lt;br /&gt;
  svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/Panotools-Script  Panotools-Script&lt;br /&gt;
  cd Panotools-Script&lt;br /&gt;
  perl Makefile.PL&lt;br /&gt;
  make&lt;br /&gt;
  make test&lt;br /&gt;
  sudo make install&lt;br /&gt;
&lt;br /&gt;
Just to confuse you, you can also ignore everything above and just install Panotools::Script and all its dependencies from CPAN. From command line, type:&lt;br /&gt;
&lt;br /&gt;
  sudo cpan Panotools::Script&lt;br /&gt;
&lt;br /&gt;
You can run match-n-shift from command line using the same parameters as autopano-c-complete.sh or you can modify hugin to run it for you:&lt;br /&gt;
&lt;br /&gt;
* start Hugin&lt;br /&gt;
* navigate the menu File to Preferences&lt;br /&gt;
* In the Preferences window, open the Autopano tab&lt;br /&gt;
* Select Autopano -&amp;gt; Autopano-SIFT&lt;br /&gt;
* tick the checkbox for Use alternative Autopano-SIFT program&lt;br /&gt;
* enter the full path to match-n-shift (/usr/local/bin/match-n-shift) in the Autopano-SIFT field&lt;br /&gt;
* enter the following string in the Arguments field:&lt;br /&gt;
 -f %f -v %v -c -p %p -o %o %i&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;br /&gt;
&lt;br /&gt;
== MatchPoint ==&lt;br /&gt;
&lt;br /&gt;
MatchPoint is a next generation CP generator. The result of a GSoC2007 project, it is still very experimental. Experience reports needed. Read more [http://groups.google.com/group/hugin-ptx/browse_thread/thread/cba2b2ce94dd9054 here]&lt;br /&gt;
&lt;br /&gt;
Matchpoint is now located inside the main hugin source tree, no need to checkout https://hugin.svn.sourceforge.net/svnroot/hugin/gsoc07_featuredetection anymore. It is compiled together with hugin, but not installed by default.&lt;br /&gt;
&lt;br /&gt;
* copy the MatchPoint executable into /usr/local/bin manually&lt;br /&gt;
*:&amp;lt;pre&amp;gt;&lt;br /&gt;
*: sudo cp src/matchpoint/matchpoint /usr/local/bin/&lt;br /&gt;
*:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* edit /usr/local/bin/autopano-c-complete.sh (do it with sudo to have the necessary permission)&lt;br /&gt;
** line 79: replace the .key.gz extension with .key (not sure if matchpoint supports compression)&lt;br /&gt;
** lines 83 and 88: replace '''generatekeys &amp;quot;$arg&amp;quot; $FILENAME $SIZE''' with '''matchpoint &amp;quot;$arg&amp;quot; $FILENAME''' (not sure if the size option or any other options of the original generatekeys are applicable)&lt;br /&gt;
&lt;br /&gt;
== Exiftool ==&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get remove libimage-exiftool-perl&lt;br /&gt;
$ wget http://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-7.21.tar.gz  (replace the version with the latest from the homepage)&lt;br /&gt;
$ tar -xzf Image-ExifTool-#.##.tar.gz&lt;br /&gt;
$ cd Image-ExifTool-#.##&lt;br /&gt;
$ perl Makefile.PL&lt;br /&gt;
$ make test&lt;br /&gt;
$ sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Talk:Enblend_Testcase_2008-05-02</id>
		<title>Talk:Enblend Testcase 2008-05-02</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Talk:Enblend_Testcase_2008-05-02"/>
				<updated>2008-05-19T14:12:09Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What happens if you use the option --fine-mask ?&lt;br /&gt;
[[User:Seb Przd|Seb Przd]] 16:12, 19 May 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Talk:Enblend_Testcase_2008-05-02</id>
		<title>Talk:Enblend Testcase 2008-05-02</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Talk:Enblend_Testcase_2008-05-02"/>
				<updated>2008-05-19T14:09:48Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: New page: What happens if you use the option --fine-mask ?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What happens if you use the option --fine-mask ?&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/SoC_2008_application</id>
		<title>SoC 2008 application</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/SoC_2008_application"/>
				<updated>2008-03-06T06:36:28Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Steering Comittee */  typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Describe your organization ===&lt;br /&gt;
=== Why is your organization applying to participate in GSoC 2008? What do you hope to gain by participating? ===&lt;br /&gt;
&lt;br /&gt;
http://www.flickr.com/search/groups/?q=hugin&lt;br /&gt;
&lt;br /&gt;
http://www.flickr.com/photos/sbprzd/2126554118/&lt;br /&gt;
&lt;br /&gt;
http://www.flickr.com/photos/sbprzd/2125768589/&lt;br /&gt;
&lt;br /&gt;
=== Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation. ===&lt;br /&gt;
=== If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)? ===&lt;br /&gt;
=== Who will your organization administrator be? Please include Google Account information. ===&lt;br /&gt;
=== What license(s) does your project use? ===&lt;br /&gt;
&lt;br /&gt;
Both hugin, enblend/enfuse, panotools and matchpoint use GPL v2 or above. &lt;br /&gt;
&lt;br /&gt;
=== What is the URL for your ideas page? ===&lt;br /&gt;
&lt;br /&gt;
http://wiki.panotools.org/SoC_2008_ideas&lt;br /&gt;
&lt;br /&gt;
=== What is the main development mailing list or forum for your organization? ===&lt;br /&gt;
&lt;br /&gt;
http://lists.sourceforge.net/lists/listinfo/panotools-devel&lt;br /&gt;
&lt;br /&gt;
=== What is the main IRC channel for your organization? ===&lt;br /&gt;
&lt;br /&gt;
We do not use IRC for communication. During GSoC 2007 we used Skype, but this is unlikely to happen again.&lt;br /&gt;
&lt;br /&gt;
=== Does your organization have an application template you would like to see students use? If so, please provide it now. ===&lt;br /&gt;
&lt;br /&gt;
=== Who will be your backup organization administrator? Please include Google Account information. ===&lt;br /&gt;
Yuval Levy is chosen to be backup admin. He did a perfect job as primary administrator during GSoC 2007.&lt;br /&gt;
&lt;br /&gt;
=== Who will your mentors be? Please include Google Account information. ===&lt;br /&gt;
&lt;br /&gt;
'''Pablo d'Angelo'''&lt;br /&gt;
&lt;br /&gt;
Pablo d'Angelo is the initiator and main developer of the hugin project. He has studied computer engineering at the University of applied sciences Ulm, and is currently working at the DaimlerChrysler Research Center in Ulm, where he does research on advanced 3D reconstruction techniques for industrial quality inspection. He is also working towards a PhD in the field of computer vision at the University of Bielefeld, which will likely be granted in Summer 2007.&lt;br /&gt;
&lt;br /&gt;
''' Andrew Mihal '''&lt;br /&gt;
&lt;br /&gt;
''' Jim Watters '''&lt;br /&gt;
&lt;br /&gt;
Jim Watters is a Software Engineer at JFL Peripheral Solution, in Ottawa, Ontario, Canada, where he designs software for scanners.  An avid user of PanoTools since 2000.  A growing contributer to the source code of PanoTools since Aug 2003 and a current maintainer of PanoTools (http://panotools.sourceforge.net).  Before receiving his degree in Computer Software in 1999, he received a diploma of Fine Art in Photography in 1990.  &lt;br /&gt;
&lt;br /&gt;
Most recently his attention has been directed to creating Immersive Panoramic Video. &lt;br /&gt;
&lt;br /&gt;
''' Daniel M German '''&lt;br /&gt;
&lt;br /&gt;
He is assistant professor at the Department of Computer Science at the University of Victoria, in British Columbia, in Canada. He received his PhD in Computer Science from the University of Waterloo in Canada.&lt;br /&gt;
&lt;br /&gt;
One of his areas of research is open source software development. He is interested in understanding how globally distributed individuals are able to work together to create commercial strength software. He has also explored the use of historical artifacts (such as version control logs, emails, defect tracking) to understand how a system has evolved and how this information can be used to continue its development.&lt;br /&gt;
&lt;br /&gt;
More recently he has been interested in the field of computational photography. More specifically on how to project extreme wide-angle images and spherical panoramas into acceptable flat representations.&lt;br /&gt;
&lt;br /&gt;
During the last year he has been the maintainer of Panotools (http://panotools.sourceforge.net).&lt;br /&gt;
&lt;br /&gt;
As a university professor one of his jobs is the supervision of students. He has graduated 6 Master's students, and currently supervising 3 Master's, and 1 Ph.D. Student. He has supervised more than a dozen honours projects of undergraduate students in computer science.&lt;br /&gt;
&lt;br /&gt;
He is an avid photographer. His works have been exhibited in several galleries. &lt;br /&gt;
&lt;br /&gt;
''' Alexandre Jenny '''&lt;br /&gt;
&lt;br /&gt;
=== What criteria did you use to select these individuals as mentors? Please be as specific as possible. ===&lt;br /&gt;
=== Steering Comittee ===&lt;br /&gt;
&lt;br /&gt;
This year we also have a steering comittee - a group of professionals in panorama making.&lt;br /&gt;
&lt;br /&gt;
'''Ken Turkowski'''&lt;br /&gt;
&lt;br /&gt;
'''Bruno Postle'''&lt;br /&gt;
&lt;br /&gt;
'''Thomas Rauscher'''&lt;br /&gt;
&lt;br /&gt;
'''G. Donald Bain'''&lt;br /&gt;
&lt;br /&gt;
G. Donald Bain manages the Geography Computing Facility at the University of California Berkeley, where he also teaches cartography and field studies. The rest of the time he devotes to VR.&lt;br /&gt;
&lt;br /&gt;
Hi is a board member of IVRPA.&lt;br /&gt;
&lt;br /&gt;
He travels and take panoramas for his web site: [http://virtualguidebooks.com/ Don Bain's Virtual Guidebooks]. This project (his wife refers to it as his obsession) has taken him from Tahiti to the Arctic, from the prehistoric ruins of the Southwest to the glaciers of the Canadian Rockies. As a compulsive educator it has been a real treat, documenting and sharing his landscapes with the world. He has taken over 4000 panoramas, with about 3500 currently on the site.&lt;br /&gt;
&lt;br /&gt;
He co-founded the World Wide Panorama, the largest international collaborative effort showcasing over 3000 panoramas from VR-artists all over the world taken over 11 editions.&lt;br /&gt;
&lt;br /&gt;
=== What is your plan for dealing with disappearing students? ===&lt;br /&gt;
=== What is your plan for dealing with disappearing mentors? ===&lt;br /&gt;
=== What steps will you take to encourage students to interact with your project's community before, during and after the program? ===&lt;br /&gt;
=== What will you do to ensure that your accepted students stick with the project after GSoC concludes? ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Community:Project]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/PTStitcher</id>
		<title>PTStitcher</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/PTStitcher"/>
				<updated>2008-02-08T12:54:34Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Typo fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Glossary|Main panorama tools stitcher application. Script driven.}}&lt;br /&gt;
== Preface ==&lt;br /&gt;
PTStitcher is one of the core applications of [[Panorama tools]], together with [[PTOptimizer]] and the [[Panorama Tools Plugins]]. &lt;br /&gt;
&lt;br /&gt;
For stitching panoramas you most probably won't get in contact with PTStitcher frequently, since the scripting is more or less completely done by the various [[GUI front-ends]] and some tools like [[PanoCube]].&lt;br /&gt;
&lt;br /&gt;
However, there are several occasions where you might need to write or at least understand the scripts or call PTStitcher directly (for some batch tasks f.e.).&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
The PTStitcher source code was never published, hence there are no changes possible to certain functions. But since a considerable part of it's functionality is in [[pano12]] library, PTStitcher benefits from every update of this core library. &lt;br /&gt;
&lt;br /&gt;
You can take PTStitcher from any of the panotools distribution on one of the [[Mirrors]]. In order to use new functionality you need a recent copy of [[pano12]] library.  Note that only ''win32'', ''i386 Linux'' and ''mac classic'' binary versions were ever made available, so you are out of luck if you use ''OS X'' or a 64bit operating system.&lt;br /&gt;
&lt;br /&gt;
There is an open source replacement for PTStitcher called [[nona]] in the [[hugin]] project which has much (but not all) of the PTStitcher features.  Another open source replacement is [[PTmender]], part of the [[pano12]] project at sourceforge.&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
PTStitcher is script driven. The scripts are in pure text format and can be edited with any text or programming editor (on windows notepad will do). &lt;br /&gt;
&lt;br /&gt;
They are processed on a line by line basis. Each line starts with a special character (case sensitive) that indicates the meaning of the rest of the line. All other first in line characters are ignored and considered comments.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
Most features of PTStitcher are conveniently accessible by the usual GUIs ([[#Preface|see top]]), but some are not.&lt;br /&gt;
&lt;br /&gt;
=== Accessible by GUI ===&lt;br /&gt;
PTStitcher can stitch&lt;br /&gt;
* [[Equirectangular Projection|spherical (equirectangular)]], [[Cylindrical Projection|cylindrical]], [[Rectilinear Projection|rectilinear]] and [[Fisheye Projection|fisheyed (or mirror ball)]] panoramas&lt;br /&gt;
* multi row panoramas&lt;br /&gt;
* panoramas from images that where shot tilted up or down.&lt;br /&gt;
* images from any lens (including spherical mirrors) &lt;br /&gt;
* images with different [[Focal Length]] into one panorama&lt;br /&gt;
* [[How to stitch flat images|flat images]] like scanned maps.&lt;br /&gt;
&lt;br /&gt;
The capabilities of PTStitcher go far beyond panorama stitching: It can be used &lt;br /&gt;
* to remap images between different [[Projections]]&lt;br /&gt;
* to [[Extracting and inserting rectilinear Views|extract and insert rectilinear images]] from a spherical or cylindrical panorama.&lt;br /&gt;
* to [[Edit zenith and nadir in one go with PTGui|remap a spherical panorama]] such that [[Nadir]] and [[Zenith]] are editable.&lt;br /&gt;
* to down- or [[Upsampling a single image with ptstitcher|upsample images]] with high quality interpolators.&lt;br /&gt;
* to [[Perspective correction|correct perspective distortion]].&lt;br /&gt;
&lt;br /&gt;
=== Accessible by Script or other Tool ===&lt;br /&gt;
PTStitcher can be used stand alone or with some other (non-GUI) Tool:&lt;br /&gt;
* together with some tool that separate color channels ([[ImageMagick]]) to correct [[Chromatic aberration]]&lt;br /&gt;
* assembling 6 cube faces to an equirectangular panorama can be done by GUI but is more conveniently done by script, [http://www.pinlady.net/vr/#anchor3 batch file] or [[PanoCube|PanoCube Plus]].&lt;br /&gt;
&lt;br /&gt;
== Example Script ==&lt;br /&gt;
The updated original example script with lots of comments is below. Copied from [http://photocreations.ca/panotools/stitch.txt Jim Watters' page]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#############           Example Script                  ##########################&lt;br /&gt;
#                       to run PTStitcher&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# Only lines starting with 'p','o', i', or 'm' are read, &lt;br /&gt;
# so you can add comments and info as you like by using &lt;br /&gt;
# other line starting characters.  &lt;br /&gt;
# The * character at the first of a line indicated the end of the script file.&lt;br /&gt;
&lt;br /&gt;
# The stitcher script must contain:&lt;br /&gt;
# one 'p'- line describing the output image (eg Panorama)&lt;br /&gt;
# one 'o'-line for each input image&lt;br /&gt;
# one 'i' line for each input image that is optional&lt;br /&gt;
# the 'm'-line is optional and allows you to specify modes for the optimization.&lt;br /&gt;
# the 'C'-line is optional and allows morphing of control points.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== p-line options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# 'p'-line options&lt;br /&gt;
# w1000        width in pixels&lt;br /&gt;
# h600         height in pixels (default: width/2)&lt;br /&gt;
# f0           projection format,&lt;br /&gt;
#                  0 - rectilinear (for printing and viewing)&lt;br /&gt;
#                  1 - Cylindrical (for Printing and QTVR)&lt;br /&gt;
#                  2 - Equirectangular ( for Spherical panos), default&lt;br /&gt;
#                  3 - full-frame fisheye&lt;br /&gt;
# v360         horizontal field of view of panorama (default 360)&lt;br /&gt;
# nPICT        Panorama file format, one of:&lt;br /&gt;
#                  PICT          pict-file on macs, bmp-file on win (default)&lt;br /&gt;
#                  PSD           single layer Photoshop file, 48bits supported&lt;br /&gt;
#                  PNG           png-format, 48bits supported&lt;br /&gt;
#                  TIFF          tiff-format, 48bits supported&lt;br /&gt;
#                  PSD_mask      Photoshop file, one image per layer&lt;br /&gt;
#                                  + shape mask &amp;amp; feathered clip mask at overlap center&lt;br /&gt;
#                  PSD_nomask    Photoshop file, one image per layer,&lt;br /&gt;
#                  TIFF_mask     tiff-format, multi-file, one image per file, 48bit supported&lt;br /&gt;
#                                  alpha layer with feathered clip mask at overlap center&lt;br /&gt;
#                  TIFF_m        tiff-format, multi-file, one image per file, 48bit supported&lt;br /&gt;
#                                  alpha layer with non-feathered clip mask at image border&lt;br /&gt;
#                                  + shape mask &amp;amp; non-feathered clip mask at image border&lt;br /&gt;
#                  JPEG          Panoramic image in jpeg-format. Use with f1&lt;br /&gt;
#                                  for IBM Hotmedia panoramas.&lt;br /&gt;
#                  PAN           SmoothMove movie. Use only with f2.&lt;br /&gt;
#                  IVR           LivePicture IVR movie&lt;br /&gt;
#                                  cylindrical (format f1) or spherical (format f2)&lt;br /&gt;
#                  IVR_java      LivePicture Java Panorama,&lt;br /&gt;
#                                  cylindrical (format f1) or spherical (format f2)&lt;br /&gt;
#                  VRML          VRML background node, use only with f2 for panoramas, or&lt;br /&gt;
#                                  VRML-object for PTStereo&lt;br /&gt;
#                  QTVR          Apple QTVR-panomovie. Use only with f1&lt;br /&gt;
#                  3DMF          3DMF-object (PTStereo).&lt;br /&gt;
#&lt;br /&gt;
# n&amp;quot;QTVR w400 h300 c1&amp;quot;           additional viewer options in a quoted string together with format&lt;br /&gt;
#              the following options are recognized:&lt;br /&gt;
#                  w(width) and h(height) of viewer window (only QTVR on Macs)&lt;br /&gt;
#                  c(codec: 0-JPEG, 1-Cinepak, 2-Sorenson) (only QTVR on Macs)&lt;br /&gt;
#                  q(codec quality):&lt;br /&gt;
#                     0-high,1-normal,2-low    QTVR on Macs&lt;br /&gt;
#                     0-100(highest)           on other jpeg-formats (PAN, IVR, IVR_java, VRML)&lt;br /&gt;
#                  g  progressive jpeg (0-no, 1-yes) (PAN, IVR, IVR_java, VRML)&lt;br /&gt;
#                     Optimized JPEG (0-on(default), 2-disabled), (3-progressive with optimized disabled)&lt;br /&gt;
#                  p  initial pan angle ( QTVR on Macs, VRML, IVR)&lt;br /&gt;
#                  v  field of view (QTVR, VRML, IVR)&lt;br /&gt;
#                  Many more options can be set by editing the viewer scripts&lt;br /&gt;
# u10          width of feather for stitching all images. default:10&lt;br /&gt;
# k1           attempt color &amp;amp; brightness correction using image number as anchor&lt;br /&gt;
# b1           attempt brightness correction with no color change using image number as anchor&lt;br /&gt;
# d1           attempt color correction with no brightness change using image number as anchor&lt;br /&gt;
#                  Do not use more than one of k, d, b.This is new method of correcting&lt;br /&gt;
&lt;br /&gt;
p w800 nPSD_mask&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== i-line options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The 'i' lines describe input images and is optional&lt;br /&gt;
# nName        file name of the input image.&lt;br /&gt;
#                  over ridable with command line parameters to PTStitcher&lt;br /&gt;
&lt;br /&gt;
i n&amp;quot;photo1.jpg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== o-line options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The 'o' lines describe input images. One line per image is required&lt;br /&gt;
# The width and height of the image is obtained from image&lt;br /&gt;
# f0           projection format,&lt;br /&gt;
#                  0 - rectilinear (normal lenses)&lt;br /&gt;
#                  1 - Panoramic (Scanning cameras like Noblex)&lt;br /&gt;
#                  2 - Circular fisheye&lt;br /&gt;
#                  3 - full-frame fisheye&lt;br /&gt;
#                  4 - PSphere, equirectangular&lt;br /&gt;
# v82          horizontal field of view of image (required)&lt;br /&gt;
# y0           yaw angle (required)&lt;br /&gt;
# p43          pitch angle (required)&lt;br /&gt;
# r0           roll angle (required)&lt;br /&gt;
# a,b,c        lens correction coefficients (optional)&lt;br /&gt;
#                  (see http://www.fh-furtwangen.de/~dersch/barrel/barrel.html)&lt;br /&gt;
# d,e          initial lens offset in pixels(defaults d0 e0, optional).&lt;br /&gt;
#                  Used to correct for offset from center of image&lt;br /&gt;
#                  d - horizontal offset,&lt;br /&gt;
#                  e - vertical offset&lt;br /&gt;
# g,t          initial lens shear.  Use to remove slight misalignment&lt;br /&gt;
#                  of the line scanner relative to the film transport&lt;br /&gt;
#                  g - horizontal shear&lt;br /&gt;
#                  t - vertical shear&lt;br /&gt;
# +buf         (obsolete, -buf and +buf are now ignored when stitching)&lt;br /&gt;
#                  load and merge image with buffer&lt;br /&gt;
# -buf         (obsolete, -buf and +buf are now ignored when stitching)&lt;br /&gt;
#                  save result to buffer. The first 'o' line should&lt;br /&gt;
#                  contain one '-buf' command, the last line one '+buf'&lt;br /&gt;
#                  command, and all other lines both '+buf -buf'&lt;br /&gt;
#                  Exception: remove all 'buf' commands when&lt;br /&gt;
#                  creating Photoshop-files to preserve the original images.&lt;br /&gt;
# u10          (obsolete, globally used on p line) width of feather for stitching. default:10&lt;br /&gt;
# S100,600,100,800   Selection(l,r,t,b), Only pixels inside the rectangle will be used for conversion.&lt;br /&gt;
#                       Original image size is used for all image parameters&lt;br /&gt;
#                       (e.g. field-of-view) refer to the original image.&lt;br /&gt;
#                       Selection can be outside image dimension.&lt;br /&gt;
# C100,600,100,800   Crop(l,r,t,b), Only pixels inside the rectangle will be used for conversion.&lt;br /&gt;
#                       Cropped image size is used for all image parameters&lt;br /&gt;
#                       (e.g. field-of-view) refer to the cropped part of the image.&lt;br /&gt;
# m20          (obsolete, use S &amp;amp; C) ignore a frame 20 pixels wide. default: 0&lt;br /&gt;
# mx100        (obsolete, use S &amp;amp; C) crop to brightest rectangle with size 100x200;&lt;br /&gt;
# my200        (obsolete, use S &amp;amp; C) used only for circular fisheye images (f2)&lt;br /&gt;
# s0           (obsolete, ignored, always blend) specify placement of seam between buffer and image:&lt;br /&gt;
#                  0-middle of overlap('blend' ,default)&lt;br /&gt;
#                  1- at edge of image ('paste').&lt;br /&gt;
# o            (the small letter). Morph-to-fit using control points.&lt;br /&gt;
# k0           (obsolete, use p line correction still used with plugin)&lt;br /&gt;
#                  attempt color/brightness correction when merging image and buffer, one of:&lt;br /&gt;
#                  0 - no correction(default);&lt;br /&gt;
#                  1 - change image;&lt;br /&gt;
#                  2 - change buffer;&lt;br /&gt;
#                  3 - change both&lt;br /&gt;
#                  this feature does not work very well!&lt;br /&gt;
&lt;br /&gt;
o f2 r0   p0    y0     v183    a0 b-0.1 c0  S100,600,100,800&lt;br /&gt;
o f2 r0   p0    y180   v183    a0 b-0.1 c0  S100,600,100,800&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== m-line options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# 'm'-line options&lt;br /&gt;
# ----------------&lt;br /&gt;
# Set mode for stitcher, not required&lt;br /&gt;
#&lt;br /&gt;
# g2.5         Set gamma value for internal computations (default 1.0)&lt;br /&gt;
#                  See &amp;lt;http://www.fh-furtwangen.de/~dersch/gamma/gamma.html&amp;gt;&lt;br /&gt;
# i2           Set interpolator, See &amp;lt;http://www.fh-furtwangen.de/~dersch/interpolator/interpolator.html&amp;gt;&lt;br /&gt;
#                one of:&lt;br /&gt;
#                   0 - poly3 (default)&lt;br /&gt;
#                   1 - spline16,&lt;br /&gt;
#                   2 - spline36,&lt;br /&gt;
#                   3 - sinc256,&lt;br /&gt;
#                   4 - spline64,&lt;br /&gt;
#                   5 - bilinear,&lt;br /&gt;
#                   6 - nearest neighbor,&lt;br /&gt;
#                   7 - sinc1024&lt;br /&gt;
#              \/ antialiasing filters \/ See &amp;lt;http://www.pano2qtvr.com/dll_patch/&amp;gt;&lt;br /&gt;
#                   8 - Box&lt;br /&gt;
#                   9 - Bartlett/Triangle&lt;br /&gt;
#                   10 - Hermite&lt;br /&gt;
#                   11 - Hanning&lt;br /&gt;
#                   12 - Hamming&lt;br /&gt;
#                   13 - Blackmann&lt;br /&gt;
#                   14 - Gaussian 1/sqrt(2)&lt;br /&gt;
#                   15 - Gaussian 1/2&lt;br /&gt;
#                   16 - Quadardic&lt;br /&gt;
#                   17 - Cubic&lt;br /&gt;
#                   18 - Catmull-Rom&lt;br /&gt;
#                   19 - Mitchell&lt;br /&gt;
#                   20 - Lanczos2&lt;br /&gt;
#                   21 - Lanczos3&lt;br /&gt;
#                   22 - Blackman/Bessel&lt;br /&gt;
#                   23 - Blackman/sinc&lt;br /&gt;
#                   &lt;br /&gt;
# f0               Invoke Faster Transformation also invoked by creating a file named &amp;quot;pano12_opt.txt&amp;quot; &lt;br /&gt;
#                   in the same foler as project with a line FAST_TRANSFORM&lt;br /&gt;
&lt;br /&gt;
m g1.5 i6 f0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== z-line options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# 'z'-lines options&lt;br /&gt;
# ----------------&lt;br /&gt;
# Extended Depth-Of-Field, not required&lt;br /&gt;
#&lt;br /&gt;
# Automatically determine, for every point in a picture, which of mumerous overlapping &lt;br /&gt;
# images has best focus.  Masks are generated to reveale the best focused parts of &lt;br /&gt;
# each image.  Feathering must be selected.  Used with PSD_mask or TIFF_mask file format&lt;br /&gt;
# to edit the mask or with flattened file formats for flattened final result.   Does not&lt;br /&gt;
# work if color and/or brightness correction are invoked.&lt;br /&gt;
#&lt;br /&gt;
# m2           mask type&lt;br /&gt;
#                m0 hard-edged masks, mutually exclusive&lt;br /&gt;
#                m1 hard-edged masks, stack of nested masks&lt;br /&gt;
#                m2 blended masks, stack of nested masks (default &amp;amp; strongly recommended)&lt;br /&gt;
#                   (this option includes a smoothing computation that seems to help a lot.)&lt;br /&gt;
# fN           focus estimation window size, N = halfwidth of window.&lt;br /&gt;
#                Recommended value is 0.5% of image width, e.g. 4 pixels for an 800-pixel image.&lt;br /&gt;
#                Computation cost for focus estimation increases proportional to N^2.  Default f4.&lt;br /&gt;
# sN           smoothing window size, N = halfwidth of window.&lt;br /&gt;
#                 Recommended value is 0.5% of image width, e.g. 4 pixels for an 800-pixel image.&lt;br /&gt;
#                 Computation cost for smoothing increases proportional to N^2.  Default s4.&lt;br /&gt;
&lt;br /&gt;
z m2 f4 s4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== C-line options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# 'C' lines&lt;br /&gt;
# ----------------&lt;br /&gt;
# Morphing of control point lines&lt;br /&gt;
# One line per point&lt;br /&gt;
# Created automatically by optimizer&lt;br /&gt;
#&lt;br /&gt;
# i0           image&lt;br /&gt;
# x363.726     starting x point position&lt;br /&gt;
# y125.738     starting y point position&lt;br /&gt;
# X363.838     morphed x point position&lt;br /&gt;
# Y125.618     morphed y point position&lt;br /&gt;
&lt;br /&gt;
C i0  x363.726 y125.738 X363.838 Y125.618&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
Every thing after * is ignored.&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2008-02-03T13:12:23Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Known bugs */ enfuse 360° fixed in SVN&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Four exposure panorama blended with enfuse]]]]&lt;br /&gt;
Enfuse is {{glossary|a command-line program used to merge different exposures of the same scene to produce an image that looks very much like a [[Tone_mapping|tonemapped]] image (without the [[Halo|halos]]) but requires no creation of an [[HDR]] image|1}}. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
Enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth: [http://research.edm.uhasselt.be/~tmertens/papers/exposure_fusion_reduced.pdf &amp;quot;Exposure fusion&amp;quot;] The implementation was done by Andrew Mihal (developer of [[Enblend]]) and the [[hugin]] team around [[User:Pablo|Pablo d'Angelo]]&lt;br /&gt;
&lt;br /&gt;
== State of development ==&lt;br /&gt;
Enfuse is currently in beta and available with the development version of [[Enblend]] from [http://panospace.wordpress.com/downloads/ panospace.wordpress] (scroll down on that page).&lt;br /&gt;
&lt;br /&gt;
=== Known bugs ===&lt;br /&gt;
* '''Windows version only''': if used on too many and/or too large files enfuse terminates with an error message: &amp;lt;code&amp;gt;an exception occured [...] unable to create image swap file&amp;lt;/code&amp;gt;&lt;br /&gt;
:: - fixed in version linked above&lt;br /&gt;
&lt;br /&gt;
* If used on images with unaligned alpha mask (result of aligning handheld shots) there might be colored or dark spots.&lt;br /&gt;
: Workaround: crop the aligned images.&lt;br /&gt;
:: - fixed in version linked above&lt;br /&gt;
&lt;br /&gt;
* If contrasty structures are near [[zenith]] or [[nadir]] in an [[equirectangular]] image, there might be an artifact (vortex) in the resulting pano.&lt;br /&gt;
: Workaround: use on zenith and nadir images separately and stitch them in the resulting pano afterwards.&lt;br /&gt;
:: - unknown, whether could be fixed easily&lt;br /&gt;
&lt;br /&gt;
* actually not a bug: Default compression for [[JPEG]] output is relatively low.&lt;br /&gt;
: Workaround: Specify &amp;lt;code&amp;gt;--compression=100&amp;lt;/code&amp;gt; on the command line if you need JPEG output.&lt;br /&gt;
:: - fixed in version linked above (defaults to 98)&lt;br /&gt;
&lt;br /&gt;
* [[wikipedia:LZW|LZW]] compression for [[TIFF]] files is not supported if an older version of libtiff has been used. For various reasons most/all existing Windows binaries have this problem (Jan 2008). Fixed in version linked above.&lt;br /&gt;
: Workaround: use [[wikipedia:DEFLATE|DEFLATE]] (ZIP) compression instead.&lt;br /&gt;
&lt;br /&gt;
* A slight seam (brightness difference) along the 360° joint of an [[equirectangular]] panorama, if there was a contrasty structure near the edge, even if the -w option was used.&lt;br /&gt;
: Workaround: use enfuse before stitching.&lt;br /&gt;
:: - fixed in SVN 3 February 2008.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Enfuse merges overlapping images using the Mertens-Kautz-Van Reeth exposure fusion algorithm. This is a quick way to produce blend differently exposed images into a nice output image, without producing intermediate [[HDR]] images that are then tonemapped to a viewable image. This simplified process often works much better than the currently known tonemapping algorithms.&lt;br /&gt;
&lt;br /&gt;
Enfuse can also be used to build extended [[Depth_of_Field|DOF]] images, by blending a focus stack.&lt;br /&gt;
&lt;br /&gt;
The basic idea is that pixels in the input images are weighted according to qualities such as proper exposure, good contrast, and high saturation. These weights determine how much a given pixel will contribute to the final image. A Burt &amp;amp; Adelson multiresolution spline blender is used to combine the images according to the weights. The multiresolution blending ensures that transitions between regions where different images contribute more heavily are difficult to see.&lt;br /&gt;
&lt;br /&gt;
Enfuse uses three different criteria to judge the quality of a pixel: Exposure, saturation, and contrast. The exposure criteria favors pixels with luminance close to the middle of the range. These pixels are considered better-exposed than those with high or low luminance levels. The saturation criteria favors highly-saturated pixels. The contrast criteria favors high-contrast pixels. The local gray or color value standard deviation is used as a contrast measure. The Mertens-Kautz-Van Reeth paper suggest using a laplacian filter, but the standard deviation produces much better results for differently focussed images.&lt;br /&gt;
&lt;br /&gt;
You can adjust how much importance is given to each criteria by setting the weight parameters on the command line. For example, if you set --wExposure=1.0 and --wSaturation=0.5, Enfuse will favor well-exposed pixels over highly-saturated pixels when blending the source images. The impact of these parameters on the final result will not always be clear. The quality of the result is subject to your artistic interpretation. Playing with the weights may or may not give you a more pleasing result. I encourage you to experiment (perhaps using downsized images for speed).&lt;br /&gt;
&lt;br /&gt;
Enfuse expects each input image to have an alpha channel. By setting the alpha values of pixels to zero, users can manually remove those pixels from consideration when blending. If an input image lacks an alpha channel, Enfuse will print a warning and continue assuming all pixels should contribute to the final output. Any alpha value other than zero is interpreted as &amp;quot;this pixel should contribute to the final image&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The usage below refers to the CVS version of the 21 Dec 2007. Use enfuse as follows:&lt;br /&gt;
 enfuse &amp;lt;options&amp;gt; &amp;lt;input files&amp;gt;.&lt;br /&gt;
Input files can be a list of files or a wildcard (on windows f.e. &amp;lt;code&amp;gt;IMG*.jpg&amp;lt;/code&amp;gt; for all jpg images that begin with IMG.&lt;br /&gt;
&lt;br /&gt;
=== Common options ===&lt;br /&gt;
&lt;br /&gt;
 -h&lt;br /&gt;
Print information on the available options. &lt;br /&gt;
 -l num&lt;br /&gt;
Use exactly this many levels for pyramid blending. A low number trades off quality of results for faster execution time and lower memory usage. The default is to use as many levels as possible given the source image size. If you specify a high number Enfuse may still use a smaller number of levels if the geometry of the images demands it. &lt;br /&gt;
 -o output-file&lt;br /&gt;
Required. Specify the name of the output file. &lt;br /&gt;
 -v&lt;br /&gt;
Verbose output. &lt;br /&gt;
 -w&lt;br /&gt;
Blend around the -180/+180 boundary. Useful for full-360 panoramas. Enfuse currently does not blend the zenith or the nadir, so you may still see some seams in these areas. &lt;br /&gt;
 --compression=COMP&lt;br /&gt;
Write a compressed output file. Valid values are [[LZW]] and [[DEFLATE]] for TIFF files, and numbers from 0-100 for JPEG files.&lt;br /&gt;
&lt;br /&gt;
=== Extended options ===&lt;br /&gt;
&lt;br /&gt;
 -b kilobytes&lt;br /&gt;
Set the block size for Enfuse's image cache. This is the amount of data that Enfuse will move to and from the disk in one go. The default is 2 MiB which should be good for most systems. &lt;br /&gt;
 -c&lt;br /&gt;
Use the CIECAM02 color appearance model for blending colors. Your input TIFF files should have embedded ICC profiles. If no ICC profile is present, Enfuse will assume that image uses the sRGB color space. The difference between using this option and Enfuse's default color blending algorithm is very slight, and will be most noticeable when you need to blend areas of different primary colors together. &lt;br /&gt;
 -g&lt;br /&gt;
Gimp (ver. &amp;lt; 2) and Cinepaint exhibit unusual behaviors when loading images with unassociated alpha channels. Use the -g flag to work around this. With this flag Enfuse will create the output image with the associated alpha tag set, even though the image is really unassociated alpha. &lt;br /&gt;
 -f WIDTHxHEIGHT+x0+y0&lt;br /&gt;
Set the size and position of the output image manually. This is useful when the input images are cropped TIFF files, such as those produced by Nona. &lt;br /&gt;
 -m megabytes&lt;br /&gt;
Set the size of Enfuse's image cache. This is the amount of memory Enfuse will use for storing image data before swapping to disk. The default is 1 GiB.&lt;br /&gt;
&lt;br /&gt;
=== Fusion options ===&lt;br /&gt;
&amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt; is a number between 0 (no weight) and 1 (full weight)&lt;br /&gt;
 --wExposure=W&lt;br /&gt;
Sets the relative weight of the well-exposedness criteria. Increasing this weight relative to the others will make well-exposed pixels contribute more to the final output. &lt;br /&gt;
 --wSaturation=W&lt;br /&gt;
Sets the relative weight of high-saturation pixels. Increasing this weight makes pixels with high saturation contribute more to the final output. &lt;br /&gt;
 --wContrast=W&lt;br /&gt;
Sets the relative weight of high-contrast pixels.&lt;br /&gt;
&lt;br /&gt;
=== Expert options ===&lt;br /&gt;
&lt;br /&gt;
 --ContrastWindowSize=s&lt;br /&gt;
Window size for local contrast analysis. Values larger than 5 might result in increased computation times. Values in the range of 3 to 7 have given good results on focus stacks. The impact on the result quality is not easy to define. You will have to experiment.&lt;br /&gt;
&lt;br /&gt;
 --HardMask&lt;br /&gt;
Force hard blend masks on the finest scale. This avoids averaging of fine details (only), at the expense of increasing the noise. This improves the sharpness of focus stacks considerably.&lt;br /&gt;
&lt;br /&gt;
 --debug&lt;br /&gt;
Output intermediate images for debugging.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Platform:Mac OS X]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;br /&gt;
[[Category:Software:Platform:Windows]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2008-01-21T14:01:00Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress. Initially tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer, they have also been tested on Ubuntu 7.04 on a AMD64 computer and Ubuntu 7.10 on an AMD Athlon XP computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment  on the [http://groups.google.com/group/hugin-ptx hugin-ptx mailing list]). Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu -&amp;gt; System -&amp;gt; Konsole or Applications -&amp;gt; Accessories -&amp;gt; Terminal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a amd64 environment you will need the following packages, although as of 7.10 the names seems to be the same as those below for i386&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev-amd64 lib64gcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a i386 system the equivalent is probably (COULD SOMEBODY CHECK THIS ONE?)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev libgcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN and CVS repositories, and for this we need the correct tools:&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install subversion cvs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pkg-config libtiff4-dev libboost-graph-dev libboost-thread-dev \&lt;br /&gt;
  liblcms1-dev libglew-dev libplot-dev libglut3-dev libopenexr-dev libopenexr2c2a libxi-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all dependencies are in place, we get the code from CVS (simply press ENTER when prompted for a password on the login command) and build it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend login&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend co -P enblend&lt;br /&gt;
cd enblend&amp;lt;/pre&amp;gt;&lt;br /&gt;
We are then ready to compile.&lt;br /&gt;
&amp;lt;pre&amp;gt;make -f Makefile.cvs&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second make step can be very long and memory consuming. Make sure you have enough swap space, and go get a healthy snack while the computer is compiling.&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing, what machine/operating system, the revision checked out from CVS, and all other relevant information.&lt;br /&gt;
&lt;br /&gt;
You are then ready to install with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ubuntu 7.10 AMD64, replace lib64z1 and lib64z1-dev with zlib1g and zlib1g-dev in the above command. COULD SOMEBODY PLEASE DOUBLE-CHECK?&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev gettext libwxgtk2.8-dev libexiv2-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Important:''' at the time of writing hugin is under development. The SVN trunk is likely to change often and can sometimes have critical bugs. Try the above first. If it does not work, please report back to the hugin-ptx mailing list. If you need a recent working version of hugin, find out from the mailing list what is the latest working revision number and plug it in after the -r switch in&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co -r 2539 https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, launch the compilation and installation with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
== Autopano-sift-C ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml2-dev&lt;br /&gt;
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk/&lt;br /&gt;
autopano-sift-C&lt;br /&gt;
cd autopano-sift-C&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T15:59:28Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Added download link for windows&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Four exposure panorama blended with enfuse]]]]&lt;br /&gt;
Enfuse is a command-line program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
Enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. The implementation was done by Andrew Mihal (developer of [[Enblend]]) - http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
Enfuse is currently in beta and available with the development version of [[Enblend]] http://hugin.panotools.org/testing/enblend/enblend-3.1_win32_pre3.zip&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Enfuse merges overlapping images using the Mertens-Kautz-Van Reeth exposure fusion algorithm. This is a quick way to produce blend differently exposed images into a nice output image, without producing intermediate HDR images that are then tonemapped to a viewable image. This simplified process often works much better than the currently known tonemapping algorithms.&lt;br /&gt;
&lt;br /&gt;
Enfuse can also be used to build extended DOF images, by blending a focus stack.&lt;br /&gt;
&lt;br /&gt;
The basic idea is that pixels in the input images are weighted according to qualities such as proper exposure, good contrast, and high saturation. These weights determine how much a given pixel will contribute to the final image. A Burt &amp;amp; Adelson multiresolution spline blender is used to combine the images according to the weights. The multiresolution blending ensures that transitions between regions where different images contribute more heavily are difficult to see.&lt;br /&gt;
&lt;br /&gt;
Enfuse uses three different criteria to judge the quality of a pixel: Exposure, saturation, and contrast. The exposure criteria favors pixels with luminance close to the middle of the range. These pixels are considered better-exposed than those with high or low luminance levels. The saturation criteria favors highly-saturated pixels. The contrast criteria favors high-contrast pixels. The local gray or color value standard deviation is used as a contrast measure. The Mertens-Kautz-Van Reeth paper suggest using a laplacian filter, but the standard deviation produces much better results for differently focussed images.&lt;br /&gt;
&lt;br /&gt;
You can adjust how much importance is given to each criteria by setting the weight parameters on the command line. For example, if you set --wExposure=1.0 and --wSaturation=0.5, Enfuse will favor well-exposed pixels over highly-saturated pixels when blending the source images. The impact of these parameters on the final result will not always be clear. The quality of the result is subject to your artistic interpretation. Playing with the weights may or may not give you a more pleasing result. I encourage you to experiment (perhaps using downsized images for speed).&lt;br /&gt;
&lt;br /&gt;
Enfuse expects each input image to have an alpha channel. By setting the alpha values of pixels to zero, users can manually remove those pixels from consideration when blending. If an input image lacks an alpha channel, Enfuse will print a warning and continue assuming all pixels should contribute to the final output. Any alpha value other than zero is interpreted as &amp;quot;this pixel should contribute to the final image&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The usage below refers to the CVS version of the 21 Dec 2007.&lt;br /&gt;
&lt;br /&gt;
=== Common options ===&lt;br /&gt;
&lt;br /&gt;
 -h&lt;br /&gt;
Print information on the available options. &lt;br /&gt;
 -l num&lt;br /&gt;
Use exactly this many levels for pyramid blending. This trades off quality of results for faster execution time and lower memory usage. The default is to use as many levels as possible given the size of the overlap region. Enfuse may still use a smaller number of levels if the geometry of the images demands it. &lt;br /&gt;
 -o output-file&lt;br /&gt;
Required. Specify the name of the output file. &lt;br /&gt;
 -v&lt;br /&gt;
Verbose output. &lt;br /&gt;
 -w&lt;br /&gt;
Blend around the -180/+180 boundary. Useful for full-360 panoramas. Enfuse currently does not blend the zenith or the nadir, so you may still see some seams in these areas. &lt;br /&gt;
 --compression=COMP&lt;br /&gt;
Write a compressed output file. Valid values are LZW and DEFLATE for TIFF files, and numbers from 0-100 for JPEG files.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Extended options ===&lt;br /&gt;
&lt;br /&gt;
 -b kilobytes&lt;br /&gt;
Set the block size for Enfuse's image cache. This is the amount of data that Enfuse will move to and from the disk in one go. The default is 2 MiB which should be good for most systems. &lt;br /&gt;
 -c&lt;br /&gt;
Use the CIECAM02 color appearance model for blending colors. Your input TIFF files should have embedded ICC profiles. If no ICC profile is present, Enfuse will assume that image uses the sRGB color space. The difference between using this option and Enfuse's default color blending algorithm is very slight, and will be most noticeable when you need to blend areas of different primary colors together. &lt;br /&gt;
 -g&lt;br /&gt;
Gimp (ver. &amp;lt; 2) and Cinepaint exhibit unusual behaviors when loading images with unassociated alpha channels. Use the -g flag to work around this. With this flag Enfuse will create the output image with the associated alpha tag set, even though the image is really unassociated alpha. &lt;br /&gt;
 -f WIDTHxHEIGHT&lt;br /&gt;
Set the size of the output image manually. This is useful when the input images are cropped TIFF files, such as those produced by Nona. &lt;br /&gt;
 -m megabytes&lt;br /&gt;
Set the size of Enblend's image cache. This is the amount of memory Enblend will use for storing image data before swapping to disk. The default is 1 GiB.&lt;br /&gt;
&lt;br /&gt;
=== Fusion options ===&lt;br /&gt;
&lt;br /&gt;
 --wExposure&lt;br /&gt;
Sets the relative weight of the well-exposedness criteria. Increasing this weight relative to the others will make well-exposed pixels contribute more to the final output. &lt;br /&gt;
 --wSaturation&lt;br /&gt;
Sets the relative weight of high-saturation pixels. Increasing this weight makes pixels with high saturation contribute more to the final output. &lt;br /&gt;
 --wContrast&lt;br /&gt;
Sets the relative weight of high-contrast pixels.&lt;br /&gt;
&lt;br /&gt;
=== Expert options ===&lt;br /&gt;
&lt;br /&gt;
 --ContrastWindowSize&lt;br /&gt;
Window size for local contrast analysis. Values larger than 5 might result in a blurry composite and increased computation times. Values in the range of 3 to 5 have given good results on focus stacks.&lt;br /&gt;
&lt;br /&gt;
 --HardMask&lt;br /&gt;
Force hard blend masks on the finest scale. This avoids averaging of fine details (only), at the expense of increasing the noise. This improves the sharpness of focus stacks considerably.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.nabble.com/A-christmas-present-td14438390.html Announcement on Panotools-NG]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Align_image_stack</id>
		<title>Align image stack</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Align_image_stack"/>
				<updated>2007-12-21T15:55:45Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;align_image_stack is a command-line tool available in the development version of [[hugin]] to align overlapping images to facilitate HDR creation.&lt;br /&gt;
&lt;br /&gt;
This article is a stub.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
 align_image_stack [options] input files&lt;br /&gt;
=== Options: modes of operation ===&lt;br /&gt;
 -p file   &lt;br /&gt;
Output .pto file (useful for debugging, or further refinement)&amp;quot;&lt;br /&gt;
 -a prefix &lt;br /&gt;
Align images, output as prefix_xxxx.tif&lt;br /&gt;
 -o output &lt;br /&gt;
Merge images to HDR, generate output.hdr&lt;br /&gt;
=== Options: modifiers ===&lt;br /&gt;
 -v        &lt;br /&gt;
Verbose, print progress messages&lt;br /&gt;
 -t num    &lt;br /&gt;
Remove all control points with an error higher than num pixels (default: 3)&lt;br /&gt;
 -f HFOV   &lt;br /&gt;
Approximate horizontal field of view of input images, use if EXIF info not complete&lt;br /&gt;
 -m        &lt;br /&gt;
Optimize field of view for all images, execpt for first. Useful for aligning focus stacks with slightly different magnification&lt;br /&gt;
 -c num    &lt;br /&gt;
Number of control points to create between adjectant images (default: 200)&lt;br /&gt;
 -h        &lt;br /&gt;
Display help.&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Align_image_stack</id>
		<title>Align image stack</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Align_image_stack"/>
				<updated>2007-12-21T15:54:56Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Usage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;align_image_stack is a command-line tool available in the development version of [[hugin]] to align overlapping himages to facilitate HDR creation.&lt;br /&gt;
&lt;br /&gt;
This article is a stub.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
 align_image_stack [options] input files&lt;br /&gt;
=== Options: modes of operation ===&lt;br /&gt;
 -p file   &lt;br /&gt;
Output .pto file (useful for debugging, or further refinement)&amp;quot;&lt;br /&gt;
 -a prefix &lt;br /&gt;
align images, output as prefix_xxxx.tif&lt;br /&gt;
 -o output &lt;br /&gt;
merge images to HDR, generate output.hdr&lt;br /&gt;
=== Options: modifiers ===&lt;br /&gt;
 -v        &lt;br /&gt;
Verbose, print progress messages&lt;br /&gt;
 -t num    &lt;br /&gt;
Remove all control points with an error higher than num pixels (default: 3)&lt;br /&gt;
 -f HFOV   &lt;br /&gt;
approximate horizontal field of view of input images, use if EXIF info not complete&lt;br /&gt;
 -m        &lt;br /&gt;
Optimize field of view for all images, execpt for first. Useful for aligning focus stacks with slightly different magnification&lt;br /&gt;
 -c num    &lt;br /&gt;
number of control points to create between adjectant images (default: 200)&lt;br /&gt;
 -h        &lt;br /&gt;
Display help.&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Align_image_stack</id>
		<title>Align image stack</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Align_image_stack"/>
				<updated>2007-12-21T15:44:28Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: New page: align_image_stack is a tool available in hugin.  This article is a stub.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;align_image_stack is a tool available in [[hugin]].&lt;br /&gt;
&lt;br /&gt;
This article is a stub.&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T15:40:52Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Four exposure panorama blended with enfuse]]]]&lt;br /&gt;
Enfuse is a command-line program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
Enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. The implementation was done by Andrew Mihal (developer of [[Enblend]]) - http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
Enfuse is currently in beta and available with the development version of [[Enblend]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Enfuse merges overlapping images using the Mertens-Kautz-Van Reeth exposure fusion algorithm. This is a quick way to produce blend differently exposed images into a nice output image, without producing intermediate HDR images that are then tonemapped to a viewable image. This simplified process often works much better than the currently known tonemapping algorithms.&lt;br /&gt;
&lt;br /&gt;
Enfuse can also be used to build extended DOF images, by blending a focus stack.&lt;br /&gt;
&lt;br /&gt;
The basic idea is that pixels in the input images are weighted according to qualities such as proper exposure, good contrast, and high saturation. These weights determine how much a given pixel will contribute to the final image. A Burt &amp;amp; Adelson multiresolution spline blender is used to combine the images according to the weights. The multiresolution blending ensures that transitions between regions where different images contribute more heavily are difficult to see.&lt;br /&gt;
&lt;br /&gt;
Enfuse uses three different criteria to judge the quality of a pixel: Exposure, saturation, and contrast. The exposure criteria favors pixels with luminance close to the middle of the range. These pixels are considered better-exposed than those with high or low luminance levels. The saturation criteria favors highly-saturated pixels. The contrast criteria favors high-contrast pixels. The local gray or color value standard deviation is used as a contrast measure. The Mertens-Kautz-Van Reeth paper suggest using a laplacian filter, but the standard deviation produces much better results for differently focussed images.&lt;br /&gt;
&lt;br /&gt;
You can adjust how much importance is given to each criteria by setting the weight parameters on the command line. For example, if you set --wExposure=1.0 and --wSaturation=0.5, Enfuse will favor well-exposed pixels over highly-saturated pixels when blending the source images. The impact of these parameters on the final result will not always be clear. The quality of the result is subject to your artistic interpretation. Playing with the weights may or may not give you a more pleasing result. I encourage you to experiment (perhaps using downsized images for speed).&lt;br /&gt;
&lt;br /&gt;
Enfuse expects each input image to have an alpha channel. By setting the alpha values of pixels to zero, users can manually remove those pixels from consideration when blending. If an input image lacks an alpha channel, Enfuse will print a warning and continue assuming all pixels should contribute to the final output. Any alpha value other than zero is interpreted as &amp;quot;this pixel should contribute to the final image&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The usage below refers to the CVS version of the 21 Dec 2007.&lt;br /&gt;
&lt;br /&gt;
=== Common options ===&lt;br /&gt;
&lt;br /&gt;
 -h&lt;br /&gt;
Print information on the available options. &lt;br /&gt;
 -l num&lt;br /&gt;
Use exactly this many levels for pyramid blending. This trades off quality of results for faster execution time and lower memory usage. The default is to use as many levels as possible given the size of the overlap region. Enfuse may still use a smaller number of levels if the geometry of the images demands it. &lt;br /&gt;
 -o output-file&lt;br /&gt;
Required. Specify the name of the output file. &lt;br /&gt;
 -v&lt;br /&gt;
Verbose output. &lt;br /&gt;
 -w&lt;br /&gt;
Blend around the -180/+180 boundary. Useful for full-360 panoramas. Enfuse currently does not blend the zenith or the nadir, so you may still see some seams in these areas. &lt;br /&gt;
 --compression=COMP&lt;br /&gt;
Write a compressed output file. Valid values are LZW and DEFLATE for TIFF files, and numbers from 0-100 for JPEG files.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Extended options ===&lt;br /&gt;
&lt;br /&gt;
 -b kilobytes&lt;br /&gt;
Set the block size for Enfuse's image cache. This is the amount of data that Enfuse will move to and from the disk in one go. The default is 2 MiB which should be good for most systems. &lt;br /&gt;
 -c&lt;br /&gt;
Use the CIECAM02 color appearance model for blending colors. Your input TIFF files should have embedded ICC profiles. If no ICC profile is present, Enfuse will assume that image uses the sRGB color space. The difference between using this option and Enfuse's default color blending algorithm is very slight, and will be most noticeable when you need to blend areas of different primary colors together. &lt;br /&gt;
 -g&lt;br /&gt;
Gimp (ver. &amp;lt; 2) and Cinepaint exhibit unusual behaviors when loading images with unassociated alpha channels. Use the -g flag to work around this. With this flag Enfuse will create the output image with the associated alpha tag set, even though the image is really unassociated alpha. &lt;br /&gt;
 -f WIDTHxHEIGHT&lt;br /&gt;
Set the size of the output image manually. This is useful when the input images are cropped TIFF files, such as those produced by Nona. &lt;br /&gt;
 -m megabytes&lt;br /&gt;
Set the size of Enblend's image cache. This is the amount of memory Enblend will use for storing image data before swapping to disk. The default is 1 GiB.&lt;br /&gt;
&lt;br /&gt;
=== Fusion options ===&lt;br /&gt;
&lt;br /&gt;
 --wExposure&lt;br /&gt;
Sets the relative weight of the well-exposedness criteria. Increasing this weight relative to the others will make well-exposed pixels contribute more to the final output. &lt;br /&gt;
 --wSaturation&lt;br /&gt;
Sets the relative weight of high-saturation pixels. Increasing this weight makes pixels with high saturation contribute more to the final output. &lt;br /&gt;
 --wContrast&lt;br /&gt;
Sets the relative weight of high-contrast pixels.&lt;br /&gt;
&lt;br /&gt;
=== Expert options ===&lt;br /&gt;
&lt;br /&gt;
 --ContrastWindowSize&lt;br /&gt;
Window size for local contrast analysis. Values larger than 5 might result in a blurry composite and increased computation times. Values in the range of 3 to 5 have given good results on focus stacks.&lt;br /&gt;
&lt;br /&gt;
 --HardMask&lt;br /&gt;
Force hard blend masks on the finest scale. This avoids averaging of fine details (only), at the expense of increasing the noise. This improves the sharpness of focus stacks considerably.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.nabble.com/A-christmas-present-td14438390.html Announcement on Panotools-NG]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T15:40:10Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: capitalizing Enfuse&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Four exposure panorama blended with enfuse]]]]&lt;br /&gt;
Enfuse is a command-line program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
Enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. The implementation was done by Andrew Mihal (developer of enblend) - http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
Enfuse is currently in beta and available with the development version of [[Enblend]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Enfuse merges overlapping images using the Mertens-Kautz-Van Reeth exposure fusion algorithm. This is a quick way to produce blend differently exposed images into a nice output image, without producing intermediate HDR images that are then tonemapped to a viewable image. This simplified process often works much better than the currently known tonemapping algorithms.&lt;br /&gt;
&lt;br /&gt;
Enfuse can also be used to build extended DOF images, by blending a focus stack.&lt;br /&gt;
&lt;br /&gt;
The basic idea is that pixels in the input images are weighted according to qualities such as proper exposure, good contrast, and high saturation. These weights determine how much a given pixel will contribute to the final image. A Burt &amp;amp; Adelson multiresolution spline blender is used to combine the images according to the weights. The multiresolution blending ensures that transitions between regions where different images contribute more heavily are difficult to see.&lt;br /&gt;
&lt;br /&gt;
Enfuse uses three different criteria to judge the quality of a pixel: Exposure, saturation, and contrast. The exposure criteria favors pixels with luminance close to the middle of the range. These pixels are considered better-exposed than those with high or low luminance levels. The saturation criteria favors highly-saturated pixels. The contrast criteria favors high-contrast pixels. The local gray or color value standard deviation is used as a contrast measure. The Mertens-Kautz-Van Reeth paper suggest using a laplacian filter, but the standard deviation produces much better results for differently focussed images.&lt;br /&gt;
&lt;br /&gt;
You can adjust how much importance is given to each criteria by setting the weight parameters on the command line. For example, if you set --wExposure=1.0 and --wSaturation=0.5, Enfuse will favor well-exposed pixels over highly-saturated pixels when blending the source images. The impact of these parameters on the final result will not always be clear. The quality of the result is subject to your artistic interpretation. Playing with the weights may or may not give you a more pleasing result. I encourage you to experiment (perhaps using downsized images for speed).&lt;br /&gt;
&lt;br /&gt;
Enfuse expects each input image to have an alpha channel. By setting the alpha values of pixels to zero, users can manually remove those pixels from consideration when blending. If an input image lacks an alpha channel, Enfuse will print a warning and continue assuming all pixels should contribute to the final output. Any alpha value other than zero is interpreted as &amp;quot;this pixel should contribute to the final image&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The usage below refers to the CVS version of the 21 Dec 2007.&lt;br /&gt;
&lt;br /&gt;
=== Common options ===&lt;br /&gt;
&lt;br /&gt;
 -h&lt;br /&gt;
Print information on the available options. &lt;br /&gt;
 -l num&lt;br /&gt;
Use exactly this many levels for pyramid blending. This trades off quality of results for faster execution time and lower memory usage. The default is to use as many levels as possible given the size of the overlap region. Enfuse may still use a smaller number of levels if the geometry of the images demands it. &lt;br /&gt;
 -o output-file&lt;br /&gt;
Required. Specify the name of the output file. &lt;br /&gt;
 -v&lt;br /&gt;
Verbose output. &lt;br /&gt;
 -w&lt;br /&gt;
Blend around the -180/+180 boundary. Useful for full-360 panoramas. Enfuse currently does not blend the zenith or the nadir, so you may still see some seams in these areas. &lt;br /&gt;
 --compression=COMP&lt;br /&gt;
Write a compressed output file. Valid values are LZW and DEFLATE for TIFF files, and numbers from 0-100 for JPEG files.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Extended options ===&lt;br /&gt;
&lt;br /&gt;
 -b kilobytes&lt;br /&gt;
Set the block size for Enfuse's image cache. This is the amount of data that Enfuse will move to and from the disk in one go. The default is 2 MiB which should be good for most systems. &lt;br /&gt;
 -c&lt;br /&gt;
Use the CIECAM02 color appearance model for blending colors. Your input TIFF files should have embedded ICC profiles. If no ICC profile is present, Enfuse will assume that image uses the sRGB color space. The difference between using this option and Enfuse's default color blending algorithm is very slight, and will be most noticeable when you need to blend areas of different primary colors together. &lt;br /&gt;
 -g&lt;br /&gt;
Gimp (ver. &amp;lt; 2) and Cinepaint exhibit unusual behaviors when loading images with unassociated alpha channels. Use the -g flag to work around this. With this flag Enfuse will create the output image with the associated alpha tag set, even though the image is really unassociated alpha. &lt;br /&gt;
 -f WIDTHxHEIGHT&lt;br /&gt;
Set the size of the output image manually. This is useful when the input images are cropped TIFF files, such as those produced by Nona. &lt;br /&gt;
 -m megabytes&lt;br /&gt;
Set the size of Enblend's image cache. This is the amount of memory Enblend will use for storing image data before swapping to disk. The default is 1 GiB.&lt;br /&gt;
&lt;br /&gt;
=== Fusion options ===&lt;br /&gt;
&lt;br /&gt;
 --wExposure&lt;br /&gt;
Sets the relative weight of the well-exposedness criteria. Increasing this weight relative to the others will make well-exposed pixels contribute more to the final output. &lt;br /&gt;
 --wSaturation&lt;br /&gt;
Sets the relative weight of high-saturation pixels. Increasing this weight makes pixels with high saturation contribute more to the final output. &lt;br /&gt;
 --wContrast&lt;br /&gt;
Sets the relative weight of high-contrast pixels.&lt;br /&gt;
&lt;br /&gt;
=== Expert options ===&lt;br /&gt;
&lt;br /&gt;
 --ContrastWindowSize&lt;br /&gt;
Window size for local contrast analysis. Values larger than 5 might result in a blurry composite and increased computation times. Values in the range of 3 to 5 have given good results on focus stacks.&lt;br /&gt;
&lt;br /&gt;
 --HardMask&lt;br /&gt;
Force hard blend masks on the finest scale. This avoids averaging of fine details (only), at the expense of increasing the noise. This improves the sharpness of focus stacks considerably.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.nabble.com/A-christmas-present-td14438390.html Announcement on Panotools-NG]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T15:39:33Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Info on thumbnail image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Four exposure panorama blended with enfuse]]]]&lt;br /&gt;
enfuse is a command-line program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. The implementation was done by Andrew Mihal (developer of enblend) - http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
enfuse is currently in beta and available with the development version of [[enblend]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Enfuse merges overlapping images using the Mertens-Kautz-Van Reeth exposure fusion algorithm. This is a quick way to produce blend differently exposed images into a nice output image, without producing intermediate HDR images that are then tonemapped to a viewable image. This simplified process often works much better than the currently known tonemapping algorithms.&lt;br /&gt;
&lt;br /&gt;
Enfuse can also be used to build extended DOF images, by blending a focus stack.&lt;br /&gt;
&lt;br /&gt;
The basic idea is that pixels in the input images are weighted according to qualities such as proper exposure, good contrast, and high saturation. These weights determine how much a given pixel will contribute to the final image. A Burt &amp;amp; Adelson multiresolution spline blender is used to combine the images according to the weights. The multiresolution blending ensures that transitions between regions where different images contribute more heavily are difficult to see.&lt;br /&gt;
&lt;br /&gt;
Enfuse uses three different criteria to judge the quality of a pixel: Exposure, saturation, and contrast. The exposure criteria favors pixels with luminance close to the middle of the range. These pixels are considered better-exposed than those with high or low luminance levels. The saturation criteria favors highly-saturated pixels. The contrast criteria favors high-contrast pixels. The local gray or color value standard deviation is used as a contrast measure. The Mertens-Kautz-Van Reeth paper suggest using a laplacian filter, but the standard deviation produces much better results for differently focussed images.&lt;br /&gt;
&lt;br /&gt;
You can adjust how much importance is given to each criteria by setting the weight parameters on the command line. For example, if you set --wExposure=1.0 and --wSaturation=0.5, Enfuse will favor well-exposed pixels over highly-saturated pixels when blending the source images. The impact of these parameters on the final result will not always be clear. The quality of the result is subject to your artistic interpretation. Playing with the weights may or may not give you a more pleasing result. I encourage you to experiment (perhaps using downsized images for speed).&lt;br /&gt;
&lt;br /&gt;
Enfuse expects each input image to have an alpha channel. By setting the alpha values of pixels to zero, users can manually remove those pixels from consideration when blending. If an input image lacks an alpha channel, Enfuse will print a warning and continue assuming all pixels should contribute to the final output. Any alpha value other than zero is interpreted as &amp;quot;this pixel should contribute to the final image&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The usage below refers to the CVS version of the 21 Dec 2007.&lt;br /&gt;
&lt;br /&gt;
=== Common options ===&lt;br /&gt;
&lt;br /&gt;
 -h&lt;br /&gt;
Print information on the available options. &lt;br /&gt;
 -l num&lt;br /&gt;
Use exactly this many levels for pyramid blending. This trades off quality of results for faster execution time and lower memory usage. The default is to use as many levels as possible given the size of the overlap region. Enfuse may still use a smaller number of levels if the geometry of the images demands it. &lt;br /&gt;
 -o output-file&lt;br /&gt;
Required. Specify the name of the output file. &lt;br /&gt;
 -v&lt;br /&gt;
Verbose output. &lt;br /&gt;
 -w&lt;br /&gt;
Blend around the -180/+180 boundary. Useful for full-360 panoramas. Enfuse currently does not blend the zenith or the nadir, so you may still see some seams in these areas. &lt;br /&gt;
 --compression=COMP&lt;br /&gt;
Write a compressed output file. Valid values are LZW and DEFLATE for TIFF files, and numbers from 0-100 for JPEG files.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Extended options ===&lt;br /&gt;
&lt;br /&gt;
 -b kilobytes&lt;br /&gt;
Set the block size for Enfuse's image cache. This is the amount of data that Enfuse will move to and from the disk in one go. The default is 2 MiB which should be good for most systems. &lt;br /&gt;
 -c&lt;br /&gt;
Use the CIECAM02 color appearance model for blending colors. Your input TIFF files should have embedded ICC profiles. If no ICC profile is present, Enfuse will assume that image uses the sRGB color space. The difference between using this option and Enfuse's default color blending algorithm is very slight, and will be most noticeable when you need to blend areas of different primary colors together. &lt;br /&gt;
 -g&lt;br /&gt;
Gimp (ver. &amp;lt; 2) and Cinepaint exhibit unusual behaviors when loading images with unassociated alpha channels. Use the -g flag to work around this. With this flag Enfuse will create the output image with the associated alpha tag set, even though the image is really unassociated alpha. &lt;br /&gt;
 -f WIDTHxHEIGHT&lt;br /&gt;
Set the size of the output image manually. This is useful when the input images are cropped TIFF files, such as those produced by Nona. &lt;br /&gt;
 -m megabytes&lt;br /&gt;
Set the size of Enblend's image cache. This is the amount of memory Enblend will use for storing image data before swapping to disk. The default is 1 GiB.&lt;br /&gt;
&lt;br /&gt;
=== Fusion options ===&lt;br /&gt;
&lt;br /&gt;
 --wExposure&lt;br /&gt;
Sets the relative weight of the well-exposedness criteria. Increasing this weight relative to the others will make well-exposed pixels contribute more to the final output. &lt;br /&gt;
 --wSaturation&lt;br /&gt;
Sets the relative weight of high-saturation pixels. Increasing this weight makes pixels with high saturation contribute more to the final output. &lt;br /&gt;
 --wContrast&lt;br /&gt;
Sets the relative weight of high-contrast pixels.&lt;br /&gt;
&lt;br /&gt;
=== Expert options ===&lt;br /&gt;
&lt;br /&gt;
 --ContrastWindowSize&lt;br /&gt;
Window size for local contrast analysis. Values larger than 5 might result in a blurry composite and increased computation times. Values in the range of 3 to 5 have given good results on focus stacks.&lt;br /&gt;
&lt;br /&gt;
 --HardMask&lt;br /&gt;
Force hard blend masks on the finest scale. This avoids averaging of fine details (only), at the expense of increasing the noise. This improves the sharpness of focus stacks considerably.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.nabble.com/A-christmas-present-td14438390.html Announcement on Panotools-NG]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T09:54:50Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Expert options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Panorama created with enfuse]]]]&lt;br /&gt;
enfuse is a command-line program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. The implementationwas done by Andrew Mihal (developer of enblend) - http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
enfuse is currently in beta and available with the development version of [[enblend]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Enfuse merges overlapping images using the Mertens-Kautz-Van Reeth exposure fusion algorithm. This is a quick way to produce blend differently exposed images into a nice output image, without producing intermediate HDR images that are then tonemapped to a viewable image. This simplified process often works much better than the currently known tonemapping algorithms.&lt;br /&gt;
&lt;br /&gt;
Enfuse can also be used to build extended DOF images, by blending a focus stack.&lt;br /&gt;
&lt;br /&gt;
The basic idea is that pixels in the input images are weighted according to qualities such as proper exposure, good contrast, and high saturation. These weights determine how much a given pixel will contribute to the final image. A Burt &amp;amp; Adelson multiresolution spline blender is used to combine the images according to the weights. The multiresolution blending ensures that transitions between regions where different images contribute more heavily are difficult to see.&lt;br /&gt;
&lt;br /&gt;
Enfuse uses three different criteria to judge the quality of a pixel: Exposure, saturation, and contrast. The exposure criteria favors pixels with luminance close to the middle of the range. These pixels are considered better-exposed than those with high or low luminance levels. The saturation criteria favors highly-saturated pixels. The contrast criteria favors high-contrast pixels. The local gray or color value standart deviation is used as a contrast measure. The Mertens-Kautz-Van Reeth paper suggest using a laplacian filter, but the standard deviation produces much better results for differently focussed images.&lt;br /&gt;
&lt;br /&gt;
You can adjust how much importance is given to each criteria by setting the weight parameters on the command line. For example, if you set --wExposure=1.0 and --wSaturation=0.5, Enfuse will favor well-exposed pixels over highly-saturated pixels when blending the source images. The impact of these parameters on the final result will not always be clear. The quality of the result is subject to your artistic interpretation. Playing with the weights may or may not give you a more pleasing result. I encourage you to experiment (perhaps using downsized images for speed).&lt;br /&gt;
&lt;br /&gt;
Enfuse expects each input image to have an alpha channel. By setting the alpha values of pixels to zero, users can manually remove those pixels from consideration when blending. If an input image lacks an alpha channel, Enfuse will print a warning and continue assuming all pixels should contribute to the final output. Any alpha value other than zero is interpreted as &amp;quot;this pixel should contribute to the final image&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The usage below refers to the CVS version of the 21 Dec 2007.&lt;br /&gt;
&lt;br /&gt;
=== Common options ===&lt;br /&gt;
&lt;br /&gt;
 -h&lt;br /&gt;
Print information on the available options. &lt;br /&gt;
 -l num&lt;br /&gt;
Use exactly this many levels for pyramid blending. This trades off quality of results for faster execution time and lower memory usage. The default is to use as many levels as possible given the size of the overlap region. Enfuse may still use a smaller number of levels if the geometry of the images demands it. &lt;br /&gt;
 -o output-file&lt;br /&gt;
Required. Specify the name of the output file. &lt;br /&gt;
 -v&lt;br /&gt;
Verbose output. &lt;br /&gt;
 -w&lt;br /&gt;
Blend around the -180/+180 boundary. Useful for full-360 panoramas. Enfuse currently does not blend the zenith or the nadir, so you may still see some seams in these areas. &lt;br /&gt;
 --compression=COMP&lt;br /&gt;
Write a compressed output file. Valid values are LZW and DEFLATE for TIFF files, and numbers from 0-100 for JPEG files.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Extended options ===&lt;br /&gt;
&lt;br /&gt;
 -b kilobytes&lt;br /&gt;
Set the block size for Enfuse's image cache. This is the amount of data that Enfuse will move to and from the disk in one go. The default is 2 MiB which should be good for most systems. &lt;br /&gt;
 -c&lt;br /&gt;
Use the CIECAM02 color appearance model for blending colors. Your input TIFF files should have embedded ICC profiles. If no ICC profile is present, Enfuse will assume that image uses the sRGB color space. The difference between using this option and Enfuse's default color blending algorithm is very slight, and will be most noticeable when you need to blend areas of different primary colors together. &lt;br /&gt;
 -g&lt;br /&gt;
Gimp (ver. &amp;lt; 2) and Cinepaint exhibit unusual behaviors when loading images with unassociated alpha channels. Use the -g flag to work around this. With this flag Enfuse will create the output image with the associated alpha tag set, even though the image is really unassociated alpha. &lt;br /&gt;
 -f WIDTHxHEIGHT&lt;br /&gt;
Set the size of the output image manually. This is useful when the input images are cropped TIFF files, such as those produced by Nona. &lt;br /&gt;
 -m megabytes&lt;br /&gt;
Set the size of Enblend's image cache. This is the amount of memory Enblend will use for storing image data before swapping to disk. The default is 1 GiB.&lt;br /&gt;
&lt;br /&gt;
=== Fusion options ===&lt;br /&gt;
&lt;br /&gt;
 --wExposure&lt;br /&gt;
Sets the relative weight of the well-exposedness criteria. Increasing this weight relative to the others will make well-exposed pixels contribute more to the final output. &lt;br /&gt;
 --wSaturation&lt;br /&gt;
Sets the relative weight of high-saturation pixels. Increasing this weight makes pixels with high saturation contribute more to the final output. &lt;br /&gt;
 --wContrast&lt;br /&gt;
Sets the relative weight of high-contrast pixels.&lt;br /&gt;
&lt;br /&gt;
=== Expert options ===&lt;br /&gt;
&lt;br /&gt;
 --ContrastWindowSize&lt;br /&gt;
Window size for local contrast analysis. Values larger than 5 might result in a blurry composite and increased computation times. Values in the range of 3 to 5 have given good results on focus stacks.&lt;br /&gt;
&lt;br /&gt;
 --HardMask&lt;br /&gt;
Force hard blend masks on the finest scale. This avoids averaging of fine details (only), at the expense of increasing the noise. This improves the sharpness of focus stacks considerably.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.nabble.com/A-christmas-present-td14438390.html Announcement on Panotools-NG]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T09:54:22Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Fusion options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Panorama created with enfuse]]]]&lt;br /&gt;
enfuse is a command-line program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. The implementationwas done by Andrew Mihal (developer of enblend) - http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
enfuse is currently in beta and available with the development version of [[enblend]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Enfuse merges overlapping images using the Mertens-Kautz-Van Reeth exposure fusion algorithm. This is a quick way to produce blend differently exposed images into a nice output image, without producing intermediate HDR images that are then tonemapped to a viewable image. This simplified process often works much better than the currently known tonemapping algorithms.&lt;br /&gt;
&lt;br /&gt;
Enfuse can also be used to build extended DOF images, by blending a focus stack.&lt;br /&gt;
&lt;br /&gt;
The basic idea is that pixels in the input images are weighted according to qualities such as proper exposure, good contrast, and high saturation. These weights determine how much a given pixel will contribute to the final image. A Burt &amp;amp; Adelson multiresolution spline blender is used to combine the images according to the weights. The multiresolution blending ensures that transitions between regions where different images contribute more heavily are difficult to see.&lt;br /&gt;
&lt;br /&gt;
Enfuse uses three different criteria to judge the quality of a pixel: Exposure, saturation, and contrast. The exposure criteria favors pixels with luminance close to the middle of the range. These pixels are considered better-exposed than those with high or low luminance levels. The saturation criteria favors highly-saturated pixels. The contrast criteria favors high-contrast pixels. The local gray or color value standart deviation is used as a contrast measure. The Mertens-Kautz-Van Reeth paper suggest using a laplacian filter, but the standard deviation produces much better results for differently focussed images.&lt;br /&gt;
&lt;br /&gt;
You can adjust how much importance is given to each criteria by setting the weight parameters on the command line. For example, if you set --wExposure=1.0 and --wSaturation=0.5, Enfuse will favor well-exposed pixels over highly-saturated pixels when blending the source images. The impact of these parameters on the final result will not always be clear. The quality of the result is subject to your artistic interpretation. Playing with the weights may or may not give you a more pleasing result. I encourage you to experiment (perhaps using downsized images for speed).&lt;br /&gt;
&lt;br /&gt;
Enfuse expects each input image to have an alpha channel. By setting the alpha values of pixels to zero, users can manually remove those pixels from consideration when blending. If an input image lacks an alpha channel, Enfuse will print a warning and continue assuming all pixels should contribute to the final output. Any alpha value other than zero is interpreted as &amp;quot;this pixel should contribute to the final image&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The usage below refers to the CVS version of the 21 Dec 2007.&lt;br /&gt;
&lt;br /&gt;
=== Common options ===&lt;br /&gt;
&lt;br /&gt;
 -h&lt;br /&gt;
Print information on the available options. &lt;br /&gt;
 -l num&lt;br /&gt;
Use exactly this many levels for pyramid blending. This trades off quality of results for faster execution time and lower memory usage. The default is to use as many levels as possible given the size of the overlap region. Enfuse may still use a smaller number of levels if the geometry of the images demands it. &lt;br /&gt;
 -o output-file&lt;br /&gt;
Required. Specify the name of the output file. &lt;br /&gt;
 -v&lt;br /&gt;
Verbose output. &lt;br /&gt;
 -w&lt;br /&gt;
Blend around the -180/+180 boundary. Useful for full-360 panoramas. Enfuse currently does not blend the zenith or the nadir, so you may still see some seams in these areas. &lt;br /&gt;
 --compression=COMP&lt;br /&gt;
Write a compressed output file. Valid values are LZW and DEFLATE for TIFF files, and numbers from 0-100 for JPEG files.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Extended options ===&lt;br /&gt;
&lt;br /&gt;
 -b kilobytes&lt;br /&gt;
Set the block size for Enfuse's image cache. This is the amount of data that Enfuse will move to and from the disk in one go. The default is 2 MiB which should be good for most systems. &lt;br /&gt;
 -c&lt;br /&gt;
Use the CIECAM02 color appearance model for blending colors. Your input TIFF files should have embedded ICC profiles. If no ICC profile is present, Enfuse will assume that image uses the sRGB color space. The difference between using this option and Enfuse's default color blending algorithm is very slight, and will be most noticeable when you need to blend areas of different primary colors together. &lt;br /&gt;
 -g&lt;br /&gt;
Gimp (ver. &amp;lt; 2) and Cinepaint exhibit unusual behaviors when loading images with unassociated alpha channels. Use the -g flag to work around this. With this flag Enfuse will create the output image with the associated alpha tag set, even though the image is really unassociated alpha. &lt;br /&gt;
 -f WIDTHxHEIGHT&lt;br /&gt;
Set the size of the output image manually. This is useful when the input images are cropped TIFF files, such as those produced by Nona. &lt;br /&gt;
 -m megabytes&lt;br /&gt;
Set the size of Enblend's image cache. This is the amount of memory Enblend will use for storing image data before swapping to disk. The default is 1 GiB.&lt;br /&gt;
&lt;br /&gt;
=== Fusion options ===&lt;br /&gt;
&lt;br /&gt;
 --wExposure&lt;br /&gt;
Sets the relative weight of the well-exposedness criteria. Increasing this weight relative to the others will make well-exposed pixels contribute more to the final output. &lt;br /&gt;
 --wSaturation&lt;br /&gt;
Sets the relative weight of high-saturation pixels. Increasing this weight makes pixels with high saturation contribute more to the final output. &lt;br /&gt;
 --wContrast&lt;br /&gt;
Sets the relative weight of high-contrast pixels.&lt;br /&gt;
&lt;br /&gt;
=== Expert options ===&lt;br /&gt;
&lt;br /&gt;
--ContrastWindowSize&lt;br /&gt;
    Window size for local contrast analysis. Values larger than 5 might result in a blurry composite and increased computation times. Values in the range of 3 to 5 have given good results on focus stacks.&lt;br /&gt;
&lt;br /&gt;
--HardMask&lt;br /&gt;
    Force hard blend masks on the finest scale. This avoids averaging of fine details (only), at the expense of increasing the noise. This improves the sharpness of focus stacks considerably.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.nabble.com/A-christmas-present-td14438390.html Announcement on Panotools-NG]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T09:54:05Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Extended options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Panorama created with enfuse]]]]&lt;br /&gt;
enfuse is a command-line program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. The implementationwas done by Andrew Mihal (developer of enblend) - http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
enfuse is currently in beta and available with the development version of [[enblend]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Enfuse merges overlapping images using the Mertens-Kautz-Van Reeth exposure fusion algorithm. This is a quick way to produce blend differently exposed images into a nice output image, without producing intermediate HDR images that are then tonemapped to a viewable image. This simplified process often works much better than the currently known tonemapping algorithms.&lt;br /&gt;
&lt;br /&gt;
Enfuse can also be used to build extended DOF images, by blending a focus stack.&lt;br /&gt;
&lt;br /&gt;
The basic idea is that pixels in the input images are weighted according to qualities such as proper exposure, good contrast, and high saturation. These weights determine how much a given pixel will contribute to the final image. A Burt &amp;amp; Adelson multiresolution spline blender is used to combine the images according to the weights. The multiresolution blending ensures that transitions between regions where different images contribute more heavily are difficult to see.&lt;br /&gt;
&lt;br /&gt;
Enfuse uses three different criteria to judge the quality of a pixel: Exposure, saturation, and contrast. The exposure criteria favors pixels with luminance close to the middle of the range. These pixels are considered better-exposed than those with high or low luminance levels. The saturation criteria favors highly-saturated pixels. The contrast criteria favors high-contrast pixels. The local gray or color value standart deviation is used as a contrast measure. The Mertens-Kautz-Van Reeth paper suggest using a laplacian filter, but the standard deviation produces much better results for differently focussed images.&lt;br /&gt;
&lt;br /&gt;
You can adjust how much importance is given to each criteria by setting the weight parameters on the command line. For example, if you set --wExposure=1.0 and --wSaturation=0.5, Enfuse will favor well-exposed pixels over highly-saturated pixels when blending the source images. The impact of these parameters on the final result will not always be clear. The quality of the result is subject to your artistic interpretation. Playing with the weights may or may not give you a more pleasing result. I encourage you to experiment (perhaps using downsized images for speed).&lt;br /&gt;
&lt;br /&gt;
Enfuse expects each input image to have an alpha channel. By setting the alpha values of pixels to zero, users can manually remove those pixels from consideration when blending. If an input image lacks an alpha channel, Enfuse will print a warning and continue assuming all pixels should contribute to the final output. Any alpha value other than zero is interpreted as &amp;quot;this pixel should contribute to the final image&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The usage below refers to the CVS version of the 21 Dec 2007.&lt;br /&gt;
&lt;br /&gt;
=== Common options ===&lt;br /&gt;
&lt;br /&gt;
 -h&lt;br /&gt;
Print information on the available options. &lt;br /&gt;
 -l num&lt;br /&gt;
Use exactly this many levels for pyramid blending. This trades off quality of results for faster execution time and lower memory usage. The default is to use as many levels as possible given the size of the overlap region. Enfuse may still use a smaller number of levels if the geometry of the images demands it. &lt;br /&gt;
 -o output-file&lt;br /&gt;
Required. Specify the name of the output file. &lt;br /&gt;
 -v&lt;br /&gt;
Verbose output. &lt;br /&gt;
 -w&lt;br /&gt;
Blend around the -180/+180 boundary. Useful for full-360 panoramas. Enfuse currently does not blend the zenith or the nadir, so you may still see some seams in these areas. &lt;br /&gt;
 --compression=COMP&lt;br /&gt;
Write a compressed output file. Valid values are LZW and DEFLATE for TIFF files, and numbers from 0-100 for JPEG files.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Extended options ===&lt;br /&gt;
&lt;br /&gt;
 -b kilobytes&lt;br /&gt;
Set the block size for Enfuse's image cache. This is the amount of data that Enfuse will move to and from the disk in one go. The default is 2 MiB which should be good for most systems. &lt;br /&gt;
 -c&lt;br /&gt;
Use the CIECAM02 color appearance model for blending colors. Your input TIFF files should have embedded ICC profiles. If no ICC profile is present, Enfuse will assume that image uses the sRGB color space. The difference between using this option and Enfuse's default color blending algorithm is very slight, and will be most noticeable when you need to blend areas of different primary colors together. &lt;br /&gt;
 -g&lt;br /&gt;
Gimp (ver. &amp;lt; 2) and Cinepaint exhibit unusual behaviors when loading images with unassociated alpha channels. Use the -g flag to work around this. With this flag Enfuse will create the output image with the associated alpha tag set, even though the image is really unassociated alpha. &lt;br /&gt;
 -f WIDTHxHEIGHT&lt;br /&gt;
Set the size of the output image manually. This is useful when the input images are cropped TIFF files, such as those produced by Nona. &lt;br /&gt;
 -m megabytes&lt;br /&gt;
Set the size of Enblend's image cache. This is the amount of memory Enblend will use for storing image data before swapping to disk. The default is 1 GiB.&lt;br /&gt;
&lt;br /&gt;
=== Fusion options ===&lt;br /&gt;
&lt;br /&gt;
--wExposure&lt;br /&gt;
    Sets the relative weight of the well-exposedness criteria. Increasing this weight relative to the others will make well-exposed pixels contribute more to the final output. &lt;br /&gt;
--wSaturation&lt;br /&gt;
    Sets the relative weight of high-saturation pixels. Increasing this weight makes pixels with high saturation contribute more to the final output. &lt;br /&gt;
--wContrast&lt;br /&gt;
    Sets the relative weight of high-contrast pixels.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Expert options ===&lt;br /&gt;
&lt;br /&gt;
--ContrastWindowSize&lt;br /&gt;
    Window size for local contrast analysis. Values larger than 5 might result in a blurry composite and increased computation times. Values in the range of 3 to 5 have given good results on focus stacks.&lt;br /&gt;
&lt;br /&gt;
--HardMask&lt;br /&gt;
    Force hard blend masks on the finest scale. This avoids averaging of fine details (only), at the expense of increasing the noise. This improves the sharpness of focus stacks considerably.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.nabble.com/A-christmas-present-td14438390.html Announcement on Panotools-NG]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T09:53:38Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Panorama created with enfuse]]]]&lt;br /&gt;
enfuse is a command-line program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. The implementationwas done by Andrew Mihal (developer of enblend) - http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
enfuse is currently in beta and available with the development version of [[enblend]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Enfuse merges overlapping images using the Mertens-Kautz-Van Reeth exposure fusion algorithm. This is a quick way to produce blend differently exposed images into a nice output image, without producing intermediate HDR images that are then tonemapped to a viewable image. This simplified process often works much better than the currently known tonemapping algorithms.&lt;br /&gt;
&lt;br /&gt;
Enfuse can also be used to build extended DOF images, by blending a focus stack.&lt;br /&gt;
&lt;br /&gt;
The basic idea is that pixels in the input images are weighted according to qualities such as proper exposure, good contrast, and high saturation. These weights determine how much a given pixel will contribute to the final image. A Burt &amp;amp; Adelson multiresolution spline blender is used to combine the images according to the weights. The multiresolution blending ensures that transitions between regions where different images contribute more heavily are difficult to see.&lt;br /&gt;
&lt;br /&gt;
Enfuse uses three different criteria to judge the quality of a pixel: Exposure, saturation, and contrast. The exposure criteria favors pixels with luminance close to the middle of the range. These pixels are considered better-exposed than those with high or low luminance levels. The saturation criteria favors highly-saturated pixels. The contrast criteria favors high-contrast pixels. The local gray or color value standart deviation is used as a contrast measure. The Mertens-Kautz-Van Reeth paper suggest using a laplacian filter, but the standard deviation produces much better results for differently focussed images.&lt;br /&gt;
&lt;br /&gt;
You can adjust how much importance is given to each criteria by setting the weight parameters on the command line. For example, if you set --wExposure=1.0 and --wSaturation=0.5, Enfuse will favor well-exposed pixels over highly-saturated pixels when blending the source images. The impact of these parameters on the final result will not always be clear. The quality of the result is subject to your artistic interpretation. Playing with the weights may or may not give you a more pleasing result. I encourage you to experiment (perhaps using downsized images for speed).&lt;br /&gt;
&lt;br /&gt;
Enfuse expects each input image to have an alpha channel. By setting the alpha values of pixels to zero, users can manually remove those pixels from consideration when blending. If an input image lacks an alpha channel, Enfuse will print a warning and continue assuming all pixels should contribute to the final output. Any alpha value other than zero is interpreted as &amp;quot;this pixel should contribute to the final image&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The usage below refers to the CVS version of the 21 Dec 2007.&lt;br /&gt;
&lt;br /&gt;
=== Common options ===&lt;br /&gt;
&lt;br /&gt;
 -h&lt;br /&gt;
Print information on the available options. &lt;br /&gt;
 -l num&lt;br /&gt;
Use exactly this many levels for pyramid blending. This trades off quality of results for faster execution time and lower memory usage. The default is to use as many levels as possible given the size of the overlap region. Enfuse may still use a smaller number of levels if the geometry of the images demands it. &lt;br /&gt;
 -o output-file&lt;br /&gt;
Required. Specify the name of the output file. &lt;br /&gt;
 -v&lt;br /&gt;
Verbose output. &lt;br /&gt;
 -w&lt;br /&gt;
Blend around the -180/+180 boundary. Useful for full-360 panoramas. Enfuse currently does not blend the zenith or the nadir, so you may still see some seams in these areas. &lt;br /&gt;
 --compression=COMP&lt;br /&gt;
Write a compressed output file. Valid values are LZW and DEFLATE for TIFF files, and numbers from 0-100 for JPEG files.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Extended options ===&lt;br /&gt;
&lt;br /&gt;
-b kilobytes&lt;br /&gt;
    Set the block size for Enfuse's image cache. This is the amount of data that Enfuse will move to and from the disk in one go. The default is 2 MiB which should be good for most systems. &lt;br /&gt;
-c&lt;br /&gt;
    Use the CIECAM02 color appearance model for blending colors. Your input TIFF files should have embedded ICC profiles. If no ICC profile is present, Enfuse will assume that image uses the sRGB color space. The difference between using this option and Enfuse's default color blending algorithm is very slight, and will be most noticeable when you need to blend areas of different primary colors together. &lt;br /&gt;
-g&lt;br /&gt;
    Gimp (ver. &amp;lt; 2) and Cinepaint exhibit unusual behaviors when loading images with unassociated alpha channels. Use the -g flag to work around this. With this flag Enfuse will create the output image with the associated alpha tag set, even though the image is really unassociated alpha. &lt;br /&gt;
-f WIDTHxHEIGHT&lt;br /&gt;
    Set the size of the output image manually. This is useful when the input images are cropped TIFF files, such as those produced by Nona. &lt;br /&gt;
-m megabytes&lt;br /&gt;
    Set the size of Enblend's image cache. This is the amount of memory Enblend will use for storing image data before swapping to disk. The default is 1 GiB.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Fusion options ===&lt;br /&gt;
&lt;br /&gt;
--wExposure&lt;br /&gt;
    Sets the relative weight of the well-exposedness criteria. Increasing this weight relative to the others will make well-exposed pixels contribute more to the final output. &lt;br /&gt;
--wSaturation&lt;br /&gt;
    Sets the relative weight of high-saturation pixels. Increasing this weight makes pixels with high saturation contribute more to the final output. &lt;br /&gt;
--wContrast&lt;br /&gt;
    Sets the relative weight of high-contrast pixels.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Expert options ===&lt;br /&gt;
&lt;br /&gt;
--ContrastWindowSize&lt;br /&gt;
    Window size for local contrast analysis. Values larger than 5 might result in a blurry composite and increased computation times. Values in the range of 3 to 5 have given good results on focus stacks.&lt;br /&gt;
&lt;br /&gt;
--HardMask&lt;br /&gt;
    Force hard blend masks on the finest scale. This avoids averaging of fine details (only), at the expense of increasing the noise. This improves the sharpness of focus stacks considerably.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.nabble.com/A-christmas-present-td14438390.html Announcement on Panotools-NG]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T09:53:02Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Added help page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Panorama created with enfuse]]]]&lt;br /&gt;
enfuse is a command-line program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. The implementationwas done by Andrew Mihal (developer of enblend) - http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
enfuse is currently in beta and available with the development version of [[enblend]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Enfuse merges overlapping images using the Mertens-Kautz-Van Reeth exposure fusion algorithm. This is a quick way to produce blend differently exposed images into a nice output image, without producing intermediate HDR images that are then tonemapped to a viewable image. This simplified process often works much better than the currently known tonemapping algorithms.&lt;br /&gt;
&lt;br /&gt;
Enfuse can also be used to build extended DOF images, by blending a focus stack.&lt;br /&gt;
&lt;br /&gt;
The basic idea is that pixels in the input images are weighted according to qualities such as proper exposure, good contrast, and high saturation. These weights determine how much a given pixel will contribute to the final image. A Burt &amp;amp; Adelson multiresolution spline blender is used to combine the images according to the weights. The multiresolution blending ensures that transitions between regions where different images contribute more heavily are difficult to see.&lt;br /&gt;
&lt;br /&gt;
Enfuse uses three different criteria to judge the quality of a pixel: Exposure, saturation, and contrast. The exposure criteria favors pixels with luminance close to the middle of the range. These pixels are considered better-exposed than those with high or low luminance levels. The saturation criteria favors highly-saturated pixels. The contrast criteria favors high-contrast pixels. The local gray or color value standart deviation is used as a contrast measure. The Mertens-Kautz-Van Reeth paper suggest using a laplacian filter, but the standard deviation produces much better results for differently focussed images.&lt;br /&gt;
&lt;br /&gt;
You can adjust how much importance is given to each criteria by setting the weight parameters on the command line. For example, if you set --wExposure=1.0 and --wSaturation=0.5, Enfuse will favor well-exposed pixels over highly-saturated pixels when blending the source images. The impact of these parameters on the final result will not always be clear. The quality of the result is subject to your artistic interpretation. Playing with the weights may or may not give you a more pleasing result. I encourage you to experiment (perhaps using downsized images for speed).&lt;br /&gt;
&lt;br /&gt;
Enfuse expects each input image to have an alpha channel. By setting the alpha values of pixels to zero, users can manually remove those pixels from consideration when blending. If an input image lacks an alpha channel, Enfuse will print a warning and continue assuming all pixels should contribute to the final output. Any alpha value other than zero is interpreted as &amp;quot;this pixel should contribute to the final image&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The usage below refers to the CVS version of the 21 Dec 2007.&lt;br /&gt;
&lt;br /&gt;
=== Common options ===&lt;br /&gt;
&lt;br /&gt;
-h&lt;br /&gt;
    Print information on the available options. &lt;br /&gt;
-l num&lt;br /&gt;
    Use exactly this many levels for pyramid blending. This trades off quality of results for faster execution time and lower memory usage. The default is to use as many levels as possible given the size of the overlap region. Enfuse may still use a smaller number of levels if the geometry of the images demands it. &lt;br /&gt;
-o output-file&lt;br /&gt;
    Required. Specify the name of the output file. &lt;br /&gt;
-v&lt;br /&gt;
    Verbose output. &lt;br /&gt;
-w&lt;br /&gt;
    Blend around the -180/+180 boundary. Useful for full-360 panoramas. Enfuse currently does not blend the zenith or the nadir, so you may still see some seams in these areas. &lt;br /&gt;
--compression=COMP&lt;br /&gt;
    Write a compressed output file. Valid values are LZW and DEFLATE for TIFF files, and numbers from 0-100 for JPEG files.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Extended options ===&lt;br /&gt;
&lt;br /&gt;
-b kilobytes&lt;br /&gt;
    Set the block size for Enfuse's image cache. This is the amount of data that Enfuse will move to and from the disk in one go. The default is 2 MiB which should be good for most systems. &lt;br /&gt;
-c&lt;br /&gt;
    Use the CIECAM02 color appearance model for blending colors. Your input TIFF files should have embedded ICC profiles. If no ICC profile is present, Enfuse will assume that image uses the sRGB color space. The difference between using this option and Enfuse's default color blending algorithm is very slight, and will be most noticeable when you need to blend areas of different primary colors together. &lt;br /&gt;
-g&lt;br /&gt;
    Gimp (ver. &amp;lt; 2) and Cinepaint exhibit unusual behaviors when loading images with unassociated alpha channels. Use the -g flag to work around this. With this flag Enfuse will create the output image with the associated alpha tag set, even though the image is really unassociated alpha. &lt;br /&gt;
-f WIDTHxHEIGHT&lt;br /&gt;
    Set the size of the output image manually. This is useful when the input images are cropped TIFF files, such as those produced by Nona. &lt;br /&gt;
-m megabytes&lt;br /&gt;
    Set the size of Enblend's image cache. This is the amount of memory Enblend will use for storing image data before swapping to disk. The default is 1 GiB.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Fusion options ===&lt;br /&gt;
&lt;br /&gt;
--wExposure&lt;br /&gt;
    Sets the relative weight of the well-exposedness criteria. Increasing this weight relative to the others will make well-exposed pixels contribute more to the final output. &lt;br /&gt;
--wSaturation&lt;br /&gt;
    Sets the relative weight of high-saturation pixels. Increasing this weight makes pixels with high saturation contribute more to the final output. &lt;br /&gt;
--wContrast&lt;br /&gt;
    Sets the relative weight of high-contrast pixels.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
=== Expert options ===&lt;br /&gt;
&lt;br /&gt;
--ContrastWindowSize&lt;br /&gt;
    Window size for local contrast analysis. Values larger than 5 might result in a blurry composite and increased computation times. Values in the range of 3 to 5 have given good results on focus stacks.&lt;br /&gt;
&lt;br /&gt;
--HardMask&lt;br /&gt;
    Force hard blend masks on the finest scale. This avoids averaging of fine details (only), at the expense of increasing the noise. This improves the sharpness of focus stacks considerably.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.nabble.com/A-christmas-present-td14438390.html Announcement on Panotools-NG]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T08:19:57Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Panorama created with enfuse]]]]&lt;br /&gt;
enfuse is a command-line program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. The implementationwas done by Andrew Mihal (developer of enblend) - http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
enfuse is currently in beta and available with the development version of [[enblend]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Usage: enfuse [options] -o OUTPUT INPUTS&lt;br /&gt;
&lt;br /&gt;
Common options:&lt;br /&gt;
 -h                Print this help message&lt;br /&gt;
 -l number         Number of levels to use (1 to 29)&lt;br /&gt;
 -o filename       Write output to file&lt;br /&gt;
 -v                Verbose&lt;br /&gt;
 -w                Blend across -180/+180 boundary&lt;br /&gt;
 --compression=COMP Set compression of the output image.&lt;br /&gt;
                   Valid values for compression are:&lt;br /&gt;
                   For TIFF files: LZW, DEFLATE&lt;br /&gt;
                   For JPEG files: 0-100&lt;br /&gt;
&lt;br /&gt;
Extended options:&lt;br /&gt;
 -b kilobytes      Image cache block size (default=2MiB)&lt;br /&gt;
 -c                Use CIECAM02 to blend colors&lt;br /&gt;
 -g                Associated alpha hack for Gimp (ver. &amp;lt; 2) and&lt;br /&gt;
                   Cinepaint&lt;br /&gt;
 -f WIDTHxHEIGHT+x0+y0   Manually set the size and position of the&lt;br /&gt;
                         output image.&lt;br /&gt;
                         Useful for cropped and shifted input TIFF&lt;br /&gt;
                         images, such as those produced by Nona.&lt;br /&gt;
&lt;br /&gt;
 -m megabytes      Use this much memory before going to disk&lt;br /&gt;
                   (default=1GiB)&lt;br /&gt;
&lt;br /&gt;
Fusion options:&lt;br /&gt;
 --wExposure       Weight given to well-exposed pixels.&lt;br /&gt;
 --wContrast       Weight given to high-contrast pixels&lt;br /&gt;
                   (unimplemented).&lt;br /&gt;
 --wSaturation     Weight given to highly-saturated pixels&lt;br /&gt;
                   (unimplemented). &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.nabble.com/A-christmas-present-td14438390.html Announcement on Panotools-NG]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/File:2125768589_b.jpg</id>
		<title>File:2125768589 b.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/File:2125768589_b.jpg"/>
				<updated>2007-12-21T08:19:45Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Example of a panorama created with [[enfuse]]. Church in Saint-Didier-sur-Rochefort, Loire, France. Shot and stitched by me, Seb Przd. See original image: http://www.flickr.com/photos/sbprzd/2125768589/&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T08:11:39Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2125768589_b.jpg|thumb|[[:Image:2125768589_b.jpg|Panorama created with enfuse]]]]&lt;br /&gt;
enfuse is a program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
enfuse is currently in beta and available with the development version of [[enblend]].&lt;br /&gt;
&lt;br /&gt;
Announcement on Panotools-NG: http://www.nabble.com/A-christmas-present-td14438390.html&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/File:2125768589_b.jpg</id>
		<title>File:2125768589 b.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/File:2125768589_b.jpg"/>
				<updated>2007-12-21T08:07:03Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Example of a panorama created with enfuse&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Example of a panorama created with [[enfuse]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T08:01:40Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;enfuse is a program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of an HDR image. Therefore it is much simpler to use and allows the creation of very large multiple exposure panoramas.&lt;br /&gt;
&lt;br /&gt;
enfuse is based on a paper by Tom Mertens, Jan Kautz and Frank Van Reeth. http://research.edm.uhasselt.be/~tmertens/exposure_fusion/&lt;br /&gt;
&lt;br /&gt;
enfuse is currently in beta and available with the development version of [[enblend]].&lt;br /&gt;
&lt;br /&gt;
Announcement on Panotools-NG: http://www.nabble.com/A-christmas-present-td14438390.html&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Enfuse</id>
		<title>Enfuse</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Enfuse"/>
				<updated>2007-12-21T07:47:05Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: New page: enfuse is a program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of a H...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;enfuse is a program used to merge different exposures of the same scene to produce an image that looks very much like a tonemapped image (without the halos) but requires no creation of a HDR image.&lt;br /&gt;
&lt;br /&gt;
enfuse is currently in beta and available with [[enblend]].&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin</id>
		<title>Hugin</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin"/>
				<updated>2007-12-11T08:05:37Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Supported Platforms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Hugin''' {{Glossary|is an opensource graphical user interface (GUI) for [[Panorama tools]]|1}}.&lt;br /&gt;
&lt;br /&gt;
Like other [[GUI front-ends]], '''hugin''' provides an easy-to-use unified point-and-click interface to a whole range of other command-line tools including:&lt;br /&gt;
&lt;br /&gt;
* [[autopano-sift]], [[autopano-sift-C]] or [[autopano]] for automatic creation of [[control points]].&lt;br /&gt;
* [[nona]] or [[PTmender]] for remapping input images and rendering output images.&lt;br /&gt;
* [[enblend]] for seamless blending of output images.&lt;br /&gt;
&lt;br /&gt;
The Hugin project's mission is not only to provide a powerful GUI, but also to provide opensource replacements for the small number of closed source components of [[Panorama tools]], especially [[PTStitcher]].&lt;br /&gt;
A [[PTStitcher]] replacement, called [[nona]] has been developed, supporting its most important features.&lt;br /&gt;
&lt;br /&gt;
Among the many flexible Hugin workflow options, it is possible to use increased tonal range data in a [[16bit workflow with hugin]] or work entirely with high [[dynamic range]] images such as floating-point [[TIFF]] from start to finish in a [[HDR workflow with hugin]].&lt;br /&gt;
&lt;br /&gt;
== Hugin components ==&lt;br /&gt;
&lt;br /&gt;
The following tools are part of the hugin suite:&lt;br /&gt;
&lt;br /&gt;
* [[hugin]] the gui front end.&lt;br /&gt;
* [[nona]] a command-line replacement for [[PTStitcher]].&lt;br /&gt;
* [[fulla]] correction of [[barrel distortion]], [[chromatic aberration]] and [[vignetting]].&lt;br /&gt;
* [[nona_gui]] a version of [[nona]] with simple gui progress dialogs, similar to the windows version of [[PTStitcher]].&lt;br /&gt;
* [[autooptimiser]] an experimental tool with the same interface as [[PTOptimizer]] except using pairwize optimization which doesn't require any manual pre-placement.&lt;br /&gt;
* [[align_image_stack]] a tool to automate the process to [[align a stack of photos]].&lt;br /&gt;
* [[vig_optimize]] command line tool to estimate photometric parameters.&lt;br /&gt;
* [[panoglview]] OpenGL panorama viewer stored in sourceforge CVS alongside [[hugin]] which must be built separately.&lt;br /&gt;
* [[hugin_hdrmerge]] merges multiple exposures to [[HDR]] using Khan anti-ghosting algorithm&lt;br /&gt;
* [[hugin_stitch_project]] batch stitches a hugin project, performing any [[HDR]] merging or blending as necessary.&lt;br /&gt;
&lt;br /&gt;
More information, documentation and tutorials are available on the project website.&lt;br /&gt;
&lt;br /&gt;
== User interface ==&lt;br /&gt;
&lt;br /&gt;
* [[Hugin Main window]]&lt;br /&gt;
* [[Hugin Assistant tab]]&lt;br /&gt;
* [[Hugin Images tab]]&lt;br /&gt;
* [[Hugin Camera and Lens tab]]&lt;br /&gt;
* [[Hugin Crop tab]]&lt;br /&gt;
* [[Hugin Control Points tab]]&lt;br /&gt;
* [[Hugin Optimizer tab]]&lt;br /&gt;
* [[Hugin Exposure tab]]&lt;br /&gt;
* [[Hugin Stitcher tab]]&lt;br /&gt;
* [[Hugin Preferences]]&lt;br /&gt;
* [[Hugin Preview window]]&lt;br /&gt;
* [[Hugin Control Points table]]&lt;br /&gt;
* [[Hugin Keyboard shortcuts]]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
Hugin is Open Source, and as such very much dependent on voluntary contributions of resources. If you have coding skills, you are welcome to look at the source code and contribute to it. Even if you don't have coding skills, you most likely have some skills that the project could use and you are more than welcome to contribute your time. The tasks requiring attention change frequently and so do the required skillset and resources. Join the hugin-ptx mailing list to find out what is going on at the moment and how you can help.&lt;br /&gt;
&lt;br /&gt;
At the time of writing (29-October-2007) there is a major effort going on to document and automate the building process of hugin so that the project can release binaries more frequently. See Test Builds below.&lt;br /&gt;
&lt;br /&gt;
== Test Builds ==&lt;br /&gt;
&lt;br /&gt;
=== Goal ===&lt;br /&gt;
&lt;br /&gt;
an infrastructure for on-demand build and distribution of usable test-binaries for the most popular platforms. These builds are meant to enable users to test the newest features and report bugs. Ideally, on Pablo's demand all those who have a build chain will run it against the newest source code to produce the builds.&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
&lt;br /&gt;
# Experienced users will build the most current hugin and helpers (libpano, enblend, autopano, etc.) for the target platform of their choice, with support from coders.&lt;br /&gt;
# The build process will be documented for each of the supported platform.&lt;br /&gt;
# Users willing to spend some time learning how to build will reproduce the documented process.&lt;br /&gt;
# Power users will script and automate the building process.&lt;br /&gt;
# Users with packaging skills will package the builds for distribution (installers).&lt;br /&gt;
# The produced binaries/installers will be made available on the web.&lt;br /&gt;
&lt;br /&gt;
=== Specific revisions ===&lt;br /&gt;
&lt;br /&gt;
When building from the repository, some revisions have bugs. This process is meant to build the latest revision so that if the latest revision has bugs these can be identified and corrected. However sometimes these bugs can be more critical than other times. If you need a more or less working version of hugin, try applying the process to one of the following revisions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em auto 1em auto;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! width=&amp;quot;100&amp;quot; |&lt;br /&gt;
Revision&lt;br /&gt;
! width=&amp;quot;500&amp;quot; |&lt;br /&gt;
Comments&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
2539&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[http://groups.google.com/group/hugin-ptx/browse_thread/thread/e67e1d5a6215b951]&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Supported Platforms ===&lt;br /&gt;
&lt;br /&gt;
* If you don't find your preferred platform listed below '''and''' you are willing to contribute your time and skills to build hugin on it, feel free to add it to the table. We will accommodate any well supported platform in the regular release process.&lt;br /&gt;
* The '''Build-Chain Responsibles''' listed below have access to a build chain on the selected platform and have agreed to run the build chain within 2 days of a request from Pablo. They will forward the resulting binary package to the Release Manager who will in turn put them up for download by the general public.&lt;br /&gt;
* '''Redundancy is good'''. If you have access to one of the listed platforms, please try to run the documented process below and report success to hugin-ptx. If you think you could do this on a more regular basis, enter yourself in the Backup Build-Chain field.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em auto 1em auto;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! width=&amp;quot;100&amp;quot; |&lt;br /&gt;
Platform&lt;br /&gt;
! width=&amp;quot;100&amp;quot; |&lt;br /&gt;
Status&lt;br /&gt;
! width=&amp;quot;100&amp;quot; |&lt;br /&gt;
Process&lt;br /&gt;
! width=&amp;quot;200&amp;quot; |&lt;br /&gt;
Build-Chain Responsible&lt;br /&gt;
! width=&amp;quot;200&amp;quot; |&lt;br /&gt;
Credits &lt;br /&gt;
! width=&amp;quot;200&amp;quot; |&lt;br /&gt;
Backup Build-Chains &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
ubuntu 32bit&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Ubuntu | draft]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* Sébastien Perez-Duarte&lt;br /&gt;
* Yuval Levy&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
ubuntu 64bit &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Ubuntu | draft]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
&amp;lt;!-- spanned style=&amp;quot;border-top: thin dotted #333333;&amp;quot; | --&amp;gt;&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Fedora 32bit&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Fedora | tbd]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* Bruno Postle&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Fedora 64bit &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Fedora | tbd]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
&amp;lt;!-- spanned style=&amp;quot;border-top: thin dotted #333333;&amp;quot; | --&amp;gt;&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
OSX IntelMac &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling OSX | draft]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Peter A. Crowley&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* Ippei Ukai&lt;br /&gt;
* JD Smith &lt;br /&gt;
* Daniel M. German&lt;br /&gt;
* Peter A. Crowley&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
OSX PPC &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling OSX | draft]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Peter A. Crowley&lt;br /&gt;
&amp;lt;!-- spanned style=&amp;quot;border-top: thin dotted #333333;&amp;quot; | --&amp;gt;&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Windows 32bit &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Windows | draft]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Tom Sharpless&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
* Tom Sharpless&lt;br /&gt;
* John Navas&lt;br /&gt;
* Jean-Marc Paratte&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
OpenSuse 32bit&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling OpenSuse | tbd]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* Kornel Benko (10.3)&lt;br /&gt;
* Peter Suetterlin (10.2)&lt;br /&gt;
* Stephan Hegel (10.3 x86_64)&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
OpenSuse 64bit &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling OpenSuse | tbd]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
&amp;lt;!-- spanned style=&amp;quot;border-top: thin dotted #333333;&amp;quot; | --&amp;gt;&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
all platforms&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
a big thank you to '''Pablo d'Angelo''' for supporting all of those building efforts.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stati ===&lt;br /&gt;
&lt;br /&gt;
'''Build Chain'''&lt;br /&gt;
* tbd: looking for responsible&lt;br /&gt;
* OK: mostly automated build process ready on request&lt;br /&gt;
* unavailable: temporarily unavailable (e.g. responsible on holiday)&lt;br /&gt;
* HW-broken: the hardware is temporarily unavailable&lt;br /&gt;
* SW-broken: temporarily dysfunctional, working on a fix&lt;br /&gt;
* broken: nobody is working on a fix&lt;br /&gt;
* unsupported: has been dropped for lack of support&lt;br /&gt;
&lt;br /&gt;
'''Process'''&lt;br /&gt;
* tbd: status unknown&lt;br /&gt;
* auto: work as documented and has been automated to a reasonable extent&lt;br /&gt;
* OK: works as documented, could use automation / scripting&lt;br /&gt;
* draft: documented, needs validation / testing / cleaning&lt;br /&gt;
* incomplete: parts are missing (e.g. enblend, libpano)&lt;br /&gt;
* outdated: worked in the past but needs an update&lt;br /&gt;
* obsolete: nobody has the time to update&lt;br /&gt;
&lt;br /&gt;
=== Publication ===&lt;br /&gt;
* Release Manager: tbd&lt;br /&gt;
* Download / Webspace: thank you Thomas Rauscher / panotools.org, links will be published soon&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[hugin FAQ]] Frequently asked questions about hugin&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://hugin.sourceforge.net hugin homepage] for Screenshots, Tutorials, Documentation and Links.&lt;br /&gt;
* [http://sourceforge.net/projects/hugin hugin sourceforge project] for Downloads, Bug database and Feature requests.&lt;br /&gt;
* [http://hugin.svn.sourceforge.net/viewvc/hugin/ sourceforge SVN] to browse the hugin sourcecode.&lt;br /&gt;
* [http://groups.google.com/group/hugin-ptx hugin-ptx GoogleGroup] to contribute to development and peer support.&lt;br /&gt;
&lt;br /&gt;
== Supported operating systems ==&lt;br /&gt;
* [[windows software|Windows]]&lt;br /&gt;
* [[Unix software|Linux and Unix]]&lt;br /&gt;
* [[Mac software|Mac OS X]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Platform:Windows]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;br /&gt;
[[Category:Software:Platform:Mac OS X]]&lt;br /&gt;
[[Category:Software:Hugin]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-17T19:33:03Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building Enblend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress. Initially tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer, they have also been tested on Ubuntu 7.04 on a AMD64 computer and Ubuntu 7.10 on an AMD Athlon XP computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here] and on the hugin-ptx mailing list. Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a amd64 environment you will need the following packages&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev-amd64 lib64gcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a i386 system the equivalent is probably (COULD SOMEBODY CHECK THIS ONE?)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev libgcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN and CVS repositories, and for this we need the correct tools:&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install subversion cvs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pkg-config libtiff4-dev libboost-graph-dev libboost-thread-dev \&lt;br /&gt;
  liblcms1-dev libglew-dev libplot-dev libglut3-dev libopenexr-dev libopenexr2c2a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all dependencies are in place, we get the code from CVS (simply press ENTER when prompted for a password on the login command) and build it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend login&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend co -P enblend&lt;br /&gt;
cd enblend&amp;lt;/pre&amp;gt;&lt;br /&gt;
We are then ready to compile.&lt;br /&gt;
&amp;lt;pre&amp;gt;make -f Makefile.cvs&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second make step can be very long and memory consuming. Make sure you have enough swap space, and go get a healthy snack while the computer is compiling.&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing, what machine/operating system, the revision checked out from CVS, and all other relevant information.&lt;br /&gt;
&lt;br /&gt;
You are then ready to install with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If we want to compile the additional tools, such as align_image_stack, we need to de-comment the &amp;quot;add_subdirectory(tools)&amp;quot; line in the CMakeLists.txt file located in hugin/src/hugin1 before cmaking. Don't forget to copy (or link) the align_image_stack binary to /usr/local/bin if you want to use it with external applications, such as [http://qtpfsgui.sourceforge.net/ qtpsfgui].&lt;br /&gt;
&lt;br /&gt;
Finally, launch the compilation and installation with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-17T15:36:22Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building Enblend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress. Initially tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer, they have also been tested on Ubuntu 7.04 on a AMD64 computer and Ubuntu 7.10 on an AMD Athlon XP computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here] and on the hugin-ptx mailing list. Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a amd64 environment you will need the following packages&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev-amd64 lib64gcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a i386 system the equivalent is probably (COULD SOMEBODY CHECK THIS ONE?)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev libgcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN and CVS repositories, and for this we need the correct tools:&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install subversion cvs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pkg-config libtiff4-dev libboost-graph-dev libboost-thread-dev \&lt;br /&gt;
  liblcms1-dev libglew-dev libplot-dev libglut3-dev libopenexr-dev libopenexr2c2a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all dependencies are in place, we get the code from CVS (simply press ENTER when prompted for a password on the login command) and build it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend login&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend co -P enblend&lt;br /&gt;
cd enblend&amp;lt;/pre&amp;gt;&lt;br /&gt;
We are then ready to compile.&lt;br /&gt;
&amp;lt;pre&amp;gt;make -f Makefile.cvs&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second make step can be very long and memory consuming. Make sure you have enough swap space, and go get a healthy snack while the computer is compiling.&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing, what machine/operating system, the revision checked out from CVS, and all other relevant information.&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If we want to compile the additional tools, such as align_image_stack, we need to de-comment the &amp;quot;add_subdirectory(tools)&amp;quot; line in the CMakeLists.txt file located in hugin/src/hugin1 before cmaking. Don't forget to copy (or link) the align_image_stack binary to /usr/local/bin if you want to use it with external applications, such as [http://qtpfsgui.sourceforge.net/ qtpsfgui].&lt;br /&gt;
&lt;br /&gt;
Finally, launch the compilation and installation with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-17T15:18:12Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building Enblend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress. Initially tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer, they have also been tested on Ubuntu 7.04 on a AMD64 computer and Ubuntu 7.10 on an AMD Athlon XP computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here] and on the hugin-ptx mailing list. Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a amd64 environment you will need the following packages&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev-amd64 lib64gcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a i386 system the equivalent is probably (COULD SOMEBODY CHECK THIS ONE?)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev libgcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN and CVS repositories, and for this we need the correct tools:&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install subversion cvs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pkg-config libtiff4-dev libboost-graph-dev libboost-thread-dev \&lt;br /&gt;
  liblcms1-dev libglew-dev libplot-dev libglut3-dev libopenexr-dev libopenexr2c2a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all dependencies are in place, we get the code from CVS (simply press ENTER when prompted for a password on the login command) and build it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend login&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend co -P enblend&lt;br /&gt;
cd enblend&lt;br /&gt;
make -f Makefile.cvs&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The make step can be very long and memory consuming. Make sure you have enough swap space, and go get a healthy snack while the computer is compiling.&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing, what machine/operating system, the revision checked out from CVS, and all other relevant information.&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If we want to compile the additional tools, such as align_image_stack, we need to de-comment the &amp;quot;add_subdirectory(tools)&amp;quot; line in the CMakeLists.txt file located in hugin/src/hugin1 before cmaking. Don't forget to copy (or link) the align_image_stack binary to /usr/local/bin if you want to use it with external applications, such as [http://qtpfsgui.sourceforge.net/ qtpsfgui].&lt;br /&gt;
&lt;br /&gt;
Finally, launch the compilation and installation with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-17T11:17:54Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building Enblend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress. Initially tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer, they have also been tested on Ubuntu 7.04 on a AMD64 computer and Ubuntu 7.10 on an AMD Athlon XP computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here] and on the hugin-ptx mailing list. Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a amd64 environment you will need the following packages&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev-amd64 lib64gcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a i386 system the equivalent is probably (COULD SOMEBODY CHECK THIS ONE?)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev libgcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN and CVS repositories, and for this we need the correct tools:&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install subversion cvs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pkg-config libtiff4-dev libboost-graph-dev libboost-thread-dev \&lt;br /&gt;
  liblcms1-dev libglew-dev libplot-dev libglut3-dev libopenexr-dev libopenexr2c2a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once all dependencies are in place, we get the code from CVS (simply press ENTER when prompted for a password on the login command) and build it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend login&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend co -P enblend&lt;br /&gt;
cd enblend&lt;br /&gt;
make -f Makefile.cvs&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing, what machine/operating system, the revision checked out from CVS, and all other relevant information.&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If we want to compile the additional tools, such as align_image_stack, we need to de-comment the &amp;quot;add_subdirectory(tools)&amp;quot; line in the CMakeLists.txt file located in hugin/src/hugin1 before cmaking. Don't forget to copy (or link) the align_image_stack binary to /usr/local/bin if you want to use it with external applications, such as [http://qtpfsgui.sourceforge.net/ qtpsfgui].&lt;br /&gt;
&lt;br /&gt;
Finally, launch the compilation and installation with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-17T09:57:26Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building Enblend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress. Initially tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer, they have also been tested on Ubuntu 7.04 on a AMD64 computer and Ubuntu 7.10 on an AMD Athlon XP computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here] and on the hugin-ptx mailing list. Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a amd64 environment you will need the following packages&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev-amd64 lib64gcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a i386 system the equivalent is probably (COULD SOMEBODY CHECK THIS ONE?)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev libgcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN and CVS repositories, and for this we need the correct tools:&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install subversion cvs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libtiff4-dev libboost-graph-dev libboost-thread-dev liblcms1-dev libglew-dev libplot-dev libglut3-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once all dependencies are in place, we get the code from CVS (simply press ENTER when prompted for a password on the login command) and build it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend login&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend co -P enblend&lt;br /&gt;
cd enblend&lt;br /&gt;
make -f Makefile.cvs&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing. What machine/operating system. The revision checked out from CVS. All other relevant information.&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If we want to compile the additional tools, such as align_image_stack, we need to de-comment the &amp;quot;add_subdirectory(tools)&amp;quot; line in the CMakeLists.txt file located in hugin/src/hugin1 before cmaking. Don't forget to copy (or link) the align_image_stack binary to /usr/local/bin if you want to use it with external applications, such as [http://qtpfsgui.sourceforge.net/ qtpsfgui].&lt;br /&gt;
&lt;br /&gt;
Finally, launch the compilation and installation with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-16T16:16:52Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress. Initially tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer, they have also been tested on Ubuntu 7.04 on a AMD64 computer and Ubuntu 7.10 on an AMD Athlon XP computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here] and on the hugin-ptx mailing list. Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a amd64 environment you will need the following packages&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev-amd64 lib64gcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a i386 system the equivalent is probably (COULD SOMEBODY CHECK THIS ONE?)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libc6-dev libgcc1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN and CVS repositories, and for this we need the correct tools:&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install subversion cvs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libtiff4-dev libboost-graph-dev libboost-thread-dev liblcms1-dev libglew-dev libplot-dev libglut3-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once all dependencies are in place, we get the code from CVS (simply press ENTER when prompted for a password on the login command) and build it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend login&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend co -P enblend&lt;br /&gt;
make -f Makefile.cvs&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing. What machine/operating system. The revision checked out from CVS. All other relevant information.&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If we want to compile the additional tools, such as align_image_stack, we need to de-comment the &amp;quot;add_subdirectory(tools)&amp;quot; line in the CMakeLists.txt file located in hugin/src/hugin1 before cmaking. Don't forget to copy (or link) the align_image_stack binary to /usr/local/bin if you want to use it with external applications, such as [http://qtpfsgui.sourceforge.net/ qtpsfgui].&lt;br /&gt;
&lt;br /&gt;
Finally, launch the compilation and installation with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-16T16:15:15Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress. Initially tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer, they have also been tested on Ubuntu 7.04 on a AMD64 computer and Ubuntu 7.10 on an AMD Athlon XP computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here] and on the hugin-ptx mailing list. Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb libc6-dev-amd64 lib64gcc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN and CVS repositories, and for this we need the correct tools:&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install subversion cvs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libtiff4-dev libboost-graph-dev libboost-thread-dev liblcms1-dev libglew-dev libplot-dev libglut3-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once all dependencies are in place, we get the code from CVS (simply press ENTER when prompted for a password on the login command) and build it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend login&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend co -P enblend&lt;br /&gt;
make -f Makefile.cvs&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing. What machine/operating system. The revision checked out from CVS. All other relevant information.&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If we want to compile the additional tools, such as align_image_stack, we need to de-comment the &amp;quot;add_subdirectory(tools)&amp;quot; line in the CMakeLists.txt file located in hugin/src/hugin1 before cmaking. Don't forget to copy (or link) the align_image_stack binary to /usr/local/bin if you want to use it with external applications, such as [http://qtpfsgui.sourceforge.net/ qtpsfgui].&lt;br /&gt;
&lt;br /&gt;
Finally, launch the compilation and installation with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-16T16:08:30Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building hugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are work in progress. Initially tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer, they have also been tested on Ubuntu 7.04 on a AMD64 computer and Ubuntu 7.10 on an AMD Athlon XP computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here] and on the hugin-ptx mailing list. Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-cache search wxW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The goal is to build hugin and the whole set of helper applications required.&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb libc6-dev-amd64 lib64gcc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get the bleeding edge we'll need access to the SVN and CVS repositories&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install subversion cvs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building Enblend ==&lt;br /&gt;
&lt;br /&gt;
Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install libtiff4-dev libboost-graph-dev libboost-thread-dev liblcms1-dev libglew-dev libplot-dev libglut3-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once all dependencies are in place, we get the code from CVS (simply press ENTER when prompted for a password on the login command) and build it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend login&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend co -P enblend&lt;br /&gt;
make -f Makefile.cvs&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing. What machine/operating system. The revision checked out from CVS. All other relevant information.&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If we want to compile the additional tools, such as align_image_stack, we need to de-comment the &amp;quot;add_subdirectory(tools)&amp;quot; line in the CMakeLists.txt file located in hugin/src/hugin1 before cmaking. Don't forget to copy (or link) the align_image_stack binary to /usr/local/bin if you want to use it with external applications, such as [http://qtpfsgui.sourceforge.net/ qtpsfgui].&lt;br /&gt;
&lt;br /&gt;
Finally, launch the compilation and installation with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/User:Seb_Przd</id>
		<title>User:Seb Przd</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/User:Seb_Przd"/>
				<updated>2007-11-08T16:37:53Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: New page: [http://flickr.com/sbprzd]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://flickr.com/sbprzd]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin</id>
		<title>Hugin</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin"/>
				<updated>2007-11-08T10:33:08Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Supported Platforms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Hugin''' is an opensource graphical user interface (GUI) for [[Panorama tools]].&lt;br /&gt;
&lt;br /&gt;
Like other [[GUI front-ends]], '''hugin''' provides an easy-to-use unified point-and-click interface to a whole range of other command-line tools including:&lt;br /&gt;
&lt;br /&gt;
* [[autopano-sift]], [[autopano-sift-C]] or [[autopano]] for automatic creation of [[control points]].&lt;br /&gt;
* [[nona]] or [[PTmender]] for remapping input images and rendering output images.&lt;br /&gt;
* [[enblend]] for seamless blending of output images.&lt;br /&gt;
&lt;br /&gt;
The Hugin project's mission is not only to provide a powerful GUI, but also to provide opensource replacements for the small number of closed source components of [[Panorama tools]], especially [[PTStitcher]].&lt;br /&gt;
A [[PTStitcher]] replacement, called [[nona]] has been developed, supporting its most important features.&lt;br /&gt;
&lt;br /&gt;
Among the many flexible Hugin workflow options, it is possible to use increased tonal range data in a [[16bit workflow with hugin]] or work entirely with high [[dynamic range]] images such as floating-point [[TIFF]] from start to finish in a [[HDR workflow with hugin]].&lt;br /&gt;
&lt;br /&gt;
== Hugin components ==&lt;br /&gt;
&lt;br /&gt;
The following tools are part of the hugin suite:&lt;br /&gt;
&lt;br /&gt;
* [[hugin]] the gui front end.&lt;br /&gt;
* [[nona]] a command-line replacement for [[PTStitcher]].&lt;br /&gt;
* [[fulla]] correction of [[barrel distortion]], [[chromatic aberration]] and [[vignetting]].&lt;br /&gt;
* [[nona_gui]] a version of [[nona]] with simple gui progress dialogs, similar to the windows version of [[PTStitcher]].&lt;br /&gt;
* [[autooptimiser]] an experimental tool with the same interface as [[PTOptimizer]] except using pairwize optimization which doesn't require any manual pre-placement.&lt;br /&gt;
* [[align_image_stack]] a tool to automate the process to [[align a stack of photos]].&lt;br /&gt;
* [[vig_optimize]] command line tool to estimate photometric parameters.&lt;br /&gt;
* [[zhang_undistort]] a tool for correcting [[barrel distortion]].&lt;br /&gt;
* [[color_correct_tiff]] an experimental tool for correcting colour and brightness differences between overlapping images.&lt;br /&gt;
* [[panoglview]] OpenGL panorama viewer stored in sourceforge CVS alongside [[hugin]] which must be built separately.&lt;br /&gt;
&lt;br /&gt;
More information, documentation and tutorials are available on the project website.&lt;br /&gt;
&lt;br /&gt;
== User interface ==&lt;br /&gt;
&lt;br /&gt;
* [[Hugin Main window]]&lt;br /&gt;
* [[Hugin Assistant tab]]&lt;br /&gt;
* [[Hugin Images tab]]&lt;br /&gt;
* [[Hugin Camera and Lens tab]]&lt;br /&gt;
* [[Hugin Crop tab]]&lt;br /&gt;
* [[Hugin Control Points tab]]&lt;br /&gt;
* [[Hugin Optimizer tab]]&lt;br /&gt;
* [[Hugin Exposure tab]]&lt;br /&gt;
* [[Hugin Stitcher tab]]&lt;br /&gt;
* [[Hugin Preferences]]&lt;br /&gt;
* [[Hugin Preview window]]&lt;br /&gt;
* [[Hugin Control Points table]]&lt;br /&gt;
* [[Hugin Keyboard shortcuts]]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
Hugin is Open Source, and as such very much dependent on voluntary contributions of resources. If you have coding skills, you are welcome to look at the source code and contribute to it. Even if you don't have coding skills, you most likely have some skills that the project could use and you are more than welcome to contribute your time. The tasks requiring attention change frequently and so do the required skillset and resources. Join the hugin-ptx mailing list to find out what is going on at the moment and how you can help.&lt;br /&gt;
&lt;br /&gt;
At the time of writing (29-October-2007) there is a major effort going on to document and automate the building process of hugin so that the project can release binaries more frequently. See Test Builds below.&lt;br /&gt;
&lt;br /&gt;
== Test Builds ==&lt;br /&gt;
&lt;br /&gt;
=== Goal ===&lt;br /&gt;
&lt;br /&gt;
an infrastructure for on-demand build and distribution of usable test-binaries for the most popular platforms. These builds are meant to enable users to test the newest features and report bugs. Ideally, on Pablo's demand all those who have a build chain will run it against the newest source code to produce the builds.&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
&lt;br /&gt;
# Experienced users will build the most current hugin and helpers (libpano, enblend, autopano, etc.) for the target platform of their choice, with support from coders.&lt;br /&gt;
# The build process will be documented for each of the supported platform.&lt;br /&gt;
# Users willing to spend some time learning how to build will reproduce the documented process.&lt;br /&gt;
# Power users will script and automate the building process.&lt;br /&gt;
# Users with packaging skills will package the builds for distribution (installers).&lt;br /&gt;
# The produced binaries/installers will be made available on the web.&lt;br /&gt;
&lt;br /&gt;
=== Supported Platforms ===&lt;br /&gt;
&lt;br /&gt;
* If you don't find your preferred platform listed below '''and''' you are willing to contribute your time and skills to build hugin on it, feel free to add it to the table. We will accommodate any well supported platform in the regular release process.&lt;br /&gt;
* The '''Build-Chain Responsibles''' listed below have access to a build chain on the selected platform and have agreed to run the build chain within 2 days of a request from Pablo. They will forward the resulting binary package to the Release Manager who will in turn put them up for download by the general public.&lt;br /&gt;
* '''Redundancy is good'''. If you have access to one of the listed platforms, please try to run the documented process below and report success to hugin-ptx. If you think you could do this on a more regular basis, enter yourself in the Backup Build-Chain field.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em auto 1em auto;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! width=&amp;quot;100&amp;quot; |&lt;br /&gt;
Platform&lt;br /&gt;
! width=&amp;quot;100&amp;quot; |&lt;br /&gt;
Status&lt;br /&gt;
! width=&amp;quot;100&amp;quot; |&lt;br /&gt;
Process&lt;br /&gt;
! width=&amp;quot;200&amp;quot; |&lt;br /&gt;
Build-Chain Responsible&lt;br /&gt;
! width=&amp;quot;200&amp;quot; |&lt;br /&gt;
Credits &lt;br /&gt;
! width=&amp;quot;200&amp;quot; |&lt;br /&gt;
Backup Build-Chains &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
ubuntu 32bit&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Ubuntu | tbd]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* Sébastien Perez-Duarte&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
ubuntu 64bit &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Ubuntu | tbd]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
&amp;lt;!-- spanned style=&amp;quot;border-top: thin dotted #333333;&amp;quot; | --&amp;gt;&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Fedora 32bit&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Fedora | tbd]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* Bruno Postle&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Fedora 64bit &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Fedora | tbd]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
&amp;lt;!-- spanned style=&amp;quot;border-top: thin dotted #333333;&amp;quot; | --&amp;gt;&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
OSX IntelMac &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling OSX | draft]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Peter A. Crowley&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* Ippei Ukai&lt;br /&gt;
* JD Smith &lt;br /&gt;
* Daniel M. German&lt;br /&gt;
* Peter A. Crowley&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
OSX PPC &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling OSX | draft]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Peter A. Crowley&lt;br /&gt;
&amp;lt;!-- spanned style=&amp;quot;border-top: thin dotted #333333;&amp;quot; | --&amp;gt;&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Windows 32bit &lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
tbd&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
[[Hugin Compiling Windows | draft]]&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
Tom Sharpless&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
* Tom Sharpless&lt;br /&gt;
* John Navas&lt;br /&gt;
* Jean-Marc Paratte&lt;br /&gt;
| style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; |&lt;br /&gt;
all platforms&lt;br /&gt;
! style=&amp;quot;border-top: thin dotted #333333;&amp;quot; colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
a big thank you to '''Pablo d'Angelo''' for supporting all of those building efforts.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stati ===&lt;br /&gt;
&lt;br /&gt;
'''Build Chain'''&lt;br /&gt;
* tbd: looking for responsible&lt;br /&gt;
* OK: mostly automated build process ready on request&lt;br /&gt;
* unavailable: temporarily unavailable (e.g. responsible on holiday)&lt;br /&gt;
* HW-broken: the hardware is temporarily unavailable&lt;br /&gt;
* SW-broken: temporarily dysfunctional, working on a fix&lt;br /&gt;
* broken: nobody is working on a fix&lt;br /&gt;
* unsupported: has been dropped for lack of support&lt;br /&gt;
&lt;br /&gt;
'''Process'''&lt;br /&gt;
* tbd: status unknown&lt;br /&gt;
* auto: work as documented and has been automated to a reasonable extent&lt;br /&gt;
* OK: works as documented, could use automation / scripting&lt;br /&gt;
* draft: documented, needs validation / testing / cleaning&lt;br /&gt;
* incomplete: parts are missing (e.g. enblend, libpano)&lt;br /&gt;
* outdated: worked in the past but needs an update&lt;br /&gt;
* obsolete: nobody has the time to update&lt;br /&gt;
&lt;br /&gt;
=== Publication ===&lt;br /&gt;
* Release Manager: tbd&lt;br /&gt;
* Download / Webspace: thank you Thomas Rauscher / panotools.org, links will be published soon&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[hugin FAQ]] Frequently asked questions about hugin&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://hugin.sourceforge.net hugin homepage] for Screenshots, Tutorials, Documentation and Links.&lt;br /&gt;
* [http://sourceforge.net/projects/hugin hugin sourceforge project] for Downloads, Bug database and Feature requests.&lt;br /&gt;
* [http://hugin.svn.sourceforge.net/viewvc/hugin/ sourceforge SVN] to browse the hugin sourcecode.&lt;br /&gt;
* [http://groups.google.com/group/hugin-ptx hugin-ptx GoogleGroup] to contribute to development and peer support.&lt;br /&gt;
&lt;br /&gt;
== Supported operating systems ==&lt;br /&gt;
* [[windows software|Windows]]&lt;br /&gt;
* [[Unix software|Linux and Unix]]&lt;br /&gt;
* [[Mac software|Mac OS X]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Platform:Windows]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;br /&gt;
[[Category:Software:Platform:Mac OS X]]&lt;br /&gt;
[[Category:Software:Hugin]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_ubuntu</id>
		<title>Hugin Compiling ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_ubuntu"/>
				<updated>2007-11-08T10:29:57Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Hugin Compiling ubuntu moved to Hugin Compiling Ubuntu: Ubuntu should be capitalized, as for the other compilations pages.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Hugin Compiling Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-08T10:29:57Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: Hugin Compiling ubuntu moved to Hugin Compiling Ubuntu: Ubuntu should be capitalized, as for the other compilations pages.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions were tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here].&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin (and libpano13) we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb libc6-dev-amd64 lib64gcc1&lt;br /&gt;
sudo apt-get install subversion&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev&lt;br /&gt;
boost-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software:Hugin]]&lt;br /&gt;
[[Category:Software:Platform:Linux]]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-03T19:26:08Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building hugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions were tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here].&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin (and libpano13) we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb libc6-dev-amd64 lib64gcc1&lt;br /&gt;
sudo apt-get install subversion&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake libopenexr-dev libboost-dev&lt;br /&gt;
boost-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-03T15:38:12Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building hugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions were tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here].&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin (and libpano13) we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb libc6-dev-amd64 lib64gcc1&lt;br /&gt;
sudo apt-get install subversion&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed. We need first to activate the &amp;lt;code&amp;gt;universe&amp;lt;/code&amp;gt; repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install cmake&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-03T15:03:36Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building libpano13 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions were tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here].&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin (and libpano13) we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb libc6-dev-amd64 lib64gcc1&lt;br /&gt;
sudo apt-get install subversion&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
We can now go back up one folder level and get ready for hugin.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed.&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-03T15:03:05Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building hugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions were tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here].&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin (and libpano13) we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb libc6-dev-amd64 lib64gcc1&lt;br /&gt;
sudo apt-get install subversion&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
Some additional libraries are needed.&lt;br /&gt;
&lt;br /&gt;
We download the source from SVN, as before&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin&lt;br /&gt;
cd hugin&amp;lt;/pre&amp;gt;&lt;br /&gt;
hugin has to be built using cmake (which we installed before).&lt;br /&gt;
&amp;lt;pre&amp;gt;cmake -DCMAKE_INSTALL_PREFIX=/usr/local .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/Hugin_Compiling_Ubuntu</id>
		<title>Hugin Compiling Ubuntu</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/Hugin_Compiling_Ubuntu"/>
				<updated>2007-11-03T14:48:55Z</updated>
		
		<summary type="html">&lt;p&gt;Seb Przd: /* Building libpano13 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions were tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php here].&lt;br /&gt;
&lt;br /&gt;
== Building environment ==&lt;br /&gt;
Since we are going to build hugin (and libpano13) we need to download and install all the development packages. This is very easy with apt-get.&lt;br /&gt;
In a terminal window (K menu/System/Konsole)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb libc6-dev-amd64 lib64gcc1&lt;br /&gt;
sudo apt-get install subversion&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building libpano13 ==&lt;br /&gt;
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.&lt;br /&gt;
To build libpano13 we need some libraries and particularly their &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; package:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to download the source code from SVN:&lt;br /&gt;
&amp;lt;pre&amp;gt;svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13&lt;br /&gt;
cd libpano13&lt;br /&gt;
./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command &amp;lt;code&amp;gt;apt-cache search ''missingfile''&amp;lt;/code&amp;gt;, find the relevant library and install both the library and the related &amp;lt;code&amp;gt;-dev&amp;lt;/code&amp;gt; package.&lt;br /&gt;
Run the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script and repeat this process until you have met all the dependencies.&lt;br /&gt;
Then we are ready to launch the make process with&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the library successfully compiles, you have to install it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make install&lt;br /&gt;
sudo ldconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last part is for the OS to be aware of the new library (that has been installed in &amp;lt;code&amp;gt;/usr/local/lib&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Building hugin ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]&lt;/div&gt;</summary>
		<author><name>Seb Przd</name></author>	</entry>

	</feed>