Copyright (C) 2004-2012 Andrew Mihal.
This file is part of Enblend.
* Programs
This packages contains the programs Enblend and Enfuse. The source
code and further information about Enblend are available at:
http://enblend.sf.net
** Enblend
Enblend is a tool for compositing images using a Burt&Adelson
multiresolution spline. 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.
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.
Enblend does not align images for you. Use a tool like Hugin or
PanoTools to do this. The files produced by these programs are
exactly what Enblend is designed to work with.
** Enfuse
Enfuse is a tool for automatic exposure blending, contrast blending
and much more. It can be used to fuse an exposure bracketed step
automatically into a nicely looking image. See
doc/enfuse.info
and on Windows also
contrib/enfuse_droplet/enfuse_droplet_readme.txt
for more information.
* Installation
GNU Make is required to build the project, because some of the
Makefiles contain pattern rules.
** Tarball
./configure YOUR-OPTIONS-IF-ANY-GO-HERE
make
make install
** Mercurial Repository
*** AutoConf/AutoMake
In the root directory of the project issue:
make --makefile=Makefile.scm
./configure YOUR-OPTIONS-IF-ANY-GO-HERE
make
make install
The package fully supports VPATH builds. Thus the following command
sequence builds in a separate directory.
cd ROOT-DIRECTORY
make --makefile=Makefile.scm
mkdir BUILD-DIR
cd BUILD-DIR
ROOT-DIRECTORY/configure YOUR-OPTIONS-IF-ANY-GO-HERE
make
make install
*** CMake
The canonical way to build Enblend and Enfuse is with Autotools, this
is, autoconf(1) and automake(1). An alternative CMake build has been
added since version 4.0.
The CMake build strives to replicate the Autotools build. It may or
may not work for you. It is currently maintained but not supported,
meaning that it could break anywhere anytime in the future.
cmake .
make
make install
Analogously to Autotools, CMake allows for VPATH builds:
mkdir BUILD-DIR
cd BUILD-DIR
cmake ROOT-DIRECTORY
make
make install
* Specific Configuration Options
Among the usual configuration options of the GNU autoconf system, the
configure(1) script offers the following options to tailor Enblend and
Enfuse. Remember that configure(1) creates a file called "config.h"
that can serve for fine-tuning the configuration.
We write the default values of all configuration options in capital
letters.
** --enable-gpu-support=CHECK/yes/no
-DENABLE_GPU=OFF/on (CMake)
Enable code in Enblend to use the GPU for optimizing the seam line
between two images if all necessary OpenGL libraries are found.
Enfuse does not benefit of this code. OpenMP (see below) and GPU work
together.
Note that enabling GPU support does not mean Enblend will actually use
the GPU. Besides passing option "--gpu" to Enblend the hardware as
well as the X11 drivers have to fulfill certain requirements.
See also option "--with-apple-opengl-framework".
** --enable-openmp=yes/NO
-DENABLE_OPENMP=ON/off (CMake)
Parallelize parts of Enblend and Enfuse with OpenMP. See
http://www.openmp.org/
Note that OpenMP support and the ImageCache must not be activated
both. The default is to configure with ImageCache and without OpenMP.
If OpenMP support has been enabled, the utilization of special
features of the actual, underlying OpenMP implementation can be
controlled as usual with the environment variables OMP_NUM_THREADS,
OMP_NESTED and OMP_DYNAMIC. See the OpenMP specification for details
on the usage of these variables.
** --enable-split-doc=YES/no
-DNOSPLIT=OFF/on (CMake)
Split the documentation files in INFO or HTML format into small
pieces. The default is "yes", split documentation.
** --enable-debug=yes/NO
Compile without optimizations and enable all debug-checking code. The
default is "no", build an optimized version without debugging symbols.
** --enable-image-cache=YES/no
-DENABLE_IMAGECACHE=OFF/on (CMake)
Activate the ImageCache feature, which allows for processing of large
images. The ImageCache handles swapping parts of the images to disk.
The default is "yes", enable the ImageCache.
The ImageCache is recommended on systems where memory is scarce, but
the images to blend or fuse are large.
The ImageCache feature and OpenMP support must not be activated
together.
** --with-apple-opengl-framework=yes/NO
Sometimes AutoConf fails to detect Apple's OpenGL framework. Use this
option on MAC OS X to force its usage without a test.
See also option "--enable-gpu-support" and the section MacOSX below.
** --with-boost-filesystem=CHECK/yes/no/<LIBRARY>
Use Boost "filesystem" library to get platform-independent path
generation. The default is to check for usability. "No" forces the
use of the internal path generation library. Supply a LIBRARY name if
you want to override the default candidates "boost_filesystem-mt" for
multi-threaded compilation and "boost_filesystem" for single-thread
builds.
** --with-dmalloc=yes/NO
Compile with the debug-malloc library. The library is available at
http://www.dmalloc.com/.
** --with-openexr=CHECK/yes/no
Build with support for reading and writing OpenEXR images. See
http://www.openexr.com/ for the required libraries.
** --with-raster-dir=<DIR>
Set the name of the raster-graphics directory, which always is a
subdirectory of the XHTML documentation's root directory. Default:
"raster".
* CMake Specifics
** Configuration Options
These options only apply to CMake.
*** -DCPACK_BINARY_<SYSTEM>:BOOL=OFF/on
Create a package for the specified <SYSTEM>, where <SYSTEM> is "DEB",
"RPM", or "NSIS".
*** -DCPACK_BINARY_<SYSTEM>:BOOL=ON/off
Create other packages for the specified <SYSTEM>, where <SYSTEM> is
"TBZ2", "TGZ", "STGZ", or "TZ".
*** -DPACK_SOURCE_<SYSTEM>:BOOL=OFF/on
Create a source package for the specified <SYSTEM>, where <SYSTEM> is
"TBZ2", "TGZ", "TZ", or "ZIP".
** Configuration Example
Creating a RedHat package on OpenSuSE
cmake . \
-DDOC=ON -DENABLE_GPU=ON \
-DENABLE_IMAGECACHE=OFF -DENABLE_OPENMP=ON \
-DCPACK_BINARY_RPM:BOOL=ON
make package
This will create a package enblend-4.0.595-Linux.rpm, which you may
install with
sudo rpm -U enblend-4.0.595-Linux.rpm
** Important Configured Make(1) Targets
help List all available targets.
edit_cache If cmake-gui(1) is installed, start the GUI
to edit the "CMakeCache.txt" file.
enblend Create an Enblend executable.
enfuse Create an Enfuse executable.
man Create the manual pages for Enblend and
Enfuse.
doc3 Create the documentation. This includes
html, info, and pdf documents, if the