https://wiki.panotools.org/api.php?action=feedcontributions&user=Aston&feedformat=atomPanoTools.org Wiki - User contributions [en]2024-03-28T21:24:17ZUser contributionsMediaWiki 1.35.3https://wiki.panotools.org/index.php?title=Historical:SoC_2010_ideas&diff=12219Historical:SoC 2010 ideas2010-03-19T09:18:20Z<p>Aston: /* Patent free control point generator */</p>
<hr />
<div>If you are a student willing to participate in The Google Summer of Code 2010:<br />
* find out what ideas we have for SoC projects this year (read below);<br />
* decide if you want to pick one of those tasks or if you have your own idea;<br />
* join our community at [http://groups.google.com/group/hugin-ptx/ hugin-ptx];<br />
* introduce yourself and tell us about your plans and wishes; and<br />
* add your proposal to the [[SoC_2010_student_proposals | student proposal page]] - see examples from [[SoC_2009_student_proposals | last year]]<br />
<br />
'''Important:''' at the time of writing it is not known yet if we will be admitted to Google Summer of Code 2010. We can not guarantee you a place in the program, but we recommend you start preparing your application early as the application process is very competitive.<br />
<br />
== Development style ==<br />
<br />
Most of the projects below are related to [[Hugin]], and some also relate to [[Panotools]] or [[tlalli]]. [[Hugin]] is mostly written in C++, and uses the [http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/ VIGRA image processing library] to support different types of images (for example, 8bit, 16bit and float (HDR) images). The core functionality is implemented in a platform independent C++ library, which is used by the GUI based on wxWidgets toolkit, and the command line programs ([[nona]], [[fulla]]). We also very much welcome contributions to [[Enblend]]/[[Enfuse]].<br />
<br />
The development of the projects should take place in a separate branch of the project's version control system. Communication with the mentors should usually happen through the appropriate mailing list. All code should work on the major platforms supported (Linux, OSX, Windows).<br />
<br />
== Application Template ==<br />
<br />
[[SoC2010 Application Template]]<br />
<br />
== Possible Projects ==<br />
<br />
You are welcome to propose your own ideas.<br />
<br />
Some of the [[SoC2007 projects | SoC2007]], [[SoC_2008_ideas | SoC2008]] and [[SoC_2009_idea | SoC2009]] project proposals were not done in the past years and are potential projects for this year:<br />
<br />
* <del>[[SoC2007_projects#Interactive panoramic viewer]] (This was completed but there is further possible work to be done, particularly a joint project with VLC to integrate the viewer in their media player)</del> (VLC integration was completed in 2009 GSoC)<br />
* [[SoC2007_projects#Processing of very large images]] (using the VIPS framework, or even GEGL)<br />
* [[SoC2007_projects#Architectural Overhaul of Panotools]]<br />
* [[SoC_2008_ideas#munin_.E2.80.94_interactive_openGL_based_GUI]]<br />
* [[SoC_2008_ideas#enblend-enfuse_zenith.2Fnadir_and_more]]<br />
* [[SoC_2008_ideas#Lens_Database]] The library part, [[lensfun]], is done, but there is still no system for updating the database. ''Important:'' [http://photoropter.berlios.de Photoropter] is being actively developed and any project should be complementary to that.<br />
* [[SoC_2008_ideas#Extend_hugin.27s_output_options_for_stitching]]<br />
* <del>[[SoC_2008_ideas#Utility_for_creating_a_Philosphere]]</del> Note this isn't enough of a project and probably is better done in mathmap<br />
* [[SoC_2009_idea#Python_Bindings]]<br />
* [[SoC_2009_idea#enblend/enfuse_gimp_plugin]]<br />
* <del>[[SoC_2009_idea#hugin_colour_balancing]]</del> see [[#Colour]] below<br />
<br />
=== Zooming for fast preview ===<br />
It would be good if the user can zoom into Hugin's fast preview window. The the amount of approximation in the fast preview would have to reduce to display meaningful details. The areas off screen can be ignored, to keep up performance as more details need to be processed. It would be appropriate to dynamically load more image detail for the most visible images too.<br />
<br />
===Threading for Hugin===<br />
Hugin currently becomes unresponsive while it loads images. It would be better to keep the interface responsive during image loading and scaling images in another thread. Also, something like [http://sourceforge.net/tracker/?func=detail&aid=2872111&group_id=77506&atid=550443 this patch], which loads images when Hugin is otherwise idle, would be better in a background thread.<br />
<br />
The user interface could display temporary placeholders while images are being loaded, and remain interactive.<br />
<br />
To maximise the rate at which images are loaded, ideally we would have a thread that only reads files and waits for the filesystem, and another thread to uncompress image files and produce the small version of the image which waits only for CPU time. However doing both of these in a single thread, separate from the user interface thread, would provide a responsive interface.<br />
<br />
=== Patent free control point generator ===<br />
<br />
We now have a patent free control point generator with libpanomatic, but this needs some integration:<br />
<br />
* Ability to read and write .pto projects<br />
* To classify features in a conformal space based on info in the .pto file<br />
* Internal tonemapping of [[HDR]] images to log() space for feature classification<br />
* To not classify features in masked areas<br />
* Test suite<br />
* integration of celeste at feature identification stage<br />
* matching pairs of photos using heuristics (see gigastart)<br />
<br />
A possible different project to the above would be to use GPU for feature classification as suggested on ptx, note however that patented techniques such as SIFT and SURF are not suitable for use in Hugin: SIFT GPU http://www.cs.unc.edu/~ccwu/siftgpu/ uses CUDA parallel processing to search for SIFT features in images. I'm not sure if it does the search to find nearest neighbor points. But there is also a GPU accelerated version of that algorithm too. It is a brute force version of the nearest-k points. Since it is done in parallel it is order of magnitudes faster than the ANN algorithm using by autopano-sift-c. http://www-sop.inria.fr/members/Vincent.Garcia/research_knn.php<br />
<br />
=== UI testing ===<br />
<br />
Update: Summer of Code is strictly coding, so this project isn't possible.<br />
<br />
<del>Everyone agrees that Hugin needs usability improvements, however the major usability issues are closely related to programming issues such as the quality and availability of control point generators. We do not want a programmer to dive-in and and try and fix 'usability' without a plan of action.<br />
<br />
So Hugin could use a usability audit, i.e. write user profiles/personas, define tasks, collect real data from test subjects. This is a non-programming project for a student of interaction design</del><br />
<br />
=== Colour ===<br />
<br />
Hugin deals correctly with colour profiles in photos and passes them on to output, this doesn't need fixing, however there are some related tasks that could be tackled:<br />
<br />
* Display of images in tabs and preview is not colour managed, integrate [http://www.littlecms.com/ lcms] and access system monitor colour profiles<br />
* Hugin has a good backend for adjusting white-balance. Add a GUI grey picker and/or tools to adjust colour temperatures manually on a subset of photos to be able to do stuff like this: http://www.flickr.com/photos/sbprzd/4196026736/<br />
* [[EXIF]] metadata contains information on colour balance (WBRedLevel, WBGreenLevel & WBBlueLevel) which should be used to initialise the red/blue colour balance parameters in Hugin - Currently Hugin does something very similar for EV.<br />
* [[Chromatic aberration|tca]] correction in [[nona]] with support in GUI and .pto format, possible simple GUI to run [[tca_correct]]<br />
* [[Vignetting]] of colour balance. For example Tokina 12-24 f4 exhibits this phenomenon (see right side of this [http://farm5.static.flickr.com/4043/4385932566_4e3204a12d_o.jpg image]) in amounts that are easily seen, and according to Ken Rockwell (yeah) the effect plagues most ultra wide rectilinears. Could work similarily to current vignetting correction model, but working on red/blue colour channels? (do we really need this? Is the additional complication in the GUI worth it?)<br />
<br />
=== Makefile system and Detection of panoramas ===<br />
<br />
Hugin uses gnu ''make'' to drive stitching, this involves writing makefiles and executing ''make'' as a sub-process. We have two issues with this;<br />
<br />
* The code that handles makefiles is mixed up with stitching logic, the result is that this part of the codebase is quite hairy and difficult to extend<br />
* <del>'make' places restrictions on characters in file paths but the Hugin GUI doesn't do anything to prevent users from using these characters</del><br />
<br />
Write a C/C++ equivalent of [http://search.cpan.org/dist/Panotools-Script/lib/Panotools/Makefile.pm Panotools::Makefile], write lots of tests, identify problem characters on each platform, port Hugin stitching to use this makefile library <del>add filters to filename selection parts of Hugin GUI to prevent use of problem characters</del>.<br />
<br />
Further: Hugin already has 'Align' in the [[Hugin Assistant tab]] for creating panorama projects, but for bigger projects it takes some time. Otherwise there is [[Hugin Batch Processor|PTBatcherGUI]] in the hugin package, which can run several 'stitching' tasks in a queue - i.e. we have a system for queueing 'stitching' but not 'aligning'.<br />
<br />
* Extend [[Hugin Batch Processor|PTBatcherGUI]] so that also the 'Align' functionality from the assistant (with control point detection, cpclean, celeste, optimisation for position and photometric optimisation) can be added to the queue using Makefiles. Note this has been prototyped with [[ptoanchor]], but a C++ version of this code would need to be written.<br />
* In the next step, allow the user to give a directory or list of photos, and search for all possible panoramas and pass these to PTBatcherGUI for 'Aligning' (maybe with a heuristic approach, based on the EXIF data like [[ panostart]] in combination with [[match-n-shift]]).<br />
<br />
[[Category:Community:Project]]</div>Astonhttps://wiki.panotools.org/index.php?title=Panorama_scripting_in_a_nutshell&diff=11962Panorama scripting in a nutshell2009-11-10T10:49:47Z<p>Aston: /* Generating control points */</p>
<hr />
<div>This is a short document describing the various Open Source tools and techniques available for working with panoramas in a non-GUI environment. The examples are based on Linux experience, but most of them should work on OS X or Windows with minor modifications at most.<br />
<br />
This document is also useful for understanding what happens 'under the hood' in [[hugin]] itself and recommended reading for anyone looking to work with the hugin sourcecode.<br />
<br />
= Why would you do that? =<br />
<br />
Creating and manipulating panoramas is something that should obviously be done in a [[GUI front-ends|graphical tool]]. This is true, but perhaps you find that you are spending more time operating a computer than being a photographer. This is an indication that something is wrong - The computer exists to do the boring work and scripting is one way to make this happen.<br />
<br />
= PanoTools 'Scripting' =<br />
<br />
The file format first used in Helmut Dersch's [[Panorama tools]] is often referred to as a 'script', but a 'PanoTools' script is really a data file describing a 'panorama stitching project'.<br />
<br />
Although these original PanoTools are obsolete, the file format is alive and well with several variations used as project files by [[PTGui]], [[PTAssembler]], [[hugin]] and related tools. These files are simple plain-text, sometimes it is useful to modify them directly with a text editor - Further on we will introduce various methods for manipulating them via the 'programming' kind of scripts.<br />
<br />
= Simple command-line stitching =<br />
<br />
Lets start with a basic but common use case: Photographers with quality [[Nodal point adapters|panoramic tripod heads]] can reproduce identical sets of photos every time, in this situation there is no need to create a new stitching project for every panorama, it is enough to use a single project as a template.<br />
<br />
This example takes a pre-existing project called template.pto, created with three photos. It uses [[nona]] for remapping, and [[enblend]] for blending the remapped photos into a finished [[TIFF]] image:<br />
<br />
nona -o out -m TIFF_m template.pto DSC_1234.JPG DSC_1235.JPG DSC_1236.JPG<br />
enblend -o finished.tif out0000.tif out0001.tif out0002.tif<br />
<br />
The first [[nona]] command creates three remapped [[TIFF]] images called out0000.tif, out0001.tif etc... the list of input images can be substituted with any set of identically sized photos. The second [[enblend]] command uses these TIFF files as input and merges them to a file called finished.tif.<br />
<br />
= Creating hugin projects on the command-line =<br />
<br />
The entire panorama creation process can be performed on the command-line, and therefore scripted, doing this involves a series of steps similar to the workflow in a GUI tool.<br />
<br />
== Generating control points ==<br />
<br />
There are a number of tools available for generating [[control points]] from groups of photos, such as [[autopano-sift]], [[autopano-sift-c]], [[panomatic]] and [[match-n-shift]]. Here is an example using autopano-sift-c:<br />
<br />
autopano-sift-c --projection 0,50 project.pto DSC_1234.JPG DSC_1235.JPG DSC_1236.JPG<br />
<br />
This will create a .pto project with [[control points]] (if any) linking the three photos, note that the [[projections|projection]] format (f0, [[Rectilinear Projection|rectilinear]]) of the input photos and approximate horizontal [[Field of View|angle of view]] (v50, 50 degrees) have to be specified.<br />
<br />
== Pruning control points ==<br />
<br />
This still isn't a finished panorama, at the very least this involves [[optimization|optimising]] the camera positions and then rendering the output.<br />
<br />
You could go ahead and [[optimization|optimise]] this project file straight away, but this can be a bit hit and miss. First it is a good idea to clean up the [[control points]]. There are currently two useful tools for cleaning control points: [[Using Celeste with hugin|celeste]] removes points from areas of sky and [[ptoclean]] removes points with large error distances, first [[celeste_standalone]]:<br />
<br />
celeste_standalone -i project.pto -o project.pto<br />
<br />
Then [[ptoclean]]:<br />
<br />
ptoclean -v --output project.pto project.pto<br />
<br />
Note that in both cases we are overwriting the input project.pto file with the cleaned output. If you want you can create intermediate temporary files and keep each step in case you need to backtrack.<br />
<br />
(Other control point cleaners are [[ptscluster]] and the new [[cpclean]])<br />
<br />
== Optimising positions and geometry ==<br />
<br />
Up to now, the project file simply contains an image list and [[control points]], the images are not yet aligned, you can do this by [[optimization|optimising]] geometric parameters with the [[autooptimiser]] tool:<br />
<br />
autooptimiser -a -l -s -o project.pto project.pto<br />
<br />
Now you could just skip ahead and render the output if photometric [[optimization|optimisation]] isn't required.<br />
<br />
([[PToptimizer]] is an alternative geometrical optimiser)<br />
<br />
== Optimising photometric parameters ==<br />
<br />
Photos have photometric exposure variables which can be [[optimization|optimised]] in much the same way as aligning positions. Doing this can remove brightness, [[white balance]] and [[vignetting]] differences between photos, giving better blending or allowing creation of [[HDR]] images.<br />
<br />
[[vig_optimize]] does the equivalent job for photometric parameters as [[autooptimiser]] does for geometric parameters. It doesn't have an equivalent of the autooptimiser -a 'auto' mode, so you need to indicate in the .pto project which parameters are 'variables', use a tool such as [[ptovariable]]:<br />
<br />
ptovariable --vignetting --response --exposure project.pto<br />
vig_optimize -o project.pto project.pto<br />
<br />
= Stitching hugin projects on the command-line =<br />
<br />
== Rendering images ==<br />
<br />
The [[hugin]] tool for remapping and distorting the photos into the final panorama frame is [[nona]], it uses the .pto project file as a set of instructions:<br />
<br />
nona -m TIFF_m -o project project.pto<br />
<br />
This [[nona]] command creates one remapped [[TIFF]] image for each of the input photos, these will be named project0000.tif, project0001.tif, project0002.tif etc...<br />
<br />
([[PTblender]] is an alternative renderer to [[nona]])<br />
<br />
== Blending ==<br />
<br />
[[nona]] can do rudimentary assembly of the remapped images, but a much better tool for this is [[enblend]], feed it the images, it will pick seam lines and blend the overlapping areas:<br />
<br />
enblend -o project.tif project0000.tif project0001.tif project0002.tif ...<br />
<br />
Finally this produces the stitched panorama: project.tif<br />
<br />
= ''Makefile'' stitching system =<br />
<br />
This simple stitching process works well on the command-line, but it gets increasingly complicated when dealing with [[bracketing|bracketed]] stacks of photos, these are necessary for exposure blending with [[enfuse]] or [[HDR]] creation with [[hugin_hdrmerge]].<br />
<br />
Luckily [[hugin]] understands about stacks and is capable of breaking-up a project into each of the stitching tasks: rendering, assembling stacks and blending. These targets are written to a standard ''Makefile'' formatted file whenever a project is saved or stitched, e.g when you save project.pto using the hugin GUI, project.pto.mk is saved also. Stitching is then performed not by the hugin GUI, but by GNU ''make'' which processes the targets in the ''Makefile'', resulting in the final stitched panorama.<br />
<br />
== Creating ''Makefile''s with pto2mk ==<br />
<br />
This functionality is also available for use with any .pto project with the command-line [[pto2mk]] tool:<br />
<br />
pto2mk -o project.pto.mk -p project project.pto<br />
make -f project.pto.mk<br />
<br />
One of the advantages of using ''make'' on the command-line is that re-running this command will only redo necessary work. If none of the input files have changed, then ''make'' will finish immediately; however if one of the input or intermediate files has changed, say by modifying an [[alpha channel]], then only the tasks necessary to integrate that image into the final panorama will be redone.<br />
<br />
== ''make'' options ==<br />
<br />
''make'' supports multiple targets, by default [[hugin]] creates an 'all', it also creates a 'clean' target that deletes intermediate files. So you can clean up afterwards like so:<br />
<br />
make -f project.pto.mk clean<br />
<br />
Internal variables can be overriden by environment variables using the '-e' flag, so to stitch using the alternative [[nona-mask]] tool instead of [[nona]], use something like this:<br />
<br />
NONA=nona-mask make -e -f project.pto.mk<br />
<br />
Alternatively variables can be simply appended to the end of any ''make'' command, this does exactly the same thing:<br />
<br />
make -f project.pto.mk NONA=nona-mask<br />
<br />
In a shell such as bash, setting the environment will modify internal variables for the rest of the session:<br />
<br />
export ENFUSE='enfuse -l 29'<br />
<br />
(note that this will override any existing useful [[enfuse]] options)<br />
<br />
== Parallel ''make'' ==<br />
<br />
''make'' supports parallel processing for machines with multiple cores/processors with the '-j' parameter, so for a 16 core system this command will stitch using 16 parallel processes:<br />
<br />
make -j 16 -f project.pto.mk NONA='nona -t 1'<br />
<br />
(note that by default [[nona]] uses all available cores, in this case it needs to be limited to one thread so that 16 instances of nona can run at the same time)<br />
<br />
== Stitching queues ==<br />
<br />
Processing a series of projects one after another is simple enough, this command will stitch all the projects in a folder:<br />
<br />
for file in *.pto.mk; do make -f $file; done<br />
<br />
For more advanced command-line stitching, a tool like [http://distmake.sourceforge.net/ distmake] will manage a queue of ''Makefile'' stitching jobs, and even load-balance multiple machines over a network.<br />
<br />
== ''Makefile'' plugins ==<br />
<br />
A ''Makefile'' can be extended with additional targets by creating a second ''Makefile'' that includes the original [[hugin]] .pto.mk ''Makefile''. For instance a plugin ''Makefile'' called 'Makefile.psd.mk' might define a new target called 'ldr_psd' that assembles a multilayer [[PSD]] file for manual blending in a tool such as the [[Gimp]]:<br />
<br />
include $(PTO).mk<br />
ldr_psd : $(LDR_LAYERS) $(LDR_BLENDED)<br />
PTtiff2psd -o $(LDR_REMAPPED_PREFIX_SHELL)_layered.psd \<br />
$(LDR_LAYERS_SHELL) $(LDR_BLENDED_SHELL)<br />
<br />
You can then use this plugin by calling the ldr_psd target and supplying the name of the relevant .pto project:<br />
<br />
make -f Makefile.psd.mk ldr_psd PTO=project.pto<br />
<br />
Hugin installs with an example Makefile.equirect.mk plugin with some common add-on tasks such as creating basic [[QTVR]], [[PanoSalado]] and [[SPiV]] files.<br />
<br />
== Useful ''Makefile'' variables ==<br />
<br />
Each filesystem PATH in this table has a matching PATH_SHELL version with special characters escaped - This is the version that should be used in the 'command' part of each ''Makefile'' rule.<br />
<br />
{|<br />
| $(INPUT_IMAGES) || list of input files<br />
|-<br />
| $(INPUT_IMAGE_1) || first input file<br />
|-<br />
| $(PROJECT_FILE) || .pto project file<br />
|-<br />
| ||<br />
|-<br />
| $(HUGIN_PROJECTION) || output [[projections|projection]] type in panotools numeric format<br />
|-<br />
| $(HUGIN_HFOV) || output horizontal [[Field of View|angle of view]] in degrees<br />
|-<br />
| $(HUGIN_WIDTH) || output width in pixels<br />
|-<br />
| $(HUGIN_HEIGHT) || output height in pixels<br />
|-<br />
| ||<br />
|-<br />
| $(DO_LDR_BLENDED) || set if 'normal' stitching with no exposure blending set<br />
|-<br />
| $(DO_LDR_STACKED_BLENDED) || set if stitching with 'exposure blending' set<br />
|-<br />
| $(DO_HDR_BLENDED) || set if [[HDR]] merging set<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_REMAPPED_PREFIX) || normal blended output prefix<br />
|-<br />
| $(LDR_EXPOSURE_REMAPPED_PREFIX) || exposure blended output prefix<br />
|-<br />
| $(HDR_STACK_REMAPPED_PREFIX) || [[HDR]] merged output prefix<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_BLENDED) || normal blended output file<br />
|-<br />
| $(LDR_STACKED_BLENDED) || exposure blended output file<br />
|-<br />
| $(HDR_BLENDED) || [[HDR]] merged output file<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_LAYERS) || list of normal unblended output files<br />
|-<br />
| $(LDR_STACKS) || list of exposure blended stack files<br />
|-<br />
| $(LDR_EXPOSURE_LAYERS) || list of blended exposure layers<br />
|-<br />
| $(HDR_STACKS) || list of [[HDR]] merged stack files<br />
|}<br />
<br />
= Holding it all together with panostart =<br />
<br />
The .pto.mk ''Makefile'' helps with the stitching at the end of the process, but doesn't help with the bits at the beginning such as: identifying which photos go in which panorama, generating [[control points]], pruning and [[optimization|optimising]].<br />
<br />
[[panostart]] is a prototype tool that does it all. Given a list of photos in a folder, it identifies likely panoramas by comparing [[EXIF]] timestamps and writes a meta-''Makefile'' containing: rules for generating .pto projects with [[match-n-shift]], rules for generating corresponding .pto.mk ''Makefile''s with [[pto2mk]], rules for stitching the projects with ''make'', plus some other rules for creating useful distributable output.<br />
<br />
A typical [[panostart]] command for dealing with a folder full of photos taken with a pocket point-and-shoot camera on auto-exposure might look like this:<br />
<br />
panostart --output Makefile --projection 0 --fov 50 --nostacks --loquacious *.JPG<br />
<br />
Processing this ''Makefile'' is simple:<br />
<br />
make<br />
<br />
Some of the resulting panoramas will have position, cropping and stitching errors. Fix these by editing the relevant .pto projects in [[hugin]] or another tool, when you type ''make'' again on the command-line, only those projects that have changed will be restitched.<br />
<br />
Another advantage of doing things this way is reproducibility: delete all the (enormous) [[TIFF]] output panoramas and all you need to keep permanently are the photos, the meta-''Makefile'' and the associated .pto projects. If you ever need to recreate the TIFF panoramas in the future, just type ''make''. If you know the name of the TIFF file you want, just type 'make project.tif' and only a single panorama will be processed.<br />
<br />
= Panotools::Script for manipulating project files =<br />
<br />
The name is a historical mistake, [[Panotools_Script|Panotools::Script]] is a perl library for working with [[hugin]] .pto projects, though it could be extended in the future to cover any of the related file formats. Many of the command-line tools described in this document are written with this library.<br />
<br />
Here is a trivial script, all it does is open and save a .pto project, it also resets the output ('p' Panorama line) [[Field of View|angle of view]] to 360 degrees (v360), the [[projections|projection]] format to [[equirectangular Projection|equirectangular]] (f2) and the output pixel size to 4096x2048 pixels (w4096 h2048):<br />
<br />
#!/usr/bin/perl<br />
use Panotools::Script;<br />
my $pto = new Panotools::Script;<br />
$pto->Read ($ARGV[0]);<br />
$pto->Panorama->Set (v => 360, f => 2, w => 4096, h = 2048);<br />
$pto->Write ($ARGV[0]);<br />
<br />
Here's slightly more complex script, this iterates over the input images and increments the [[white balance]] making the panorama slightly 'warmer':<br />
<br />
#!/usr/bin/perl<br />
use Panotools::Script;<br />
my $pto = new Panotools::Script;<br />
$pto->Read ($ARGV[0]);<br />
for my $image (@{$pto->Image})<br />
{<br />
my $Er_new = $image->{Er} * 100 / 95; # red value<br />
my $Eb_new = $image->{Eb} * 95 / 100; # blue value<br />
$image->Set (Er => $Er_new, Eb => $Eb_new);<br />
}<br />
$pto->Write ($ARGV[0]);<br />
<br />
= Full list of command-line tools =<br />
<br />
== Control point generation ==<br />
<br />
* [[autopano-sift-c]] - All in one keypoint generator and matcher<br />
* [[match-n-shift]] - All in one wrapper around [[align_image_stack]] and [[autopano-sift-c]]<br />
* [[panomatic]] - All in one alternative to [[autopano-sift-c]]<br />
* [[align_image_stack]] - Generates [[control points]] for stacked photos<br />
<br />
* generatekeys - Keypoint generator<br />
* matchpoint - Keypoint generator<br />
* autopano - Keypoint matcher, part of [[autopano-sift-c]] and not to be confused with autopano<br />
<br />
== Project file modification ==<br />
<br />
* ptoset - Change global parameters and project options<br />
* [[ptovariable]] - Set typical [[optimization|optimisation]] variables<br />
* ptsed - Set any project parameter, convert .pto into PanoTools format<br />
* [[ptosort]] - Sort [[control points]] or images, remove duplicate control points<br />
* ptopath - Remove file paths in project files<br />
* [[transform-pano]] - [[Roll]], [[pitch]] and [[yaw]] rotation of .pto projects<br />
* ptocentre - Rotate projects to put images in panorama centre<br />
<br />
* [[ptomerge]] - Join two or more projects<br />
* [[ptosplit]] - Extract subsets of images from a project into a new project<br />
<br />
== Control point pruning ==<br />
<br />
* ptscluster - Clean 'bad' [[control points]] based on distances and position<br />
* [[celeste_standalone]] - Clean sky [[control points]]<br />
* [[ptoclean]] - Clean 'bad' [[control points]] based on standard deviation error<br />
* [[cpclean]] - An improved version of [[ptoclean]], part of the [[hugin]] project<br />
<br />
== Optimisation ==<br />
<br />
* [[autooptimiser]] - [[optimization|Optimise]] geometry of .pto projects<br />
* [[PToptimizer]] - [[optimization|Optimize]] geometry of PanoTools format projects<br />
* [[vig_optimize]] - [[optimization|Optimise]] photometric parameters of .pto projects<br />
<br />
== Rendering ==<br />
<br />
* [[nona]] - Default [[hugin]] rendering engine<br />
* [[nona-mask]] - Wrapper around [[nona]] for using external bitmap masks<br />
* [[PTmender]] - Render PanoTools format projects<br />
<br />
* [[PTAInterpolate]] - Create intermediate images from PanoTools projects<br />
<br />
== Blending ==<br />
<br />
* [[enblend]] - Merge partially overlapping images with multiresolution splines<br />
* [[enfuse]] - Merge overlapping images with exposure fusion<br />
* PTroller - Merge partially overlapping images with no seaming<br />
* PTmasker - Compute stitching masks for input by PTroller<br />
* enblend-mask - Wrapper around [[enblend]] for using external bitmap masks<br />
* enfuse-mask - Wrapper around [[enfuse]] for using external bitmap masks<br />
* [[hugin_hdrmerge]] - Merge [[bracketing|bracketed]] images for [[HDR]] generation<br />
* enblend-svg - Wrapper around [[enblend]] for specifying input images via SVG files<br />
<br />
* process-masks - Allow 'positive' masking in external masks for [[enblend]]<br />
* tif2svg - Assemble multiple [[TIFF]] images into SVG files for enblend-svg<br />
* [[PTblender]] - Correct colour and brightness of overlapping images<br />
<br />
== Misc ==<br />
<br />
* [[panostart]] - All-in-one panorama workflow via ''Makefile''s<br />
* [[pto2mk]] - Create platform specific ''Makefile'' for stitching a project<br />
* [[ptodummy]] - Generate missing input photos to debug .pto projects<br />
* [[calibrate_lens]] - Automatic lens calibration using straight-line detection<br />
<br />
== Chromatic aberration ==<br />
<br />
* [[fulla]] - Correct lens distortion and [[chromatic aberration]]<br />
* [[tca_correct]] - Calculate [[chromatic aberration]] in a photo<br />
<br />
== Querying ==<br />
<br />
* ptograph - Draw undirected graphs of projects<br />
* ptoget - Query any project parameter<br />
* ptoinfo - Generate a report on a project file<br />
* PTinfo - Display info about a panotools generated [[TIFF]] file<br />
* [[panoinfo]] - Display information about installed [[libpano13]] library<br />
<br />
== TIFF files ==<br />
<br />
* PTtiff2psd - Join multiple [[TIFF]] images into a multilayer [[PSD]] file<br />
* PTtiffdump - Compare two TIFF files<br />
* PTcrop - Remove unwanted empty space in [[TIFF]] files and replace with offsets<br />
* PTuncrop - Replace offsets in [[TIFF]] files with empty pixels<br />
<br />
== Output formats ==<br />
<br />
* [[qtvr2img]] - Extract six cubefaces from a cubic [[QTVR]]<br />
* cubic2erect - Render six cubefaces into a single [[equirectangular Projection|equirectangular]] image<br />
* qtvr2erect - Render a cubic [[QTVR]] into a single [[equirectangular Projection|equirectangular]] image<br />
* jpeg2qtvr - Assemble six [[JPEG]] cubefaces into a cubic [[QTVR]]<br />
* [[erect2qtvr]] - Render a single [[equirectangular Projection|equirectangular]] image into a cubic [[QTVR]]<br />
<br />
* erect2cubic - Create a .pto project for extracting cube faces from an [[equirectangular Projection|equirectangular]] image<br />
* erect2planet - Create a .pto project for extracting a 'little planet' from an [[equirectangular Projection|equirectangular]] image<br />
* erect2mercator - Create a .pto project for extracting a mercator view from an [[equirectangular Projection|equirectangular]] image<br />
<br />
== Older tools ==<br />
<br />
Helmut Dersch's [[PTOptimizer]] and [[PTStitcher]] were the original command-line tools. These are not really recommendable any more as they require an older, buggier version of the [[libpano12]] library, they are closed source so don't work on modern systems such as OS X or 64bit Linux, and are lacking in features compared to modern replacements such as [[autooptimiser]] and [[nona]].<br />
<br />
= Useful Image processing tools =<br />
<br />
* [[ImageMagick]] - Many utilities for converting, manipulating and resizing images<br />
* GraphicsMagick - A fork of ImageMagick with many improvements<br />
* libtiff - Supplied with useful tools such as tiffcp for joining and recompression, and tifficc for adding ICC colour profiles<br />
* [[exiftool]] - All purpose reading, setting and copying of [[EXIF]] data<br />
* exiv2 - [[EXIF]] manipulation, useful for setting the file modification date from the EXIF date<br />
* jpegtran - Lossless rotation of [[JPEG]] images<br />
* ufraw-batch - Command-line [[RAW]] processing<br />
* [[dcraw]] - Command-line [[RAW]] processing<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Tutorial:Specialised]]<br />
<br />
--[[User:Bruno|Bruno]] 21:23, 2 May 2009 (UTC)</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_FAQ&diff=11956Hugin FAQ2009-11-04T17:03:03Z<p>Aston: /* Hugin fails stitching stereographics and other projections */</p>
<hr />
<div>== Common error messages ==<br />
<br />
=== enblend: no input files specified ===<br />
<br />
There are no input images relevant to the output 'panorama' so hugin had nothing to do, probably because all the input images are outside the panorama 'frame'. Open the [[Hugin Preview window]] or [[Hugin Fast Preview window]] to adjust the view and/or crop.<br />
<br />
Note also that hugin versions up to and including 2009.2.0 allow you to draw an inverted crop frame where the top is below the bottom, this is easy to see in the Preview window as the entire panorama is 'greyed'. A crop frame drawn like this will result in an empty panorama and the above error message.<br />
<br />
=== enblend: error writing to image swap file ===<br />
<br />
[[enblend]] needs a lot of memory and uses its own swap routine to store picture data on the disk, this message indicates that you have run out of disk space. The data is stored in the system temp folder which is specified by TMP, TEMP or TMPDIR environment variables, note that this temp folder may be on a different physical disk to your photos and panorama output.<br />
<br />
=== false --compression NONE ===<br />
<br />
This error is caused by a bug in the 0.7.0 release that is fixed in 0.8.0. The problem is that your preferences are messed-up, the workaround for 0.7.0 is to go to File -> Preferences -> Enblend and click Load Defaults -> Yes -> Ok<br />
<br />
=== Enblend error: Mask is entirely black, but white image was not identified as redundant ===<br />
<br />
This is a well known "error" for [[enblend]]. Try to use the additional enblend parameter "--fine-mask" to ged rid of the error. The parameter will result in generation of masks in higher resolution that will fix the problem in most cases. Sometimes the "--fine-mask" parameter may result in memory errors (malloc: ...), which are the result of not enough memory available due to the (much) bigger masks that are used.<br />
<br />
An alternative workaround would be to set the enblend --no-optimize parameter, this will place the seam directly along the middle of the image overlaps regardless of image content. This option is also considerably faster and uses less memory.<br />
<br />
Note also that this error often appears when rendering a scene with extreme distortion such as a stereographic 'little planet'. For this and other reasons, such as overall speed, it is always preferable to render a 'normal' 360° [[Equirectangular Projection]] panorama first, then load this as a single source image into a new project and render whatever views you need.<br />
<br />
=== enblend: illegal option -- compression ===<br />
<br />
hugin 0.7.0 and later versions require at least [[enblend]] version 3.2. This error indicates that you need to upgrade enblend.<br />
<br />
=== Makefile: target pattern contains no % ===<br />
<br />
This is a message generated by [[w:Make_(software)]] (which [[Hugin]] uses to manage the stitching sequence). The error is caused by a ''':''' or '''#''' character in one of the file paths. The workaround is to rename to remove any 'special' shell characters and try again.<br />
<br />
=== gnumake: *** No rule to make target ===<br />
<br />
This is a message generated by [[w:Make_(software)]] (which [[Hugin]] uses to manage the stitching sequence). The error is caused by a ''':''' or '''#''' character in one of the file paths. The workaround is to rename to remove any 'special' shell characters and try again.<br />
<br />
=== nona: GL error: Framebuffer incomplete, incomplete attachment in: ===<br />
<br />
This is a message generated by nona when using the GPU for stitching (feature available starting with Hugin-2009.2.0). See section below about [[#GPU-stitching_.28nona.29|GPU-stitching]].<br />
<br />
=== make: enfuse: command not found ===<br />
<br />
This is a message generated by make when assembling your panorama. It most likely means that enfuse is not on your computer. Enfuse is part of the enblend package, but many Linux distributions, even recent ones, ship with an older version of enblend that does not contain enfuse. You need to install enblend-3.2 or higher.<br />
<br />
== Known Limitations ==<br />
<br />
=== Linux: Compiz ===<br />
<br />
Linux: Compiz interferes with the [[hugin Fast Preview window]]. This is not a hugin specific issue. Research shows all direct rendered stuff will have various problems under Compiz: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/96991<br />
<br />
This problem is fixed with DRI2, e.g with fedora 11 and intel graphics hardware you can have a 'wobbly' Fast Preview window if you really want.<br />
<br />
It's not an issue with NVidia's proprietry driver.<br />
<br />
If you're affected, the workaround is to not use Compiz.<br />
<br />
=== Windows: International Characters in Path ===<br />
<br />
Hugin is fully internationalised and can cope with special characters in file paths. However, hugin apparently fails on Windows systems with Russian and Czech codepages, the workaround is to use shell-safe ascii characters in file and folder names: '''A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 - _ .'''<br />
<br />
=== OSX: error when clicking on the help button ===<br />
<br />
In a language other than English, French or Italian you get an error message when clicking on the help button. This will be fixed in Hugin-2009.4.0. In the meantime, the work around is to change language to one of the above three; or to ask for help on the mailing list. <br />
<br />
=== Non-Unique Filenames ===<br />
<br />
Some components of Hugin have been reported not to deal well with image files<br />
that have the same name in different folders. The workaround is to rename <br />
your images files so that all image files in a project are unique.<br />
<br />
=== Temporary Files ===<br />
<br />
Hugin has a preference setting for the temporary files folder. Currently it<br />
is not implemented properly and files will be written in the same folder as<br />
the project file.<br />
<br />
A partial workaround on Linux is to start Hugin from a terminal with<br />
<pre><br />
TMPDIR=/media/disk-2/tmp hugin &<br />
</pre><br />
<br />
These temporary files have to be deleted manually after the stitch.<br />
<br />
=== Special Characters in Paths ===<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFF99;color:#FF0000;text-align:left;border: solid #FF3300;"<br />
|-valign="top"<br />
! =<br />
! ;<br />
! :<br />
! $<br />
! "<br />
! %<br />
! #<br />
! |<br />
! '<br />
! (<br />
! )<br />
! `<br />
! &<br />
! *<br />
! +<br />
! ^<br />
! ~<br />
! <<br />
! ?<br />
! ><br />
! and the space character.<br />
|}<br />
<br />
Hugin currently does not do plausibility checks on the paths and file names that are given to it. It relies on the operating system's conventions and limitations. However Hugin uses make to run the stitching process, and make has more restrictive limitation than the operating system.<br />
<br />
Please don't use the above characters in your files and folders when you want to make sure they work with Hugin. If you absolutely need files named this way, rename them after processing. Do not file bug reports based on filenames with the above characters. The [https://sourceforge.net/tracker/?func=detail&atid=550441&aid=2883450&group_id=77506 issue] is known, analyzed, and may be fixed in the future.<br />
<br />
=== Hugin fails stitching some stereographics and other polar projections ===<br />
<br />
This is a known limitation caused by photos being distorted into extreme 'C' and 'O' shapes. The workaround: stitch all of your pictures into a single equirectangular, and then load the equirectangular into Hugin to generate the stereographic or other projections you wanted to do in the first place.<br />
<br />
== Control Point creation ==<br />
<br />
=== How do I add control points ===<br />
The [[control points]] editor is quite powerful, but its usage is probably not obvious on the first try. Here are some ways the developers use the Control Point panel:<br />
<br />
1. Selecting control points in 100% zoom.<br />
<br />
This method needs some scrolling, if big images are used. You might want to try the fit to window zoom setting in that case. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: 100%<br />
[X] auto fine tune<br />
[X] auto add<br />
[X] auto estimate<br />
<br />
Click on a prominent feature in the left image. If the image pair already contains control points, [[hugin]] will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The second point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by dragging them to a better position. Press the "f" key to fine tune the point in a small area.<br />
<br />
<br />
2. Selecting control points in fit to window mode.<br />
<br />
I uses this mode if I need to set points on big images. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: fit to window<br />
[X] auto fine tune<br />
[ ] auto add<br />
[X] auto estimate<br />
<br />
Click on left image. The image will be shown in 100% view. Within the detailed view, click on a prominent feature. If the image pair already contains control points, hugin will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by clicking at the desired position. Move the point close to the desired feature and press the "f" key to fine tune the point. When the points are on the same feature, press the right mouse button, or press the "a" key to add the control point pair. It will then be shown in the list below the image.<br />
<br />
=== How do I scroll both images at the same time? ===<br />
<br />
Try pressing the shift key while moving the mouse. The control key or the middle mouse button can be used to scroll only the image under the mouse cursor.<br />
<br />
=== How do I stop Hugin pausing for a moment after every click? ===<br />
<br />
The ''preview window'' updates continuously whenever anything changes, so disable the preview auto-update, close it or make it smaller if you don't need it.<br />
<br />
Otherwise, picking [[control points]] with ''auto fine tune'' selected can involve a lot<br />
of processing. You can reduce this by ''selecting File -> Preferences -> Finetune'' and<br />
lowering the values for ''Patch width'', ''Search area width'' and ''Local search area width''.<br />
This means you can't be so sloppy when clicking to create control points, but the results will<br />
be the same.<br />
<br />
=== Windows: when user is not admin, not all cp-creators are available to choose from ===<br />
<br />
Preferences are stored in the registry on Windows. Every users has their own. To have all the cp-creator pre-sets like the admin users, hit the "Load defaults" button on the Control Points tab in the Preferences dialog.<br />
<br />
== Common problems when creating a panorama ==<br />
<br />
=== How can I reuse a project as a template? ===<br />
<br />
If you copy a .pto project to a different folder and open it with hugin, you will be prompted for the 'missing' images. You should delete any control points from this template project since they won't be relevant to the new photos.<br />
<br />
Alternatively you can load your images as normal, then ''Apply template''<br />
from the ''File'' menu, this will import image settings and parameters<br />
from a previous project.<br />
<br />
=== How do I straighten a curved horizon? ===<br />
If the panorama looks nice but the horizon is curved, there are two ways to improve the image and straighten the horizon. First, try optimizing the view by selecting "Positions and View" as the optimization mode and run the optimizer afterwards. By clicking "Calculate Field of View" in the "Stitcher" tab and displaying the preview window afterwards you can check if the image has been improved.<br />
<br />
If it is still curved, you have to add vertical guide control points in the "Control Points" tab. Usually two [[vertical control points]] are enough to straighten the horizon nicely. Often edges of buildings, poles or other man made structures provide good vertical lines. To add a vertical control point, switch to the control point editor and select the same image on both sides. Place a control point on the left image on the upper area of the vertical feature. In the right image, select a control point on the lower area of the features, and press the Add button. Once the new point has been added, its type should automatically switch to "vertical line". You might want to switch off the auto-add and auto-estimate options while doing this to avoid naggy dialogs while adding these guide points.<br />
<br />
Two points that are roughly 90 degrees apart provide the best effect.<br />
<br />
See also the related perspective correction tutorials: [http://hugin.sourceforge.net/tutorials/architectural/en.shtml hugin tutorial on perspective correction], [[Perspective correction]], [[Leveling a Finished Panorama]]. While these are concerned with correction of the perspective in one image, the same technique can be used for<br />
leveling a panorama.<br />
<br />
=== Half the panorama is black, my pictures fill only the right half of the output ===<br />
<br />
Hugin uses the first photo as the ''anchor'' image and puts it in the middle by default. This means that if you shot a sequence from left to right, the images will fill the right hand side of the panorama. There are three ways to fix this:<br />
<br />
* Open the '''preview''' window and click the '''center''' button.<br />
* or select the middle photo, hit '''anchor this image for position''' and '''reset''' in the '''images''' tab, then reoptimise.<br />
* In the 'Fast Panorama Preview' window select 'Drag'. Left mouse drags the image, right mouse rotates the image.<br />
<br />
=== I get visible bands in the sky and other flat areas, what can I do? ===<br />
<br />
Make sure you are using [[enblend]] to do the final image assembly, this will blend the overlap as much as is possible - Enable enblend by stitching the images '''into a high quality TIFF file''' in the '''stitcher''' tab.<br />
<br />
If you still have problems, then you probably have to correct [[vignetting]] in your images. In the vignetting area of '''camera and lens''' tab, select '''edit parameters...'''. Then select '''division''', '''polynomial''' and '''estimate polynomial''' to calculate a vignetting correction curve for your camera combination - This will be applied to every photo in your project when you click '''OK'''.<br />
<br />
=== My photos never quite line up, what can I do? ===<br />
<br />
It is normal to get little stitching [[parallax]] errors if<br />
the camera moves between photos. The solution is to rotate the camera around<br />
the [[no-parallax point]] using a [[Heads|panoramic head]] or [[philopod]].<br />
<br />
Otherwise you can sometimes improve things by optimising the ''d & e'' parameters<br />
separately - When you optimise '''everything''', unselect '''Inherit''' in<br />
the '''camera and Lens''' panel for 'd & e'.<br />
<br />
If these parallax errors are still large, you need to decide which<br />
parts of the scene that you want to line-up and which parts don't<br />
matter. Select [[control points]] only on objects that you do want to<br />
line-up and which are all about the same distance from the camera.<br />
<br />
The remaining broken lines can then be retouched in a photo editor like the [[gimp]].<br />
The ''shear'' tool is ideal for bending the lines and<br />
[[Mending parallax errors with the shear tool|getting them to line up]].<br />
<br />
=== I have extraded and edited cubefaces and want to merge them together again. How do I do that ? ===<br />
<br />
Set the '''enblend options''' to -l1 --fine-mask --no-optimize<br />
<br />
=== Can I stitch my HDR images ? ===<br />
<br />
Yes. If you already have merged your HDR stacks, follow the '''Normal''' Output on the '''Stitcher''' tab ('''HDR merging''' is for stacks that will be merged by Hugin). In the '''Processing''' step the output will be an HDR in TIFF format.<br />
<br />
=== Why is my panorama upside down ? ===<br />
<br />
Hugin stitches the panorama on a sphere and can't determine what is up or what is down. Even if vertical control points are assigned, there is still no notion of up and down, so the panorama can flip upside down. The solution for that is to open the Preview window, click on the Num. Trans. button in the toolbar, enter 180 in the roll field and apply. This will flip the panorama back to the right orientation.<br />
<br />
=== Why do multi-lens projects end up distorted/broken? ===<br />
<br />
You have probably optimized 'Everything'. This will cause the optimizer to try to optimize lens parameters for each of the different lenses, and there may not be a big enough spread of control points for the optimization to work well.<br />
When stitching photos from different lenses, or when you don't have a good spread of control points, optimize 'Position, view & Barrel (y,p,r,v,b).<br />
<br />
== GPU-stitching (nona) ==<br />
<br />
Starting with Hugin-2009.2 nona has a new, experimental feature: it can use the video card (GPU) to accelerate the stitching. How much acceleration you will get, if any, depends on the combination of video card and driver.<br />
<br />
=== I get a nona: GL error. Does this mean that I found a bug? ===<br />
<br />
Not necessarily. This functionality is highly experimental. It may be that you have an outdated driver, or that the functionality is not supported on your video card. Note down the version of the driver you are using and the specs of your video card (GPU and RAM). Then update to the latest driver from [http://www.nvidia.com/page/drivers.html nVidia] or [http://support.amd.com/us/gpudownload/Pages/index.aspx AMD] (ATI has been bought by AMD). Currently only these two families of GPUs support the functionality.<br />
<br />
=== How can I know if nona-GPU works on my system? ===<br />
<br />
At the moment we have too little information to predict this. We know that only nVidia and AMD(ATI) powered video cards work, and not all of them. The more recent the video card, the higher the likelihood that it works. Improve your chances by updating to the latest driver for your GPU. Look at experience reports from other users and report your experience [[Nona GPU stitching reports|here]].<br />
<br />
=== What speed improvement can I expect? ===<br />
<br />
It depends on the video card. Bandwidth is mostly the bottleneck, specifically getting the transformed data from the GPU back to the main system memory.<br />
<br />
=== Bug Reporting ===<br />
<br />
When reporting success or failure using the GPU for stitching, always report also the driver version, video card GPU and RAM. Tell us what you were doing, the size and number of input images (note that if you stitch from within Hugin or PTBatcher, it is only one input image at a time).<br />
<br />
== Postprocessing ==<br />
<br />
=== Why is the ICC profile of my input images not preserved? ===<br />
<br />
Since hugin 0.5 and enblend 2.4 [[colour profile|ICC profiles]] in the input files are transfered to the output panorama. Please update to a current version.<br />
<br />
=== How can I postprocess the image using multiple layers in The Gimp? ===<br />
<br />
* Use the [[nona]] stitcher on the command-line, to output to a multilayer [[TIFF]] format:<br />
<br />
nona -m TIFF_multilayer -o multi_layer.tif project.pto<br />
<br />
This will will produce a multi_layer.tif file, that contains all remapped images, cropped to their bounding box.<br />
<br />
* Alternatively select the '''Remapped Images''' option in the [[Hugin Stitcher tab]], this will create each ''layer'' as a separate file. Then use the '''tiffcp''' command-line tool (part of libtiff) to join them together into a multi-page TIFF:<br />
<br />
tiffcp project0000.tif project0001.tif project0002.tif multi_layer.tif<br />
<br />
* You can also use [[tif2xcf]], to combine the '''Remapped Images''' TIFF output into a multilayer XCF.<br />
Unfortunately this requires a lot of memory because it stores each remapped image in a layer with the size of the final panorama.<br />
<br />
== Installation ==<br />
<br />
=== Where can I download hugin installers ===<br />
<br />
Information on installers for both stable and testing builds of hugin can be found on the [http://panospace.wordpress.com/downloads/ panospace download page].<br />
<br />
=== How can I compile Hugin.app on my OSX machine? ===<br />
<br />
See [[Hugin Compiling OSX]], [[Autopano-sift-C Compiling OSX]] and [[Enblend Compiling OSX]].<br />
<br />
=== How do I compile hugin on my linux machine? ===<br />
<br />
See [[Hugin Compiling Fedora]], [[Hugin Compiling Gentoo]], [[Hugin Compiling OpenSuse]] and [[Hugin Compiling Ubuntu]]<br />
<br />
=== How do I compile hugin on my Windows machine? ===<br />
<br />
See [[Hugin Compiling Windows]]<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Swing_rod&diff=11955Swing rod2009-11-03T10:51:32Z<p>Aston: car aerial</p>
<hr />
<div>{{Glossary|A '''swing rod''' is a device for stabilising a camera position around the [[no-parallax point]] without needing a [[w:Tripod_(photography)|tripod]]|1}}, the principle is identical to a [[Philopod]].<br />
<br />
A telescopic car aerial is used as the rod. Although heavier, this is more convenient to carry than a [[Philopod]] where the string has to be wound/unwound and can get tangled easily.<br />
<br />
== External links ==<br />
<br />
* [http://www.flickr.com/photos/vitroids/3905350560 swing rod]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Preferences&diff=11906Hugin Preferences2009-10-16T08:02:33Z<p>Aston: /* Control Points Detectors */</p>
<hr />
<div>= General =<br />
<br />
== Resource usage ==<br />
<br />
To speed things up [[hugin]] keeps a copy in memory of as many input photos as possible. With very large projects, this would use all your system memory, so set '''Image cache memory''' to a value below your available free RAM. The default of 200MB should be ok for a system with 512MB of RAM, however this is very conservative, for large projects you will want to set this to a high proportion of your available system memory.<br />
<br />
The [[hugin Preview window]] is multi-threaded so can use more than one CPU/core if required. Set '''Number of CPUs''' to how many CPUs you wish to use.<br />
<br />
== User interface ==<br />
<br />
Usually, [[hugin]] will use the current locale to determine the language of buttons, menus etc...<br />
Set the '''Language''' if you need to switch languages temporarily or if you are using a platform<br />
such as Windows95 that doesn't support localised software. hugin won't change language<br />
immediately, you will need to stop and restart it.<br />
<br />
== File options ==<br />
<br />
Some [[hugin]] actions generate large temporary files, change the '''Tempdir''' to<br />
specify an alternative location for writing these files. One reason for setting this<br />
independently from the operating system would be to use a RAM disk to speed up<br />
stitching.<br />
<br />
<br />
<br />
= Assistant =<br />
<br />
The [[Hugin Assistant tab]] automates the entire panorama creation process, these<br />
settings allow you to customise the assistant.<br />
<br />
== Image loading ==<br />
<br />
Select '''Automatically align images after loading''' to run the second '''Align...'''<br />
step immediately after loading the images.<br />
<br />
== Automatic control point checking after detecting control points==<br />
<br />
Select '''Remove cloud-like control points (Celeste)''' to run [[Celeste standalone|celeste]] after detecting control points. Celeste will remove [[Control points]] set to clouds, this is useful because clouds will move several pixels between shots and are therefore bad scene objects to use for alignment.<br />
<br />
Select '''Remove outlying control points by statistical method''' to run [[cpclean]], this will try to remove control points with positions that are not credible under pairwise optimisation.<br />
<br />
== Auto align ==<br />
<br />
Auto align uses [[autopano-sift]] or [[autopano]] to generate [[control points]]<br />
between pairs of images, set '''Number of Ctrl Points per overlap''' to control<br />
the number of control points. Note that although most pictures can be stitched<br />
with just three or four control points, automatically generated points tend not<br />
to be very evenly distributed, so this number should be set to ten or more<br />
<br />
The size of the output '''Panorama Image Size''' is usually set in the<br />
[[Hugin Stitcher tab]] where it is also possible to '''Calculate Optimal Size'''<br />
based on the sizes of the input images. The '''Auto align''' process<br />
does something similar, though here you can set a smaller output as a percentage.<br />
Generally setting a percentage of 70% leads to no great loss of quality due to<br />
the way a camera [[CCD]] samples data.<br />
<br />
== Show preview ==<br />
After completing '''Align...''', the [[Hugin Assistant tab]] will usually display the result in a preview window, here you can change this to '''Nothing''' for no preview at all, [[Hugin Fast Preview window|Fast Preview Window]] or [[Hugin Preview window|Preview Window]].<br />
<br />
<br />
<br />
{{clr}}<br />
<br />
= Control Points Editor =<br />
<br />
== HDR and 16bit display mode ==<br />
<br />
[[hugin]] supports both [[HDR]] and [[16bit]] imaging. These image formats<br />
contain a lot more brightness and colour information than can be displayed<br />
on a standard computer monitor, so hugin only shows a rough representation<br />
of these pictures.<br />
<br />
16bit data can have ''linear'' or ''corrected'' [[gamma]]. Linear images<br />
appear very dark on many monitors, so set the '''Curve''' to '''gamma 2.2'''.<br />
<br />
For HDR data, try setting the '''Curve'''<br />
to '''logarithmic'''.<br />
<br />
Changes to the '''HDR and 16bit display mode''' require restarting hugin to<br />
take effect.<br />
<br />
== Finetune ==<br />
<br />
[[hugin]] helps position [[control points]] to within a fraction of a pixel distance automatically:<br />
<br />
* When '''auto fine-tune''' is selected in the [[hugin Control Points tab]] while picking control points.<br />
* When clicking '''Fine-tune''' in the [[hugin Control Points tab]]<br />
* When picking '''Fine-tune all Points''' in the [[hugin Main window]] '''Edit''' menu.<br />
<br />
* '''Patch width''', the size of the square of pixels taken from the left photo to match with the right photo when picking [[control points]], reduce if this is taking a long time on your system.<br />
* '''Search area width''', the percentage area of the right photo that is searched when picking '''control points''', reduce if this is taking a long time on your system.<br />
* '''Local search area width''', the region of the right photo searched when you click '''Fine-tune''' in the [[hugin Control Points tab]] or '''Fine-tune all Points''' in the [[hugin Main window]] '''Edit''' menu.<br />
* '''Correlation Threshold'''. For each '''Fine-tune''', [[hugin]] calculates the quality of the '''control points''' match, raise this threshold to reject dubious matches.<br />
* '''Peak Curvature Threshold''', Currently unused.<br />
<br />
== Rotation search ==<br />
<br />
Enable this if your photos:<br />
<br />
* have a very wide angle [[Field of View]] or [[fisheye Projection]].<br />
* are tilted up or down, [[control points]] near the [[zenith]] or [[nadir]] may need to have full 360 degree rotation search<br />
<br />
{{clr}}<br />
= Control Points Detectors =<br />
[[hugin]] uses an external tool for automatically creating [[control points]] for a set of images either when:<br />
<br />
* clicking '''2. Align...''' in the [[hugin Assistant tab]].<br />
* or clicking '''Create control points''' in the [[hugin Images tab]].<br />
<br />
In list-box you can choose default Control point detector programs such as :<br />
<br />
* [[autopano-sift-C]] - part of hugin suite<br />
* [[Panomatic]] (by Anael Orlinski)<br />
* [[Align image stack]] - part of hugin suite. Note that align_image_stack is not a general purpose control point detector, but is very effective for aligning images within stacks.<br />
* [[Match-n-shift]] <br />
* [[Autopano]] (by A. Jenny), closed source, available for Linux i386 and Windows 32bit.<br />
* [[autopano-sift|Autopano-SIFT]] (by S. Nowozin), open source, available for Linux, Windows and OS X.<br />
<br />
If you want to use a similar command-line tool that isn't already listed, this can configured with the '''New...''' button.<br />
<br />
Parameters for these tools can be customized in the '''Parameters for Control Point Detectors''' window, which you can open using '''Edit...''' or '''New...''' buttons. Typical tweaks might be to:<br />
<br />
* Set ''--noransac'' for [[autopano-sift]] when using non-[[rectilinear Projection]] input images.<br />
* Set ''--size'' for [[autopano-sift]] which by default downsizes images to 700 pixels before matching.<br />
* Some operating systems have problems supplying more than 120 or so photos at one time to these external tools, with autopano-sift-C 2.5.1 or later you can use these alternative arguments to specify input via a project file: ''--maxmatches %p %o %s''<br />
<br />
= Stitching =<br />
<br />
In the final stitching process [[nona]] reprojects and distorts images to fit, [[enblend]] takes these<br />
images as individual [[TIFF]] files and merges them using sophisticated seam positioning and blending and/or [[Exposure fusion]] into<br />
a single finished TIFF file.<br />
<br />
'''Important note:''' The settings here are the defaults for ''new projects'', change settings for the ''current project'' in the [[Hugin Stitcher tab]].<br />
<br />
== Nona == <br />
<br />
Here you can set the '''Default interpolator''' used during stitching. [[Interpolation]] is a quality setting, but the default of '''Poly3 (Bicubic)''' is good for most purposes. You are unlikely to notice any difference between interpolators other than that '''Nearest neighbor''' is fast but very low quality.<br />
<br />
You can '''Create cropped images by default''', these [[Cropped TIFF]] images will speed up stitching, but some image editors do not process the offsets correctly.<br />
<br />
'''Use GPU for remapping''' will activate experimental [[nona]] code to remap images using the shading language of the ''Graphics Processing Unit'' in modern video hardware .<br />
<br />
== Enblend ==<br />
<br />
The '''Use alternative Enblend program''' option allows you to use other tools with a similar interface<br />
such as [[smartblend]] or [[enblend-mask]].<br />
<br />
enblend supports a range of '''Additional arguments''', for example you may want to set:<br />
<br />
* '''-a''' Pre-assemble non-overlapping images to speed up blending. This is generally useful, but will slow blending in rare cases.<br />
* '''-l number''' Number of levels to use (1 to 29), larger numbers result in wider seams. E.g. setting 1 will result in a 2 pixel wide blend, 8 will result in a 256 pixel wide blend and you are extremely unlikely to want a blend level as high as 16.<br />
<!--* '''-z''' Use LZW compression. The [[TIFF]] file format has a 2GiB limit (or 4GiB or 8GiB, depending on who you ask) so you will find this useful for large panoramas.--><br />
* '''-b kilobytes''' Image cache block size (default=2MiB)<br />
* '''-c''' Use CIECAM02 to blend colors. Your input images need to have embedded [[Colour profile|colour profiles]] for this to work.<br />
* '''-m megabytes''' Use this much memory before going to disk (default=1GiB). Increase if you have a lot of memory on your system.<br />
* '''--fine-mask''' Enables detailed mask generation.<br />
* '''--no-optimize''' Turn off mask optimization.<br />
<br />
Note that setting '''Additional arguments''' here will only effect new projects, to change [[enblend]] and [[enfuse]] settings for the current project use the [[hugin Stitcher tab]].<br />
<br />
== Enfuse ==<br />
<br />
If one of '''Exposure fusion'''output options is selected in the [[hugin Stitcher tab]] then [[enfuse]] will be used to merge bracketed exposures during stitching.<br />
<br />
= Celeste =<br />
<br />
Often a project has many control points attached to clouds in the sky, this is usually unwanted as clouds move between photos. [[Using Celeste with hugin|celeste]] will attempt to identify 'sky' control points and delete them. <br />
<br />
{{clr}}<br />
<br />
__NOTOC__<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Stitcher_tab&diff=11898Hugin Stitcher tab2009-10-15T16:49:48Z<p>Aston: deghosting isn't enabled as of 2009.4.0</p>
<hr />
<div>The rest of [[hugin]] is all about setting up the project and aligning images, the '''Stitcher''' tab is where<br />
the final output file is created.<br />
<br />
= Panorama =<br />
<br />
Here you can set the output '''[[Projections|Projection]]''' of your project, there are lots<br />
to choose from, each with different advantages and disadvantages:<br />
<br />
* [[Rectilinear Projection|Rectilinear]], this is the same projection as a photo taken with a 'normal' camera and lens. Use this if you are just stitching a handful of photographs together with a narrow [[Field of View]] or [[Perspective correction|correcting perspective]] in a single shot.<br />
* [[Cylindrical Projection|Cylindrical]], actually a simple [[Cylindrical Projection]] as used by traditional rotating panoramic cameras. A good projection for printing a 360 degree panorama, though you may prefer ''Mercator Projection''.<br />
* [[Equirectangular Projection|Equirectangular]], the all purpose format for representing an entire spherical scene. It covers 360 degrees horizontally as well as the [[zenith]] and [[nadir]].<br />
* [[Fisheye Projection|Fisheye]], the same projection as a photo taken with a ''fisheye lens''. Better for representing a wide [[Field of View]] than ''rectilinear'', but in many cases ''Stereographic Projection'' gives less distortion than simple ''fisheye''.<br />
* [[Stereographic Projection|Stereographic]], a ''conformal'' fisheye image. Objects in a stereographic image keep the same shape and show less distortion than simple ''fisheye''.<br />
* [[Projections#mercator projection|Mercator]], a ''conformal'' cylindrical image. A good projection for printing a 360 degree panorama.<br />
* [[Projections#Transverse mercator projection|Trans Mercator]], a ''mercator'' image rotated 90 degrees, suitable for displaying tall or overhead objects.<br />
* [[Projections#sinusoidal projection|Sinusoidal]], an ''equal area'' projection of an entire spherical scene.<br />
* [[Lambert Equal Area Cylindrical Projection|Lambert Cylindrical Equal Area]]<br />
* [[Lambert Equal Area Azimuthal Projection|Lambert Equal Area Azimuthal]]<br />
* [[Albers Equal Area Conic Projection|Albers Equal Area Conic]]<br />
* [[Miller Cylindrical Projection|Miller Cylindrical]]<br />
* [[Panini]]<br />
* [[Architectural]]<br />
* [[Orthographic]]<br />
* [[Equisolid]]<br />
* [[Equirectangular Panini]]<br />
* [[Biplane]]<br />
* [[Triplane]]<br />
<br />
== Field of View ==<br />
<br />
This is the horizontal and vertical [[Field of View|angle of view]] of the output image,<br />
clicking '''Calculate Field of View''' will shrink or enlarge the field of view of the<br />
output to fit the arrangement of the input images - The '''Fit''' button in the<br />
[[Hugin Preview window]] does the same thing.<br />
<br />
Note that some [[Projections]] have a limited field of view, notably:<br />
<br />
* Rectilinear has to be less than 180 degrees both vertically and horizontally.<br />
* Panoramic (cylindrical) has to be less than 180 degrees vertically.<br />
* Stereographic has to be less than 360 degrees both vertically and horizontally.<br />
* Mercator has to be less than 180 degrees vertically.<br />
* Transverse Mercator has to be less than 180 degrees horizontally.<br />
<br />
== Panorama Canvas Size ==<br />
<br />
Set the '''width''' and '''height''' of your output panorama in pixels. '''Calculate Optimal Size''' will estimate<br />
a size that has about the same resolution as your input images.<br />
<br />
Some examples: a ''three megapixel'' image has pixel dimensions of 2048 x 1536, an A4 print at 300 pixels per inch will<br />
have a pixel size of 3500 x 2480, a ''full screen'' spherical [[Equirectangular Projection]] image will have pixel<br />
dimensions of 6000 x 3000 or greater and a ''gigapixel'' image has a pixel size of 32768 x 32768.<br />
<br />
Note that the [[interpolation]] used by [[hugin]] doesn't handle downsampling very well, so output images smaller<br />
than about half the size of the ''Optimal Size'' will show [[aliasing]] artefacts. If you want to create high quality<br />
small images, it is better to create an ''Optimal Size'' image in hugin and downsize it later in an image editor such as the [[Gimp]].<br />
<br />
== Crop ==<br />
<br />
The crop settings allow just a portion of the panorama to be stitched, there are various reasons to do this:<br />
<br />
* When [[Perspective correction|correcting perspective]] large areas of the panorama output will be empty anyway.<br />
* Large 'gigapixel' style panoramas can be stitched in sections then blended later.<br />
<br />
The cropped-out areas are shown darkened in the [[hugin Preview window]].<br />
<br />
== Output ==<br />
<br />
Hugin can output 'normal' stitched images, [[Exposure fusion|exposure fused]] images or high dynamic range ([[HDR]]) images.<br />
The following options determine which kind of image is created, and allow keeping the intermediate images created during the process.<br />
<br />
=== Normal ===<br />
<br />
If '''Blended panorama''' is enabled then [[enblend]] is used for blending. In the final stitching process [[nona]] reprojects and distorts images to fit, '''enblend''' takes these images as individual [[TIFF]] files and merges them using sophisticated seam positioning and blending. Further '''enblend''' settings can be found in the [[hugin Preferences]].<br />
<br />
Enable '''remapped images''' if you want to keep the intermediate images that '''enblend''' uses as input - For example modifying the [[alpha channel]] of these images and then blending manually is one technique for including and excluding people or objects that move between shots.<br />
<br />
=== Exposure fusion ===<br />
<br />
If '''Fused and blended''' is enabled then hugin will group the input images into exposure stacks by comparing positions, any images with more than 90% overlap are grouped like this. Each of these [[Bracketing|bracketed]] exposure stacks will be [[Exposure fusion|exposure fused]] with [[enfuse]] and the results seam blended together into a panorama with [[enblend]].<br />
<br />
Note that for this to work, the scene has to be photographed multiple times using exposure [[bracketing]] and the EV exposure values set either manually in the [[hugin Camera and Lens tab]], automatically from [[EXIF]] data or by optimising exposure in the [[hugin Assistant tab]] or [[hugin Exposure tab]].<br />
<br />
Note also that unlike '''Normal''' and '''HDR merging''' options where images are exposure corrected as part of the remapping process, enfuse requires that each exposure layer is supplied uncorrected - Hugin takes care of this automatically and will not apply exposure correction in this case.<br />
<br />
If '''Blended and fused''' is enabled then hugin will seam blend images with similar exposure with [[enblend]] and than it will [[Exposure fusion|exposure fuse]] them using [[enfuse]]. This variant is often much more successful than '''Fused and blended''' in two situations:<br />
<br />
* Where entire panoramas have been shot at each EV level consecutively rather than each shot [[Bracketing|bracketed]], in this case it isn't guaranteed that shots will line up into the approximate stacks expected by the '''Fused and blended''' option.<br />
<br />
* When the panorama has been shot entirely on automatic exposure, in this situation it is useful to seam blend adjacent photos with small EV differences, but then exposure fuse larger EV differences - As effectively happens with this option.<br />
<br />
Note that hugin uses a threshold of 0.5EV exposure difference to determine which photos can be fused into each layer.<br />
<br />
Enable '''Blended exposure layers''' to keep exposure layers from the ''Blended and fused'' step, these are useful for manual [[Contrast Blending]].<br />
<br />
Enable '''Remapped images''' to keep the intermediate images supplied to [[enblend]] and [[enfuse]].<br />
<br />
=== HDR merging ===<br />
<br />
If '''Merged and blended panorama''' is enabled then hugin will identify likely [[Bracketing|bracketed]] stacks of images, then create remapped [[HDR]] images which are then blended with [[enblend]].<br />
<br />
Note that like the Exposure fusion option above, this generally only makes sense if the scene has been photographed multiple times using exposure bracketing, and the EV exposure values optimised in the [[hugin Exposure tab]].<br />
<br />
Enable '''Remapped merged stacks''' to keep copies of the remapped HDR images as supplied to enblend.<br />
<br />
Enable '''Remapped images''' to keep copies of each image remapped in linear colour space before merging to HDR.<br />
<br />
Click '''Stitch now!''' to generate output panoramas immediately. Selecting '''Save project and send to batch''' adds the current project to the [[Hugin Batch Processor]] stitching queue, note that the queue won't be processed unless this queue manager is running.<br />
<br />
= Processing =<br />
<br />
[[nona]] is the default '''Remapper''' (stitching engine) supplied with [[hugin]], normally there is no need to<br />
change this or any of the options below.<br />
<br />
Set the '''Interpolator (i)''' to change the sampling [[interpolation]]. You probably won't notice<br />
much difference between the various options except that '''Nearest Neighbour''' is fast but with<br />
very low quality. The default of '''Poly3 (bicubic)''' is generally good for most purposes.<br />
<br />
[[Cropped TIFF]] files are smaller and more efficient because unused parts of the image are not stored in the file. You should<br />
always '''save cropped images''' unless you need to open them in an image editor without [[Cropped TIFF]] support.<br />
<br />
[[enblend]] is the default '''Blender''' for use with [[hugin]], normally there is no need to change this. Additional command-line '''Options''' can be set here or in the [[hugin Preferences]] for new projects.<br />
<br />
[[enfuse]] is the default for [[Exposure fusion]], '''Options''' are similar to [[enblend]].<br />
<br />
== File formats ==<br />
<br />
'''Normal Output''' can be in one several formats:<br />
<br />
* '''[[TIFF]]''', various compression options. [[16bit]] and ''8bit'' depth supported. '''None''' compression is supported by most other applications, '''LZW''' compression is common in Windows/Mac applications and '''Deflate''' compression is more common with Linux tools.<br />
* '''[[JPEG|JPG]]''', lossy compression suitable for web/email. '''Quality''' can vary from ''0'' (extremely low quality, small file size) and ''100'' (high quality, large file size). A typical quality setting for web/email would be between ''70'' and ''80''<br />
* '''[[PNG]]''', lossless compression. [[16bit]] and ''8bit'' depth supported.<br />
<!-- * '''[[OpenEXR|EXR]]''', not sure what use this is doing here (TODO). -- not there as of 0.7.0 --><br />
<br />
::''Note that some versions of enblend doesn't support all output formats; as an example some Linux enblend versions will probably fail unless you choose '''TIFF'''.''<br />
<br />
'''HDR Output''' can be either:<br />
<br />
* ''floating-point'' [[TIFF]], various compression options.<br />
* '''[[OpenEXR|EXR]]''', this is a high dynamic range format which is more compact than a high dynamic range TIFF.<br />
<br />
__NOTOC__<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Stitcher_tab&diff=11897Hugin Stitcher tab2009-10-15T16:46:56Z<p>Aston: /* Exposure fusion */</p>
<hr />
<div>The rest of [[hugin]] is all about setting up the project and aligning images, the '''Stitcher''' tab is where<br />
the final output file is created.<br />
<br />
= Panorama =<br />
<br />
Here you can set the output '''[[Projections|Projection]]''' of your project, there are lots<br />
to choose from, each with different advantages and disadvantages:<br />
<br />
* [[Rectilinear Projection|Rectilinear]], this is the same projection as a photo taken with a 'normal' camera and lens. Use this if you are just stitching a handful of photographs together with a narrow [[Field of View]] or [[Perspective correction|correcting perspective]] in a single shot.<br />
* [[Cylindrical Projection|Cylindrical]], actually a simple [[Cylindrical Projection]] as used by traditional rotating panoramic cameras. A good projection for printing a 360 degree panorama, though you may prefer ''Mercator Projection''.<br />
* [[Equirectangular Projection|Equirectangular]], the all purpose format for representing an entire spherical scene. It covers 360 degrees horizontally as well as the [[zenith]] and [[nadir]].<br />
* [[Fisheye Projection|Fisheye]], the same projection as a photo taken with a ''fisheye lens''. Better for representing a wide [[Field of View]] than ''rectilinear'', but in many cases ''Stereographic Projection'' gives less distortion than simple ''fisheye''.<br />
* [[Stereographic Projection|Stereographic]], a ''conformal'' fisheye image. Objects in a stereographic image keep the same shape and show less distortion than simple ''fisheye''.<br />
* [[Projections#mercator projection|Mercator]], a ''conformal'' cylindrical image. A good projection for printing a 360 degree panorama.<br />
* [[Projections#Transverse mercator projection|Trans Mercator]], a ''mercator'' image rotated 90 degrees, suitable for displaying tall or overhead objects.<br />
* [[Projections#sinusoidal projection|Sinusoidal]], an ''equal area'' projection of an entire spherical scene.<br />
* [[Lambert Equal Area Cylindrical Projection|Lambert Cylindrical Equal Area]]<br />
* [[Lambert Equal Area Azimuthal Projection|Lambert Equal Area Azimuthal]]<br />
* [[Albers Equal Area Conic Projection|Albers Equal Area Conic]]<br />
* [[Miller Cylindrical Projection|Miller Cylindrical]]<br />
* [[Panini]]<br />
* [[Architectural]]<br />
* [[Orthographic]]<br />
* [[Equisolid]]<br />
* [[Equirectangular Panini]]<br />
* [[Biplane]]<br />
* [[Triplane]]<br />
<br />
== Field of View ==<br />
<br />
This is the horizontal and vertical [[Field of View|angle of view]] of the output image,<br />
clicking '''Calculate Field of View''' will shrink or enlarge the field of view of the<br />
output to fit the arrangement of the input images - The '''Fit''' button in the<br />
[[Hugin Preview window]] does the same thing.<br />
<br />
Note that some [[Projections]] have a limited field of view, notably:<br />
<br />
* Rectilinear has to be less than 180 degrees both vertically and horizontally.<br />
* Panoramic (cylindrical) has to be less than 180 degrees vertically.<br />
* Stereographic has to be less than 360 degrees both vertically and horizontally.<br />
* Mercator has to be less than 180 degrees vertically.<br />
* Transverse Mercator has to be less than 180 degrees horizontally.<br />
<br />
== Panorama Canvas Size ==<br />
<br />
Set the '''width''' and '''height''' of your output panorama in pixels. '''Calculate Optimal Size''' will estimate<br />
a size that has about the same resolution as your input images.<br />
<br />
Some examples: a ''three megapixel'' image has pixel dimensions of 2048 x 1536, an A4 print at 300 pixels per inch will<br />
have a pixel size of 3500 x 2480, a ''full screen'' spherical [[Equirectangular Projection]] image will have pixel<br />
dimensions of 6000 x 3000 or greater and a ''gigapixel'' image has a pixel size of 32768 x 32768.<br />
<br />
Note that the [[interpolation]] used by [[hugin]] doesn't handle downsampling very well, so output images smaller<br />
than about half the size of the ''Optimal Size'' will show [[aliasing]] artefacts. If you want to create high quality<br />
small images, it is better to create an ''Optimal Size'' image in hugin and downsize it later in an image editor such as the [[Gimp]].<br />
<br />
== Crop ==<br />
<br />
The crop settings allow just a portion of the panorama to be stitched, there are various reasons to do this:<br />
<br />
* When [[Perspective correction|correcting perspective]] large areas of the panorama output will be empty anyway.<br />
* Large 'gigapixel' style panoramas can be stitched in sections then blended later.<br />
<br />
The cropped-out areas are shown darkened in the [[hugin Preview window]].<br />
<br />
== Output ==<br />
<br />
Hugin can output 'normal' stitched images, [[Exposure fusion|exposure fused]] images or high dynamic range ([[HDR]]) images.<br />
The following options determine which kind of image is created, and allow keeping the intermediate images created during the process.<br />
<br />
=== Normal ===<br />
<br />
If '''Blended panorama''' is enabled then [[enblend]] is used for blending. In the final stitching process [[nona]] reprojects and distorts images to fit, '''enblend''' takes these images as individual [[TIFF]] files and merges them using sophisticated seam positioning and blending. Further '''enblend''' settings can be found in the [[hugin Preferences]].<br />
<br />
Enable '''remapped images''' if you want to keep the intermediate images that '''enblend''' uses as input - For example modifying the [[alpha channel]] of these images and then blending manually is one technique for including and excluding people or objects that move between shots.<br />
<br />
=== Exposure fusion ===<br />
<br />
If '''Fused and blended''' is enabled then hugin will group the input images into exposure stacks by comparing positions, any images with more than 90% overlap are grouped like this. Each of these [[Bracketing|bracketed]] exposure stacks will be [[Exposure fusion|exposure fused]] with [[enfuse]] and the results seam blended together into a panorama with [[enblend]].<br />
<br />
Note that for this to work, the scene has to be photographed multiple times using exposure [[bracketing]] and the EV exposure values set either manually in the [[hugin Camera and Lens tab]], automatically from [[EXIF]] data or by optimising exposure in the [[hugin Assistant tab]] or [[hugin Exposure tab]].<br />
<br />
Note also that unlike '''Normal''' and '''HDR merging''' options where images are exposure corrected as part of the remapping process, enfuse requires that each exposure layer is supplied uncorrected - Hugin takes care of this automatically and will not apply exposure correction in this case.<br />
<br />
If '''Blended and fused''' is enabled then hugin will seam blend images with similar exposure with [[enblend]] and than it will [[Exposure fusion|exposure fuse]] them using [[enfuse]]. This variant is often much more successful than '''Fused and blended''' in two situations:<br />
<br />
* Where entire panoramas have been shot at each EV level consecutively rather than each shot [[Bracketing|bracketed]], in this case it isn't guaranteed that shots will line up into the approximate stacks expected by the '''Fused and blended''' option.<br />
<br />
* When the panorama has been shot entirely on automatic exposure, in this situation it is useful to seam blend adjacent photos with small EV differences, but then exposure fuse larger EV differences - As effectively happens with this option.<br />
<br />
Note that hugin uses a threshold of 0.5EV exposure difference to determine which photos can be fused into each layer.<br />
<br />
Enable '''Blended exposure layers''' to keep exposure layers from the ''Blended and fused'' step, these are useful for manual [[Contrast Blending]].<br />
<br />
Enable '''Remapped images''' to keep the intermediate images supplied to [[enblend]] and [[enfuse]].<br />
<br />
=== HDR merging ===<br />
<br />
If '''Merged and blended panorama''' is enabled then hugin will identify likely [[Bracketing|bracketed]] stacks of images, then create remapped, deghosted HDR images which are then blended with [[enblend]].<br />
<br />
Note that like the Exposure fusion option above, this generally only makes sense if the scene has been photographed multiple times using exposure bracketing, and the EV exposure values optimised in the [[hugin Exposure tab]].<br />
<br />
Enable '''Remapped merged stacks''' to keep copies of the remapped HDR images as supplied to enblend.<br />
<br />
Enable '''Remapped images''' to keep copies of each image remapped in linear colour space before deghosting and merging to HDR.<br />
<br />
Click '''Stitch now!''' to generate output panoramas immediately. Selecting '''Save project and send to batch''' adds the current project to the [[Hugin Batch Processor]] stitching queue, note that the queue won't be processed unless this queue manager is running.<br />
<br />
= Processing =<br />
<br />
[[nona]] is the default '''Remapper''' (stitching engine) supplied with [[hugin]], normally there is no need to<br />
change this or any of the options below.<br />
<br />
Set the '''Interpolator (i)''' to change the sampling [[interpolation]]. You probably won't notice<br />
much difference between the various options except that '''Nearest Neighbour''' is fast but with<br />
very low quality. The default of '''Poly3 (bicubic)''' is generally good for most purposes.<br />
<br />
[[Cropped TIFF]] files are smaller and more efficient because unused parts of the image are not stored in the file. You should<br />
always '''save cropped images''' unless you need to open them in an image editor without [[Cropped TIFF]] support.<br />
<br />
[[enblend]] is the default '''Blender''' for use with [[hugin]], normally there is no need to change this. Additional command-line '''Options''' can be set here or in the [[hugin Preferences]] for new projects.<br />
<br />
[[enfuse]] is the default for [[Exposure fusion]], '''Options''' are similar to [[enblend]].<br />
<br />
== File formats ==<br />
<br />
'''Normal Output''' can be in one several formats:<br />
<br />
* '''[[TIFF]]''', various compression options. [[16bit]] and ''8bit'' depth supported. '''None''' compression is supported by most other applications, '''LZW''' compression is common in Windows/Mac applications and '''Deflate''' compression is more common with Linux tools.<br />
* '''[[JPEG|JPG]]''', lossy compression suitable for web/email. '''Quality''' can vary from ''0'' (extremely low quality, small file size) and ''100'' (high quality, large file size). A typical quality setting for web/email would be between ''70'' and ''80''<br />
* '''[[PNG]]''', lossless compression. [[16bit]] and ''8bit'' depth supported.<br />
<!-- * '''[[OpenEXR|EXR]]''', not sure what use this is doing here (TODO). -- not there as of 0.7.0 --><br />
<br />
::''Note that some versions of enblend doesn't support all output formats; as an example some Linux enblend versions will probably fail unless you choose '''TIFF'''.''<br />
<br />
'''HDR Output''' can be either:<br />
<br />
* ''floating-point'' [[TIFF]], various compression options.<br />
* '''[[OpenEXR|EXR]]''', this is a high dynamic range format which is more compact than a high dynamic range TIFF.<br />
<br />
__NOTOC__<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Stitcher_tab&diff=11896Hugin Stitcher tab2009-10-15T16:34:43Z<p>Aston: typos</p>
<hr />
<div>The rest of [[hugin]] is all about setting up the project and aligning images, the '''Stitcher''' tab is where<br />
the final output file is created.<br />
<br />
= Panorama =<br />
<br />
Here you can set the output '''[[Projections|Projection]]''' of your project, there are lots<br />
to choose from, each with different advantages and disadvantages:<br />
<br />
* [[Rectilinear Projection|Rectilinear]], this is the same projection as a photo taken with a 'normal' camera and lens. Use this if you are just stitching a handful of photographs together with a narrow [[Field of View]] or [[Perspective correction|correcting perspective]] in a single shot.<br />
* [[Cylindrical Projection|Cylindrical]], actually a simple [[Cylindrical Projection]] as used by traditional rotating panoramic cameras. A good projection for printing a 360 degree panorama, though you may prefer ''Mercator Projection''.<br />
* [[Equirectangular Projection|Equirectangular]], the all purpose format for representing an entire spherical scene. It covers 360 degrees horizontally as well as the [[zenith]] and [[nadir]].<br />
* [[Fisheye Projection|Fisheye]], the same projection as a photo taken with a ''fisheye lens''. Better for representing a wide [[Field of View]] than ''rectilinear'', but in many cases ''Stereographic Projection'' gives less distortion than simple ''fisheye''.<br />
* [[Stereographic Projection|Stereographic]], a ''conformal'' fisheye image. Objects in a stereographic image keep the same shape and show less distortion than simple ''fisheye''.<br />
* [[Projections#mercator projection|Mercator]], a ''conformal'' cylindrical image. A good projection for printing a 360 degree panorama.<br />
* [[Projections#Transverse mercator projection|Trans Mercator]], a ''mercator'' image rotated 90 degrees, suitable for displaying tall or overhead objects.<br />
* [[Projections#sinusoidal projection|Sinusoidal]], an ''equal area'' projection of an entire spherical scene.<br />
* [[Lambert Equal Area Cylindrical Projection|Lambert Cylindrical Equal Area]]<br />
* [[Lambert Equal Area Azimuthal Projection|Lambert Equal Area Azimuthal]]<br />
* [[Albers Equal Area Conic Projection|Albers Equal Area Conic]]<br />
* [[Miller Cylindrical Projection|Miller Cylindrical]]<br />
* [[Panini]]<br />
* [[Architectural]]<br />
* [[Orthographic]]<br />
* [[Equisolid]]<br />
* [[Equirectangular Panini]]<br />
* [[Biplane]]<br />
* [[Triplane]]<br />
<br />
== Field of View ==<br />
<br />
This is the horizontal and vertical [[Field of View|angle of view]] of the output image,<br />
clicking '''Calculate Field of View''' will shrink or enlarge the field of view of the<br />
output to fit the arrangement of the input images - The '''Fit''' button in the<br />
[[Hugin Preview window]] does the same thing.<br />
<br />
Note that some [[Projections]] have a limited field of view, notably:<br />
<br />
* Rectilinear has to be less than 180 degrees both vertically and horizontally.<br />
* Panoramic (cylindrical) has to be less than 180 degrees vertically.<br />
* Stereographic has to be less than 360 degrees both vertically and horizontally.<br />
* Mercator has to be less than 180 degrees vertically.<br />
* Transverse Mercator has to be less than 180 degrees horizontally.<br />
<br />
== Panorama Canvas Size ==<br />
<br />
Set the '''width''' and '''height''' of your output panorama in pixels. '''Calculate Optimal Size''' will estimate<br />
a size that has about the same resolution as your input images.<br />
<br />
Some examples: a ''three megapixel'' image has pixel dimensions of 2048 x 1536, an A4 print at 300 pixels per inch will<br />
have a pixel size of 3500 x 2480, a ''full screen'' spherical [[Equirectangular Projection]] image will have pixel<br />
dimensions of 6000 x 3000 or greater and a ''gigapixel'' image has a pixel size of 32768 x 32768.<br />
<br />
Note that the [[interpolation]] used by [[hugin]] doesn't handle downsampling very well, so output images smaller<br />
than about half the size of the ''Optimal Size'' will show [[aliasing]] artefacts. If you want to create high quality<br />
small images, it is better to create an ''Optimal Size'' image in hugin and downsize it later in an image editor such as the [[Gimp]].<br />
<br />
== Crop ==<br />
<br />
The crop settings allow just a portion of the panorama to be stitched, there are various reasons to do this:<br />
<br />
* When [[Perspective correction|correcting perspective]] large areas of the panorama output will be empty anyway.<br />
* Large 'gigapixel' style panoramas can be stitched in sections then blended later.<br />
<br />
The cropped-out areas are shown darkened in the [[hugin Preview window]].<br />
<br />
== Output ==<br />
<br />
Hugin can output 'normal' stitched images, [[Exposure fusion|exposure fused]] images or high dynamic range ([[HDR]]) images.<br />
The following options determine which kind of image is created, and allow keeping the intermediate images created during the process.<br />
<br />
=== Normal ===<br />
<br />
If '''Blended panorama''' is enabled then [[enblend]] is used for blending. In the final stitching process [[nona]] reprojects and distorts images to fit, '''enblend''' takes these images as individual [[TIFF]] files and merges them using sophisticated seam positioning and blending. Further '''enblend''' settings can be found in the [[hugin Preferences]].<br />
<br />
Enable '''remapped images''' if you want to keep the intermediate images that '''enblend''' uses as input - For example modifying the [[alpha channel]] of these images and then blending manually is one technique for including and excluding people or objects that move between shots.<br />
<br />
=== Exposure fusion ===<br />
<br />
If '''Fused and blended''' is enabled then hugin will group the input images into exposure stacks by comparing positions, any images with more than 90% overlap are grouped like this. Each of these [[Bracketing|bracketed]] exposure stacks will be [[Exposure fusion|exposure fused]] with [[enfuse]] and the results stitched together into a panorama with [[enblend]].<br />
<br />
Note that for this to work, the scene has to be photographed multiple times using exposure [[bracketing]] and the EV exposure values set either manually in the [[hugin Camera and Lens tab]], automatically from [[EXIF]] data or by optimising exposure in the [[hugin Assistant tab]] or [[hugin Exposure tab]].<br />
<br />
Note also that unlike '''Normal''' and '''HDR merging''' options where images are exposure corrected as part of the remapping process, enfuse requires that each exposure layer is supplied uncorrected - Hugin takes care of this automatically and will not apply correction in this case.<br />
<br />
If '''Blended and fused''' is enabled then hugin will blend images with similar exposure with [[enblend]] and than it will [[Exposure fusion|exposure fuse]] them using [[enfuse]]. This variant is often much more successful than previous in hand-held bracketed panoramas stitching.<br />
<br />
Enable '''Blended exposure layers''' to keep a exposure layers from ''Blended and fused'' step. It's useful for manual [[Contrast Blending]]. Note that hugin simply blends any photos with less then 0.2EV exposure difference together into each layer.<br />
<br />
Enable '''Remapped images''' to keep the intermediate images supplied to [[enblend]] and [[enfuse]].<br />
<br />
=== HDR merging ===<br />
<br />
If '''Merged and blended panorama''' is enabled then hugin will identify likely [[Bracketing|bracketed]] stacks of images, then create remapped, deghosted HDR images which are then blended with [[enblend]].<br />
<br />
Note that like the Exposure fusion option above, this generally only makes sense if the scene has been photographed multiple times using exposure bracketing, and the EV exposure values optimised in the [[hugin Exposure tab]].<br />
<br />
Enable '''Remapped merged stacks''' to keep copies of the remapped HDR images as supplied to enblend.<br />
<br />
Enable '''Remapped images''' to keep copies of each image remapped in linear colour space before deghosting and merging to HDR.<br />
<br />
Click '''Stitch now!''' to generate output panoramas immediately. Selecting '''Save project and send to batch''' adds the current project to the [[Hugin Batch Processor]] stitching queue, note that the queue won't be processed unless this queue manager is running.<br />
<br />
= Processing =<br />
<br />
[[nona]] is the default '''Remapper''' (stitching engine) supplied with [[hugin]], normally there is no need to<br />
change this or any of the options below.<br />
<br />
Set the '''Interpolator (i)''' to change the sampling [[interpolation]]. You probably won't notice<br />
much difference between the various options except that '''Nearest Neighbour''' is fast but with<br />
very low quality. The default of '''Poly3 (bicubic)''' is generally good for most purposes.<br />
<br />
[[Cropped TIFF]] files are smaller and more efficient because unused parts of the image are not stored in the file. You should<br />
always '''save cropped images''' unless you need to open them in an image editor without [[Cropped TIFF]] support.<br />
<br />
[[enblend]] is the default '''Blender''' for use with [[hugin]], normally there is no need to change this. Additional command-line '''Options''' can be set here or in the [[hugin Preferences]] for new projects.<br />
<br />
[[enfuse]] is the default for [[Exposure fusion]], '''Options''' are similar to [[enblend]].<br />
<br />
== File formats ==<br />
<br />
'''Normal Output''' can be in one several formats:<br />
<br />
* '''[[TIFF]]''', various compression options. [[16bit]] and ''8bit'' depth supported. '''None''' compression is supported by most other applications, '''LZW''' compression is common in Windows/Mac applications and '''Deflate''' compression is more common with Linux tools.<br />
* '''[[JPEG|JPG]]''', lossy compression suitable for web/email. '''Quality''' can vary from ''0'' (extremely low quality, small file size) and ''100'' (high quality, large file size). A typical quality setting for web/email would be between ''70'' and ''80''<br />
* '''[[PNG]]''', lossless compression. [[16bit]] and ''8bit'' depth supported.<br />
<!-- * '''[[OpenEXR|EXR]]''', not sure what use this is doing here (TODO). -- not there as of 0.7.0 --><br />
<br />
::''Note that some versions of enblend doesn't support all output formats; as an example some Linux enblend versions will probably fail unless you choose '''TIFF'''.''<br />
<br />
'''HDR Output''' can be either:<br />
<br />
* ''floating-point'' [[TIFF]], various compression options.<br />
* '''[[OpenEXR|EXR]]''', this is a high dynamic range format which is more compact than a high dynamic range TIFF.<br />
<br />
__NOTOC__<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Stitcher_tab&diff=11895Hugin Stitcher tab2009-10-15T16:33:41Z<p>Aston: Use Exposure Fusion consistently</p>
<hr />
<div>The rest of [[hugin]] is all about setting up the project and aligning images, the '''Stitcher''' tab is where<br />
the final output file is created.<br />
<br />
= Panorama =<br />
<br />
Here you can set the output '''[[Projections|Projection]]''' of your project, there are lots<br />
to choose from, each with different advantages and disadvantages:<br />
<br />
* [[Rectilinear Projection|Rectilinear]], this is the same projection as a photo taken with a 'normal' camera and lens. Use this if you are just stitching a handful of photographs together with a narrow [[Field of View]] or [[Perspective correction|correcting perspective]] in a single shot.<br />
* [[Cylindrical Projection|Cylindrical]], actually a simple [[Cylindrical Projection]] as used by traditional rotating panoramic cameras. A good projection for printing a 360 degree panorama, though you may prefer ''Mercator Projection''.<br />
* [[Equirectangular Projection|Equirectangular]], the all purpose format for representing an entire spherical scene. It covers 360 degrees horizontally as well as the [[zenith]] and [[nadir]].<br />
* [[Fisheye Projection|Fisheye]], the same projection as a photo taken with a ''fisheye lens''. Better for representing a wide [[Field of View]] than ''rectilinear'', but in many cases ''Stereographic Projection'' gives less distortion than simple ''fisheye''.<br />
* [[Stereographic Projection|Stereographic]], a ''conformal'' fisheye image. Objects in a stereographic image keep the same shape and show less distortion than simple ''fisheye''.<br />
* [[Projections#mercator projection|Mercator]], a ''conformal'' cylindrical image. A good projection for printing a 360 degree panorama.<br />
* [[Projections#Transverse mercator projection|Trans Mercator]], a ''mercator'' image rotated 90 degrees, suitable for displaying tall or overhead objects.<br />
* [[Projections#sinusoidal projection|Sinusoidal]], an ''equal area'' projection of an entire spherical scene.<br />
* [[Lambert Equal Area Cylindrical Projection|Lambert Cylindrical Equal Area]]<br />
* [[Lambert Equal Area Azimuthal Projection|Lambert Equal Area Azimuthal]]<br />
* [[Albers Equal Area Conic Projection|Albers Equal Area Conic]]<br />
* [[Miller Cylindrical Projection|Miller Cylindrical]]<br />
* [[Panini]]<br />
* [[Architectural]]<br />
* [[Orthographic]]<br />
* [[Equisolid]]<br />
* [[Equirectangular Panini]]<br />
* [[Biplane]]<br />
* [[Triplane]]<br />
<br />
== Field of View ==<br />
<br />
This is the horizontal and vertical [[Field of View|angle of view]] of the output image,<br />
clicking '''Calculate Field of View''' will shrink or enlarge the field of view of the<br />
output to fit the arrangement of the input images - The '''Fit''' button in the<br />
[[Hugin Preview window]] does the same thing.<br />
<br />
Note that some [[Projections]] have a limited field of view, notably:<br />
<br />
* Rectilinear has to be less than 180 degrees both vertically and horizontally.<br />
* Panoramic (cylindrical) has to be less than 180 degrees vertically.<br />
* Stereographic has to be less than 360 degrees both vertically and horizontally.<br />
* Mercator has to be less than 180 degrees vertically.<br />
* Transverse Mercator has to be less than 180 degrees horizontally.<br />
<br />
== Panorama Canvas Size ==<br />
<br />
Set the '''width''' and '''height''' of your output panorama in pixels. '''Calculate Optimal Size''' will estimate<br />
a size that has about the same resolution as your input images.<br />
<br />
Some examples: a ''three megapixel'' image has pixel dimensions of 2048 x 1536, an A4 print at 300 pixels per inch will<br />
have a pixel size of 3500 x 2480, a ''full screen'' spherical [[Equirectangular Projection]] image will have pixel<br />
dimensions of 6000 x 3000 or greater and a ''gigapixel'' image has a pixel size of 32768 x 32768.<br />
<br />
Note that the [[interpolation]] used by [[hugin]] doesn't handle downsampling very well, so output images smaller<br />
than about half the size of the ''Optimal Size'' will show [[aliasing]] artefacts. If you want to create high quality<br />
small images, it is better to create an ''Optimal Size'' image in hugin and downsize it later in an image editor such as the [[Gimp]].<br />
<br />
== Crop ==<br />
<br />
The crop settings allow just a portion of the panorama to be stitched, there are various reasons to do this:<br />
<br />
* When [[Perspective correction|correcting perspective]] large areas of the panorama output will be empty anyway.<br />
* Large 'gigapixel' style panoramas can be stitched in sections then blended later.<br />
<br />
The cropped-out areas are shown darkened in the [[hugin Preview window]].<br />
<br />
== Output ==<br />
<br />
Hugin can output 'normal' stitched images, [[Exposure fusion|exposure fused]] images or high dynamic range ([[HDR]]) images.<br />
The following options determine which kind of image is created, and allow keeping the intermediate images created during the process.<br />
<br />
=== Normal ===<br />
<br />
If '''Blended panorama''' is enabled then [[enblend]] is used for blending. In the final stitching process [[nona]] reprojects and distorts images to fit, '''enblend''' takes these images as individual [[TIFF]] files and merges them using sophisticated seam positioning and blending. Further '''enblend''' settings can be found in the [[hugin Preferences]].<br />
<br />
Enable '''remapped images''' if you want to keep the intermediate images that '''enblend''' uses as input - For example modifying the [[alpha channel]] of these images and then blending manually is one technique for including and excluding people or objects that move between shots.<br />
<br />
=== Exposure fusion ===<br />
<br />
If '''Fused and blended''' is enabled then hugin will group the input images into exposure stacks by comparing positions, any images with more than 90% overlap are grouped like this. Each of these [[Bracketing|bracketed]] exposure stacks will be [[Exposure fusion|exposure fused]] with [[enfuse]] and the results stitched together into a panorama with [[enblend]].<br />
<br />
Note that for this to work, the scene has to be photographed multiple times using exposure [[bracketing]] and the EV exposure values set either manually in the [[hugin Camera and Lens tab]], automatically from [[EXIF]] data or by optimising exposure in the [[hugin Assistant tab]] or [[hugin Exposure tab]].<br />
<br />
Note also that unlike '''Normal''' and '''HDR merging''' options where images are exposure corrected as part of the remapping process, enfuse requires that each exposure layer is supplied uncorrected - Hugin takes care of this automatically and will not apply correction in this case.<br />
<br />
If '''Blended and fused''' is enabled then hugin will blend images with similar exposure with [[enblend]] and than it will [[Exposure fusion|exposure fuse]] them using [[enfuse]]. This variant is often much more succesful than previous in handhel bracketed panoramas stitching.<br />
<br />
Enable '''Blended exposure layers''' to keep a exposure layers from ''Blended and fused'' step. It's useful for manual [[Contrast Blending]]. Note that hugin simply blends any photos with less then 0.2EV exposure difference together into each layer.<br />
<br />
Enable '''Remapped images''' to keep the intermediate images supplied to [[enblend]] and [[enfuse]].<br />
<br />
=== HDR merging ===<br />
<br />
If '''Merged and blended panorama''' is enabled then hugin will identify likely [[Bracketing|bracketed]] stacks of images, then create remapped, deghosted HDR images which are then blended with [[enblend]].<br />
<br />
Note that like the Exposure fusion option above, this generally only makes sense if the scene has been photographed multiple times using exposure bracketing, and the EV exposure values optimised in the [[hugin Exposure tab]].<br />
<br />
Enable '''Remapped merged stacks''' to keep copies of the remapped HDR images as supplied to enblend.<br />
<br />
Enable '''Remapped images''' to keep copies of each image remapped in linear colour space before deghosting and merging to HDR.<br />
<br />
Click '''Stitch now!''' to generate output panoramas immediately. Selecting '''Save project and send to batch''' adds the current project to the [[Hugin Batch Processor]] stitching queue, note that the queue won't be processed unless this queue manager is running.<br />
<br />
= Processing =<br />
<br />
[[nona]] is the default '''Remapper''' (stitching engine) supplied with [[hugin]], normally there is no need to<br />
change this or any of the options below.<br />
<br />
Set the '''Interpolator (i)''' to change the sampling [[interpolation]]. You probably won't notice<br />
much difference between the various options except that '''Nearest Neighbour''' is fast but with<br />
very low quality. The default of '''Poly3 (bicubic)''' is generally good for most purposes.<br />
<br />
[[Cropped TIFF]] files are smaller and more efficient because unused parts of the image are not stored in the file. You should<br />
always '''save cropped images''' unless you need to open them in an image editor without [[Cropped TIFF]] support.<br />
<br />
[[enblend]] is the default '''Blender''' for use with [[hugin]], normally there is no need to change this. Additional command-line '''Options''' can be set here or in the [[hugin Preferences]] for new projects.<br />
<br />
[[enfuse]] is the default for [[Exposure fusion]], '''Options''' are similar to [[enblend]].<br />
<br />
== File formats ==<br />
<br />
'''Normal Output''' can be in one several formats:<br />
<br />
* '''[[TIFF]]''', various compression options. [[16bit]] and ''8bit'' depth supported. '''None''' compression is supported by most other applications, '''LZW''' compression is common in Windows/Mac applications and '''Deflate''' compression is more common with Linux tools.<br />
* '''[[JPEG|JPG]]''', lossy compression suitable for web/email. '''Quality''' can vary from ''0'' (extremely low quality, small file size) and ''100'' (high quality, large file size). A typical quality setting for web/email would be between ''70'' and ''80''<br />
* '''[[PNG]]''', lossless compression. [[16bit]] and ''8bit'' depth supported.<br />
<!-- * '''[[OpenEXR|EXR]]''', not sure what use this is doing here (TODO). -- not there as of 0.7.0 --><br />
<br />
::''Note that some versions of enblend doesn't support all output formats; as an example some Linux enblend versions will probably fail unless you choose '''TIFF'''.''<br />
<br />
'''HDR Output''' can be either:<br />
<br />
* ''floating-point'' [[TIFF]], various compression options.<br />
* '''[[OpenEXR|EXR]]''', this is a high dynamic range format which is more compact than a high dynamic range TIFF.<br />
<br />
__NOTOC__<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Fast_Preview_window&diff=11894Hugin Fast Preview window2009-10-15T16:18:56Z<p>Aston: Note colours of lines</p>
<hr />
<div>'''NOTE''' This feature is new in the official 0.8.0 release. It was introduced after the previous (0.7.0) release. See hugin [http://hugin.sourceforge.net/releases/0.8.0/en.shtml release notes].<br />
<br />
Like the more accurate [[Hugin Preview window]], the fast preview shows something similar to the final stitched output, but with a few important differences:<br />
* Reduced resolution input images are used, so some areas can appear blurred that will be sharp in the final output.<br />
* Seams are not created, images are simply overlaid with the first image at the bottom of the stack and the last at the top.<br />
* Blending by a tool such as [[enblend]] isn't shown.<br />
* The brightness display of [[HDR]] and 16bit images is controlled by settings in the hugin Preferences, these settings are not used when stitching. The colouring of these images will also be inaccurate when using exposure or white balance correction. For HDR panoramas, the [[Hugin Preview window]] is recommended instead.<br />
* Photometric correction only includes white balance and exposure, unless full photometric correction is enabled with the the Photometrics button.<br />
* The remappings are approximate, the output by a tool such as [[nona]] is more accurate. If this concerns you more than speed, use the [[Hugin Preview window]] instead.<br />
* It's much faster ;-)<br />
hugin<br />
==Buttons==<br />
Any button appearing in both preview windows works the same, see [[Hugin Preview window]] for how to use them. The buttons specific to the fast preview are explained below.<br />
<br />
===[[Image:Fast_preview_icon_photometric.svg]] Photometrics===<br />
Enables full photometric correction. When turned on, this will cause significant delay when changing photometric parameters. It also takes a while to turn on and off. However, with it enabled you get much better representation of the colours in the output. With it turned off, you get correction only for exposure and white balance. With it turned on, you also get vignetting and colour response correction. The [[Hugin Preview window]] does all these things by default, so you may wish to use that instead.<br />
<br />
===[[Image:Fast_preview_icon_drag.svg]] Drag===<br />
Using this tool you can recentre the panorama interactively. With it turned on, try the following:<br />
* Drag the panorama with the left mouse button to rotate the panorama's images. The centre of rotation is the point where you pushed the mouse button down.<br />
* Hold shift when doing the above to constrain movement to yaw or pitch. Note pitch is affected by the centre of rotation.<br />
* Drag the panorama with the right mouse button or hold control and drag with the left to roll the panorama (rotate around the middle)<br />
<br />
If the panorama contains unconnected components, they will move individually.<br />
<br />
Press the button again to turn it off.<br />
<br />
===[[Image:Fast_preview_icon_crop.svg]] Crop===<br />
Using this tool you can set the output cropping region interactively. To do this precisely instead, use the [[Hugin Stitcher tab| Stitcher tab]]. Initially, the entire panorama is in the output region (i.e. nothing is cropped).<br />
<br />
To change the cropping at each edge, move the mouse towards that edge until a white box appears along it, then drag with the left mouse button until the edge is where you want it. The darker areas represent the region that is cropped off. You can move two edges at once by moving the mouse towards the corner shared by the edges until both white boxes appear. If you wish to move the whole region at once, move the mouse into the middle so that all four edges have boxes along them and drag.<br />
<br />
Press the button again to turn it off.<br />
<br />
===[[Image:Fast_preview_icon_identify.svg]] Identify===<br />
Using this tool you can find where your images are, and match them to their number. You can also edit control points.<br />
<br />
When this tool is turned on, move the mouse over the visibility buttons for the images (the numbers at the top of the preview). The image with the number on the button under the mouse lights up red in the preview. Moving the mouse over the panorama highlights all the images under the mouse in different colours. The buttons for those images lights up in matching colours.<br />
<br />
When the mouse is on the overlap of two images, click to edit the control points between those images.<br />
<br />
===[[Image:Show_Control_Points_Button.svg]] Show control points===<br />
When this mode is turned on, all [[Control points]] are drawn as lines; red indicates 'normal' control points and blue indicates [[horizontal control points]], [[vertical control points]] or [[straight line control points]].<br />
<br />
Long red lines indicate a bad alignment or unoptimized images, short red lines or 'dots' indicate a good alignment between control points. Horizontal and vertical control points should be perpendicular in the panorama.<br />
<br />
==Blend modes==<br />
The ''normal'' blend mode will draw the images as a stack. The ''difference'' blend mode will do the same, except the image under the mouse pointer will be subtracted from the rest of the stack. Use this to determine if the alignment went well: where you can see edges in the subtracted image, these edges are misaligned. Be warned that this isn't fully accurate, the other preview has a better difference mode.<br />
<br />
==In practice==<br />
[[Image:Fast_preview_guide_start.png | thumb | A panorama with unconnected image groups after optimisation.]]<br />
Let's try using this preview to help with a panorama where automatic alignment failed. This panorama was taken where a lot of things were blowing around in the wind, and the clouds were changing quickly, so it is not surprising that it aligning it is a struggle. The [[Hugin Assistant tab|Assistant tab]] tells us there are multiple unconnected image groups. We can optimise the panorama and end up with a images correctly positioned amongst the group they are in, but the groups themselves are not aligned. Try this first. <br />
<br />
[[Image:Fast_preview_guide_drag.png | thumb | Dragging images with the drag tool.]]<br />
Using the Drag tool, we can roughly align the groups together:<br />
# Turn on the tool with the ''Drag'' button.<br />
# Drag each component so the horizon is in the middle, using the left mouse button.<br />
# Drag with the right mouse button (or hold control and drag with the left) to level the horizon.[[Image:Fast_preview_guide_rotate_drag.png | thumb | Rotating images with the drag tool.]]<br />
# Hold shift and drag with the left mouse button sideways to approximately line up the image with the other groups.<br />
<br />
[[Image:Fast_preview_guide_identify.png | thumb | Two images highlighted in the preview window.]]<br />
When we have the images in approximately the right position, we can begin placing control points to guide the optimiser. The Identify tool lends a hand here. Firstly, turn on the identify tool. Move the mouse on an overlap that was recently created between two image groups. The images in the overlap light up. Move the mouse to a place where there is only two images in that overlap, and click. The two images are opened in the [[Hugin Control Points tab|control point editor]] (there may be a short pause while the images are loaded). Once you have placed control points manually, you can return to the preview to find some more image pairs.<br />
<br />
[[Image:Fast_preview_guide_crop.png | thumb | Adjusting the cropping region.]]<br />
When you are happy that your panorama contains sufficient control points, optimise it again. The panorama will likely have the horizon at the wrong angle, in this case press ''Straighten'' on the preview window. You can then frame the panorama using the drag tool (hold shift so you don't make it wonky again!). Use your artistic judgement here. If you want to crop your panorama, click ''Crop'' and drag the edges of the cropping rectangle.<br />
<br />
[[Category:Software:Hugin]]<br />
[[Category:Tutorial:Nice to know]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_FAQ&diff=11866Hugin FAQ2009-10-02T09:00:50Z<p>Aston: /* Enblend error: Mask is entirely black, but white image was not identified as redundant */</p>
<hr />
<div>== Common error messages ==<br />
<br />
=== enblend: no input files specified ===<br />
<br />
There are no input images relevant to the output 'panorama' so hugin had nothing to do, probably because all the input images are outside the panorama 'frame'. Open the [[Hugin Preview window]] or [[Hugin Fast Preview window]] to adjust the view and/or crop.<br />
<br />
Note also that hugin versions up to and including 2009.2.0 allow you to draw an inverted crop frame where the top is below the bottom, this is easy to see in the Preview window as the entire panorama is 'greyed'. A crop frame drawn like this will result in an empty panorama and the above error message.<br />
<br />
=== enblend: error writing to image swap file ===<br />
<br />
[[enblend]] needs a lot of memory and uses its own swap routine to store picture data on the disk, this message indicates that you have run out of disk space. The data is stored in the system temp folder which is specified by TMP, TEMP or TMPDIR environment variables, note that this temp folder may be on a different physical disk to your photos and panorama output.<br />
<br />
=== false --compression NONE ===<br />
<br />
This error is caused by a bug in the 0.7.0 release that is fixed in 0.8.0. The problem is that your preferences are messed-up, the workaround for 0.7.0 is to go to File -> Preferences -> Enblend and click Load Defaults -> Yes -> Ok<br />
<br />
=== Enblend error: Mask is entirely black, but white image was not identified as redundant ===<br />
<br />
This is a well known "error" for [[enblend]]. Try to use the additional enblend parameter "--fine-mask" to ged rid of the error. The parameter will result in generation of masks in higher resolution that will fix the problem in most cases. Sometimes the "--fine-mask" parameter may result in memory errors (malloc: ...), which are the result of not enough memory available due to the (much) bigger masks that are used.<br />
<br />
An alternative workaround would be to set the enblend --no-optimize parameter, this will place the seam directly along the middle of the image overlaps regardless of image content. This option is also considerably faster and uses less memory.<br />
<br />
Note also that this error often appears when rendering a scene with extreme distortion such as a stereographic 'little planet'. For this and other reasons, such as overall speed, it is always preferable to render a 'normal' 360° [[Equirectangular Projection]] panorama first, then load this as a single source image into a new project and render whatever views you need.<br />
<br />
=== enblend: illegal option -- compression ===<br />
<br />
hugin 0.7.0 and later versions require at least [[enblend]] version 3.2. This error indicates that you need to upgrade enblend.<br />
<br />
=== Makefile: target pattern contains no % ===<br />
<br />
This is a message generated by [[w:Make_(software)]] (which [[Hugin]] uses to manage the stitching sequence). The error is caused by a ''':''' or '''#''' character in one of the file paths. The workaround is to rename to remove any 'special' shell characters and try again.<br />
<br />
=== nona: GL error: Framebuffer incomplete, incomplete attachment in: ===<br />
<br />
This is a message generated by nona when using the GPU for stitching (feature available starting with Hugin-2009.2.0). See section below about [[#GPU-stitching_.28nona.29|GPU-stitching]].<br />
<br />
=== make: enfuse: command not found ===<br />
<br />
This is a message generated by make when assembling your panorama. It most likely means that enfuse is not on your computer. Enfuse is part of the enblend package, but many Linux distributions, even recent ones, ship with an older version of enblend that does not contain enfuse. You need to install enblend-3.2 or higher.<br />
<br />
== Known Limitations ==<br />
<br />
=== Linux: Compiz ===<br />
<br />
Linux: Compiz interferes with the [[hugin Fast Preview window]]. This is not a hugin specific issue. Research shows all direct rendered stuff will have various problems under Compiz: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/96991<br />
<br />
This problem is fixed with DRI2, e.g with fedora 11 and intel graphics hardware you can have a 'wobbly' Fast Preview window if you really want.<br />
<br />
It's not an issue with NVidia's proprietry driver.<br />
<br />
If you're affected, the workaround is to not use Compiz.<br />
<br />
=== Windows: International Characters in Path ===<br />
<br />
Hugin is fully internationalised and can cope with special characters in file paths. However, hugin apparently fails on Windows systems with Russian and Czech codepages, the workaround is to use shell-safe ascii characters in file and folder names: '''A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 - _ .'''<br />
<br />
=== OSX: error when clicking on the help button ===<br />
<br />
In a language other than English, French or Italian you get an error message when clicking on the help button. This will be fixed in Hugin-2009.4.0. In the meantime, the work around is to change language to one of the above three; or to ask for help on the mailing list. <br />
<br />
=== Non-Unique Filenames ===<br />
<br />
Some components of Hugin have been reported not to deal well with image files<br />
that have the same name in different folders. The workaround is to rename <br />
your images files so that all image files in a project are unique.<br />
<br />
=== Temporary Files ===<br />
<br />
Hugin has a preference setting for the temporary files folder. Currently it<br />
is not implemented properly and files will be written in the same folder as<br />
the project file.<br />
<br />
A partial workaround on Linux is to start Hugin from a terminal with<br />
<pre><br />
TMPDIR=/media/disk-2/tmp hugin &<br />
</pre><br />
<br />
These temporary files have to be deleted manually after the stitch.<br />
<br />
== Control Point creation ==<br />
<br />
=== How do I add control points ===<br />
The [[control points]] editor is quite powerful, but its usage is probably not obvious on the first try. Here are some ways the developers use the Control Point panel:<br />
<br />
1. Selecting control points in 100% zoom.<br />
<br />
This method needs some scrolling, if big images are used. You might want to try the fit to window zoom setting in that case. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: 100%<br />
[X] auto fine tune<br />
[X] auto add<br />
[X] auto estimate<br />
<br />
Click on a prominent feature in the left image. If the image pair already contains control points, [[hugin]] will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The second point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by dragging them to a better position. Press the "f" key to fine tune the point in a small area.<br />
<br />
<br />
2. Selecting control points in fit to window mode.<br />
<br />
I uses this mode if I need to set points on big images. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: fit to window<br />
[X] auto fine tune<br />
[ ] auto add<br />
[X] auto estimate<br />
<br />
Click on left image. The image will be shown in 100% view. Within the detailed view, click on a prominent feature. If the image pair already contains control points, hugin will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by clicking at the desired position. Move the point close to the desired feature and press the "f" key to fine tune the point. When the points are on the same feature, press the right mouse button, or press the "a" key to add the control point pair. It will then be shown in the list below the image.<br />
<br />
=== How do I scroll both images at the same time? ===<br />
<br />
Try pressing the shift key while moving the mouse. The control key or the middle mouse button can be used to scroll only the image under the mouse cursor.<br />
<br />
=== How do I stop Hugin pausing for a moment after every click? ===<br />
<br />
The ''preview window'' updates continuously whenever anything changes, so disable the preview auto-update, close it or make it smaller if you don't need it.<br />
<br />
Otherwise, picking [[control points]] with ''auto fine tune'' selected can involve a lot<br />
of processing. You can reduce this by ''selecting File -> Preferences -> Finetune'' and<br />
lowering the values for ''Patch width'', ''Search area width'' and ''Local search area width''.<br />
This means you can't be so sloppy when clicking to create control points, but the results will<br />
be the same.<br />
<br />
== Common problems when creating a panorama ==<br />
<br />
=== How can I reuse a project as a template? ===<br />
<br />
If you copy a .pto project to a different folder and open it with hugin, you will be prompted for the 'missing' images. You should delete any control points from this template project since they won't be relevant to the new photos.<br />
<br />
Alternatively you can load your images as normal, then ''Apply template''<br />
from the ''File'' menu, this will import image settings and parameters<br />
from a previous project.<br />
<br />
=== How do I straighten a curved horizon? ===<br />
If the panorama looks nice but the horizon is curved, there are two ways to improve the image and straighten the horizon. First, try optimizing the view by selecting "Positions and View" as the optimization mode and run the optimizer afterwards. By clicking "Calculate Field of View" in the "Stitcher" tab and displaying the preview window afterwards you can check if the image has been improved.<br />
<br />
If it is still curved, you have to add vertical guide control points in the "Control Points" tab. Usually two [[vertical control points]] are enough to straighten the horizon nicely. Often edges of buildings, poles or other man made structures provide good vertical lines. To add a vertical control point, switch to the control point editor and select the same image on both sides. Place a control point on the left image on the upper area of the vertical feature. In the right image, select a control point on the lower area of the features, and press the Add button. Once the new point has been added, its type should automatically switch to "vertical line". You might want to switch off the auto-add and auto-estimate options while doing this to avoid naggy dialogs while adding these guide points.<br />
<br />
Two points that are roughly 90 degrees apart provide the best effect.<br />
<br />
See also the related perspective correction tutorials: [http://hugin.sourceforge.net/tutorials/architectural/en.shtml hugin tutorial on perspective correction], [[Perspective correction]], [[Leveling a Finished Panorama]]. While these are concerned with correction of the perspective in one image, the same technique can be used for<br />
leveling a panorama.<br />
<br />
=== Half the panorama is black, my pictures fill only the right half of the output ===<br />
<br />
Hugin uses the first photo as the ''anchor'' image and puts it in the middle by default. This means that if you shot a sequence from left to right, the images will fill the right hand side of the panorama. There are two ways to fix this:<br />
<br />
* Open the '''preview''' window and click the '''center''' button.<br />
* or select the middle photo, hit '''anchor this image for position''' and '''reset''' in the '''images''' tab, then reoptimise.<br />
<br />
=== I get visible bands in the sky and other flat areas, what can I do? ===<br />
<br />
Make sure you are using [[enblend]] to do the final image assembly, this will blend the overlap as much as is possible - Enable enblend by stitching the images '''into a high quality TIFF file''' in the '''stitcher''' tab.<br />
<br />
If you still have problems, then you probably have to correct [[vignetting]] in your images. In the vignetting area of '''camera and lens''' tab, select '''edit parameters...'''. Then select '''division''', '''polynomial''' and '''estimate polynomial''' to calculate a vignetting correction curve for your camera combination - This will be applied to every photo in your project when you click '''OK'''.<br />
<br />
=== My photos never quite line up, what can I do? ===<br />
<br />
It is normal to get little stitching [[parallax]] errors if<br />
the camera moves between photos. The solution is to rotate the camera around<br />
the [[no-parallax point]] using a [[Heads|panoramic head]] or [[philopod]].<br />
<br />
Otherwise you can sometimes improve things by optimising the ''d & e'' parameters<br />
separately - When you optimise '''everything''', unselect '''Inherit''' in<br />
the '''camera and Lens''' panel for 'd & e'.<br />
<br />
If these parallax errors are still large, you need to decide which<br />
parts of the scene that you want to line-up and which parts don't<br />
matter. Select [[control points]] only on objects that you do want to<br />
line-up and which are all about the same distance from the camera.<br />
<br />
The remaining broken lines can then be retouched in a photo editor like the [[gimp]].<br />
The ''shear'' tool is ideal for bending the lines and<br />
[[Mending parallax errors with the shear tool|getting them to line up]].<br />
<br />
=== I have extraded and edited cubefaces and want to merge them together again. How do I do that ? ===<br />
<br />
Set the '''enblend options''' to -l1 --fine-mask --no-optimize<br />
<br />
=== Can I stitch my HDR images ? ===<br />
<br />
Yes. If you already have merged your HDR stacks, follow the '''Normal''' Output on the '''Stitcher''' tab ('''HDR merging''' is for stacks that will be merged by Hugin). In the '''Processing''' step the output will be an HDR in TIFF format.<br />
<br />
== GPU-stitching (nona) ==<br />
<br />
Starting with Hugin-2009.2 nona has a new, experimental feature: it can use the video card (GPU) to accelerate the stitching. How much acceleration you will get, if any, depends on the combination of video card and driver.<br />
<br />
=== I get a nona: GL error. Does this mean that I found a bug? ===<br />
<br />
Not necessarily. This functionality is highly experimental. It may be that you have an outdated driver, or that the functionality is not supported on your video card. Note down the version of the driver you are using and the specs of your video card (GPU and RAM). Then update to the latest driver from [http://www.nvidia.com/page/drivers.html nVidia] or [http://support.amd.com/us/gpudownload/Pages/index.aspx AMD] (ATI has been bought by AMD). Currently only these two families of GPUs support the functionality.<br />
<br />
=== How can I know if nona-GPU works on my system? ===<br />
<br />
At the moment we have too little information to predict this. We know that only nVidia and AMD(ATI) powered video cards work, and not all of them. The more recent the video card, the higher the likelihood that it works. Improve your chances by updating to the latest driver for your GPU. Look at experience reports from other users and report your experience [[Nona GPU stitching reports|here]].<br />
<br />
=== What speed improvement can I expect? ===<br />
<br />
It depends on the video card. Bandwidth is mostly the bottleneck, specifically getting the transformed data from the GPU back to the main system memory.<br />
<br />
=== Bug Reporting ===<br />
<br />
When reporting success or failure using the GPU for stitching, always report also the driver version, video card GPU and RAM. Tell us what you were doing, the size and number of input images (note that if you stitch from within Hugin or PTBatcher, it is only one input image at a time).<br />
<br />
== Postprocessing ==<br />
<br />
=== Why is the ICC profile of my input images not preserved? ===<br />
<br />
Since hugin 0.5 and enblend 2.4 [[colour profile|ICC profiles]] in the input files are transfered to the output panorama. Please update to a current version.<br />
<br />
=== How can I postprocess the image using multiple layers in The Gimp? ===<br />
<br />
* Use the [[nona]] stitcher on the command-line, to output to a multilayer [[TIFF]] format:<br />
<br />
nona -m TIFF_multilayer -o multi_layer.tif project.pto<br />
<br />
This will will produce a multi_layer.tif file, that contains all remapped images, cropped to their bounding box.<br />
<br />
* Alternatively select the '''Remapped Images''' option in the [[Hugin Stitcher tab]], this will create each ''layer'' as a separate file. Then use the '''tiffcp''' command-line tool (part of libtiff) to join them together into a multi-page TIFF:<br />
<br />
tiffcp project0000.tif project0001.tif project0002.tif multi_layer.tif<br />
<br />
* You can also use [[tif2xcf]], to combine the '''Remapped Images''' TIFF output into a multilayer XCF.<br />
Unfortunately this requires a lot of memory because it stores each remapped image in a layer with the size of the final panorama.<br />
<br />
== Installation ==<br />
<br />
=== Where can I download hugin installers ===<br />
<br />
Information on installers for both stable and testing builds of hugin can be found on the [http://panospace.wordpress.com/downloads/ panospace download page].<br />
<br />
=== How can I compile Hugin.app on my OSX machine? ===<br />
<br />
See [[Hugin Compiling OSX]], [[Autopano-sift-C Compiling OSX]] and [[Enblend Compiling OSX]].<br />
<br />
=== How do I compile hugin on my linux machine? ===<br />
<br />
See [[Hugin Compiling Fedora]], [[Hugin Compiling Gentoo]], [[Hugin Compiling OpenSuse]] and [[Hugin Compiling Ubuntu]]<br />
<br />
=== How do I compile hugin on my Windows machine? ===<br />
<br />
See [[Hugin Compiling Windows]]<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Nona_GPU_stitching_reports&diff=11865Nona GPU stitching reports2009-10-02T08:41:21Z<p>Aston: /* Other video cards */</p>
<hr />
<div>The purpose of this page is to collect individual experience reports and learn to know what hardware / driver combination work with nona-GPU.<br />
<br />
== Individual Reports ==<br />
<br />
* identify your video card. http://www.techarp.com/showarticle.aspx?artno=88 should help. select your GPU manufacturer's full list and note the exact name. The more precise you are, the better it is for everybody. Note that this is not your video card manufacturer / brand. Today most video card manufacturers get their GPU from either nVidia or ATI.<br />
* identify the exact driver you were using. Do so '''before''' upgrading driver, collecting reports for older drivers is useful. If you do upgrade later, make a second report for the upgraded driver.<br />
* copy the template below.<br />
* based on your video card and operating system, select the appropriate section to edit below.<br />
* Edit the section and append your report at the '''bottom''' of the list (but above the lines terminating the table).<br />
<br />
Thank you!<br />
<br />
<pre><br />
<!--START TEMPLATE--><br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
[ENTER YOUR GPU DETAILS]<br />
! style="border-top: thin dotted #333333;" |<br />
[ENTER DRIVER VERSION]<br />
| style="border-top: thin dotted #333333;" |<br />
[ENTER SYSTEM DETAILS]<br />
| style="border-top: thin dotted #333333;" |<br />
[ENTER COMMENTS]<br />
<!--END TEMPLATE--><br />
</pre><br />
<br />
<br />
== nVidia ==<br />
<br />
This section is for nVidia powered video cards only.<br />
<br />
=== Linux ===<br />
<br />
<!-- STARTING TABLE HEADER, DO NOT EDIT --><br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="200" |<br />
GPU Detail<br />
! width="100" |<br />
Driver Version<br />
! width="200" |<br />
System Detail<br />
! width="400" |<br />
Comments<br />
<!-- END TABLE HEADER --><br />
<br />
<!--START TEMPLATE--><br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
Riva TNT2 Pro 32GB<br />
! style="border-top: thin dotted #333333;" |<br />
71.86.11<br />
| style="border-top: thin dotted #333333;" |<br />
Ubuntu 9.04 32bit AMD Athlon XP 3200+ 2GB<br />
| style="border-top: thin dotted #333333;" |<br />
this system is obviously outdated for the task<br />
<!--END TEMPLATE--><br />
<br />
<br />
<!-- TERMINATING TABLE --><br />
|}<br />
<br />
<br />
=== Windows ===<br />
<br />
<!-- STARTING TABLE HEADER, DO NOT EDIT --><br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="200" |<br />
GPU Detail<br />
! width="100" |<br />
Driver Version<br />
! width="200" |<br />
System Detail<br />
! width="400" |<br />
Comments<br />
<!-- END TABLE HEADER --><br />
<br />
<!--START TEMPLATE--><br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
Nvidia 8800 GT (Factory overclocked)<br />
! style="border-top: thin dotted #333333;" |<br />
GeForce 190.62<br />
| style="border-top: thin dotted #333333;" |<br />
Win 7 RTM x64, 4 GB RAM, 2.7 GHz C2D E6400 (overclocked)<br />
| style="border-top: thin dotted #333333;" |<br />
Stitched 360x180 equirect. from fisheye images. No problems.<br />
<!--END TEMPLATE--><br />
<br />
<br />
<!-- TERMINATING TABLE --><br />
|}<br />
<br />
=== OSX ===<br />
<br />
<!-- STARTING TABLE HEADER, DO NOT EDIT --><br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="200" |<br />
GPU Detail<br />
! width="100" |<br />
Driver Version<br />
! width="200" |<br />
System Detail<br />
! width="400" |<br />
Comments<br />
<!-- END TABLE HEADER --><br />
<br />
<!-- TERMINATING TABLE --><br />
|}<br />
<br />
=== other ===<br />
<br />
<!-- STARTING TABLE HEADER, DO NOT EDIT --><br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="200" |<br />
GPU Detail<br />
! width="100" |<br />
Driver Version<br />
! width="200" |<br />
System Detail<br />
! width="400" |<br />
Comments<br />
<!-- END TABLE HEADER --><br />
<br />
<!-- TERMINATING TABLE --><br />
|}<br />
<br />
== AMD/ATI ==<br />
<br />
This section is for AMD/ATI video cards only<br />
<br />
=== Linux ===<br />
<br />
<!-- STARTING TABLE HEADER, DO NOT EDIT --><br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="200" |<br />
GPU Detail<br />
! width="100" |<br />
Driver Version<br />
! width="200" |<br />
System Detail<br />
! width="400" |<br />
Comments<br />
<!-- END TABLE HEADER --><br />
<br />
<!-- TERMINATING TABLE --><br />
|}<br />
<br />
=== Windows ===<br />
<br />
<!-- STARTING TABLE HEADER, DO NOT EDIT --><br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="200" |<br />
GPU Detail<br />
! width="100" |<br />
Driver Version<br />
! width="200" |<br />
System Detail<br />
! width="400" |<br />
Comments<br />
<!-- END TABLE HEADER --><br />
<br />
<!-- TERMINATING TABLE --><br />
|}<br />
<br />
=== OSX ===<br />
<br />
<!-- STARTING TABLE HEADER, DO NOT EDIT --><br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="200" |<br />
GPU Detail<br />
! width="100" |<br />
Driver Version<br />
! width="200" |<br />
System Detail<br />
! width="400" |<br />
Comments<br />
<!-- END TABLE HEADER --><br />
<br />
<!-- TERMINATING TABLE --><br />
|}<br />
<br />
=== other ===<br />
<br />
<!-- STARTING TABLE HEADER, DO NOT EDIT --><br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="200" |<br />
GPU Detail<br />
! width="100" |<br />
Driver Version<br />
! width="200" |<br />
System Detail<br />
! width="400" |<br />
Comments<br />
<!-- END TABLE HEADER --><br />
<br />
<!-- TERMINATING TABLE --><br />
|}<br />
<br />
== Other video cards ==<br />
<br />
our current knowledge is that nona-gpu only works with nVidia and AMD/ATI video cards. If you find out something different, please let us know here.<br />
<br />
<!-- STARTING TABLE HEADER, DO NOT EDIT --><br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="200" |<br />
GPU Detail<br />
! width="100" |<br />
Driver Version<br />
! width="200" |<br />
System Detail<br />
! width="400" |<br />
Comments<br />
<!-- END TABLE HEADER --><br />
<br />
<!--START TEMPLATE--><br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
Intel 965<br />
! style="border-top: thin dotted #333333;" |<br />
unknown<br />
| style="border-top: thin dotted #333333;" |<br />
Ubuntu 9.04<br />
| style="border-top: thin dotted #333333;" |<br />
[http://www.flickr.com/groups/hugin/discuss/72157622361738381/72157622369311335/ Nona seems to be running forever, with CPU running at 50%]<br />
<!--END TEMPLATE--><br />
<br />
<!-- TERMINATING TABLE --><br />
|}</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin&diff=11862Hugin2009-09-30T11:48:57Z<p>Aston: cpclean and calibrate_lens</p>
<hr />
<div>'''Hugin''' {{Glossary|is an opensource graphical user interface (GUI) for [[Panorama tools]]|1}}.<br />
<br />
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:<br />
<br />
* [[autopano-sift]], [[autopano-sift-C]], [[panomatic]] or [[autopano]] for automatic creation of [[control points]].<br />
* [[nona]] for remapping input images and rendering output images.<br />
* [[enblend]] and [[enfuse]] for seamless blending of output images.<br />
<br />
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]].<br />
A PTStitcher replacement, called [[nona]] has been developed, supporting its most important features.<br />
<br />
Among the many flexible Hugin workflow options, it is possible to correct [[Exposure correction|exposure]], [[Vignetting]] and [[White balance]] between photos; generate [[HDR]] or [[Exposure blending|exposure blended]] output from [[bracketing|bracketed]] photos; or use [[16bit]] and [[HDR]] input data natively.<br />
<br />
== Hugin components ==<br />
<br />
The following tools are part of the hugin suite:<br />
<br />
* [[hugin]] the gui front end.<br />
* [[nona]] a command-line replacement for [[PTStitcher]].<br />
* [[fulla]] correction of [[barrel distortion]], [[chromatic aberration]] and [[vignetting]].<br />
* [[nona_gui]] a version of [[nona]] with simple GUI progress dialogs, similar to the windows version of [[PTStitcher]].<br />
* [[autooptimiser]] a tool with the same interface as [[PTOptimizer]] except using pairwise optimization which doesn't require any manual pre-placement.<br />
* [[align_image_stack]] a tool to automate the process to [[align a stack of photos]].<br />
* [[tca_correct]] a tool to automatically generate [[chromatic aberration]] correction parameters for use with [[fulla]].<br />
* [[MatchPoint|matchpoint]] feature identification.<br />
* [[pto2mk]] generation of Makefiles for command-line stitching.<br />
* [[cpclean]] command line tool to remove control points with improbable error distances<br />
* [[calibrate_lens]] automatic lens calibration using straight-line detection<br />
* [[vig_optimize]] command line tool to estimate photometric parameters.<br />
* [[hugin_hdrmerge]] merges multiple exposures to [[HDR]] using Khan anti-ghosting algorithm<br />
* [[hugin_stitch_project]] a GUI tool to stitch a single hugin .pto project.<br />
* [[celeste_standalone]] removes cloud-like control points from project files.<br />
* [[Hugin Batch Processor|PTBatcherGUI]] a GUI queue manager for stitching multiple hugin projects.<br />
* [[PTBatcher]] command-line access to the [[hugin Batch Processor]] stitching queue.<br />
* [[panoglview]] OpenGL panorama viewer stored in sourceforge SVN alongside [[hugin]] which must be built separately.<br />
* [[autopano-sift-C]] version of [[autopano-sift]] written in C, also needs to be built separately.<br />
<br />
More information, documentation and tutorials are available on the project website.<br />
<br />
== User interface ==<br />
<br />
* [[Hugin Main window]]<br />
* [[Hugin Assistant tab]]<br />
* [[Hugin Images tab]]<br />
* [[Hugin Camera and Lens tab]]<br />
* [[Hugin Crop tab]]<br />
* [[Hugin Control Points tab]]<br />
* [[Hugin Optimizer tab]]<br />
* [[Hugin Exposure tab]]<br />
* [[Hugin Stitcher tab]]<br />
* [[Hugin Batch Processor]]<br />
* [[Hugin Preferences]]<br />
* [[Hugin Preview window]]<br />
* [[Hugin Fast Preview window]]<br />
* [[Hugin Control Points table]]<br />
* [[Hugin Keyboard shortcuts]]<br />
<br />
== Development ==<br />
<br />
Hugin is Open Source, and like every community-developed software 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. Find more about the [[Development of Open Source tools|development process]].<br />
<br />
<br />
== See also ==<br />
* [[hugin FAQ]] Frequently asked questions about hugin<br />
<br />
== External links ==<br />
* [http://hugin.sourceforge.net hugin homepage] for Screenshots, Tutorials, Documentation and Links.<br />
* [http://sourceforge.net/projects/hugin hugin sourceforge project] for Downloads, Bug database and Feature requests.<br />
* [http://hugin.svn.sourceforge.net/viewvc/hugin/ sourceforge SVN] to browse the hugin sourcecode.<br />
* [http://groups.google.com/group/hugin-ptx hugin-ptx GoogleGroup] to contribute to development and peer support.<br />
<br />
== Supported operating systems ==<br />
* [[windows software|Windows]]<br />
* [[Unix software|Linux and Unix]]<br />
* [[Mac software|Mac OS X]]<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Control_Points_tab&diff=11857Hugin Control Points tab2009-09-29T12:15:21Z<p>Aston: Note the red/green hints in the pull-down lists</p>
<hr />
<div>[[Control points]] are central to [[Panorama Tools]] and [[hugin]], because they are used to estimate the position of image position and lens parameters described above.<br />
A control point specifies a corresponding point between two images. Using these corresponding points, the [[hugin Optimizer tab]] can estimate the image position and lens parameters.<br />
It is therefore important that the control points are accurate and usually at least 3 well distributed control points should be used to estimate the image position ([[yaw]], [[roll]] and [[pitch]]) and maybe the [[Field of View|HFOV]].<br />
For accurate estimation of the a,b,c distortion parameters, many well distributed control points, and a large overlap (up to 50%) are required.<br />
<br />
The Tab consists of two image displays and associated pull-down lists to switch images to be edited.<br />
The bottom contains a list view where Points can be selected and some fields to edit a selected point.<br />
Points can also be selected by clicking or dragging on them in the images.<br />
It is possible to zoom out to show the full image.<br />
<br />
Entries in the pull-down lists have a coloured block indicating the average quality of the control-points between the selected photos, a short red block indicates a 'bad' alignment, whereas a larger green block indicates a 'good' alignment. No coloured block indicates that there are no control-points between the photos.<br />
<br />
Adding a control point works by selecting one point in the left or right image, and then clicking onto the corresponding point in the other image.<br />
If '''auto add''' is not set, the points can be moved by clicking at some other place in the images.<br />
They are added to the list of control points by pressing the '''right mouse button''', the '''a''' key or by pushing the '''Add''' button.<br />
If you press the '''right mouse button''' when only one point is selected, the point selection will be aborted.<br />
'''auto add''' adds the control point as soon as both points have been specified.<br />
<br />
If the images are zoomed out (fit to window), the first click zooms to a temporary 100% view to give you the chance to refine your selection.<br />
Note that only the second click will trigger the auto estimate.<br />
<br />
Often it is hard to select the corresponding point exactly.<br />
However, the [[control points]] should be as accurate as possible, for good results.<br />
Once a point pair has been roughly selected, the '''fine tune''' function of [[hugin]] can be used to estimate the corresponding point up to one tenth of a pixel.<br />
The keyboard short cut for the '''fine tune''' function is the '''f''' key.<br />
Fine tune only search in a small neighbourhood of the currently selected points.<br />
The size of this neighbourhood can be controlled by opening the [[Hugin Preferences]] panel and setting the '''Local area search width'''.<br />
<br />
Note that the fine tune function estimates the translation of the patch around the point selected in the other image with respect to the current image.<br />
This works well if the rotation between the images is small and narrow angle lenses have been used.<br />
If wide angle or [[Fisheye Projection]] images are used, rotation search should be activated in the [[Hugin Preferences]] panel.<br />
Then [[hugin]] also searches for rotated occurrences of the patch around the selected point.<br />
<br />
The image can be scrolled by pressing the '''middle mouse button''' or the '''CTRL''' key while moving the mouse.<br />
If the '''shift''' key is pressed instead, both images will be scrolled.<br />
This is very useful if [[control points]] are set using the 100% zoom level.<br />
<br />
Control point creation is also influenced by the following check boxes:<br />
<br />
* '''auto fine tune''' [[hugin]] helps you to find the second point by looking for it in a search region (shown by a rectangle around the cursor). This might not always work, but usually is reliable, if the image distortions are not too big. Try and play with it.<br />
* '''auto add''' A control point is automatically added when both points are known. You won't have time to refine the selection before adding the point.<br />
* '''auto estimate''' Tries to estimate the position of the second point by estimating the translation between the two images. This is very crude and probably only works for single row panoramas created from [[Rectilinear Projection]] images.<br />
<br />
All these flags can be combined. I typically use '''auto fine tune''' and '''auto estimate''' at the same time.<br />
Then [[hugin]] usually automatically selects the second point correctly, at least for normal, [[Rectilinear Projection]] images that are not rotated too much.<br />
<br />
[[hugin]] also includes an experimental [[control points]] creation algorithm.<br />
It can be invoked by pressing the '''g''' key. Corners in the currently selected image are detected, and corresponding control points are set based on the current relative positions of the two images. The images need to be approximately aligned already for this to be useful. Note that these points then need to be aligned by eye, with the '''Fine-tune''' button or with the '''Fine-tune all Points''' function in the Edit menu of the [[Hugin Main window]].<br />
<br />
== Control point mode ==<br />
<br />
Use the '''mode''' pull down menu to change the type of an existing pair of [[control points]].<br />
<br />
=== normal control points ===<br />
<br />
The '''normal''' control point mode is used to align pairs of overlapping photos by matching<br />
identical features in both photos.<br />
<br />
=== vertical line and horizontal line control points ===<br />
<br />
Pairs of [[vertical control points]] and [[horizontal control points]] are different from<br />
'''normal''' control points since they are used to align input images to particular alignments<br />
in the output panorama rather than simply stitching images together.<br />
<br />
Select two points along a feature that you want to be aligned vertically or horizontally in<br />
the final panorama. If these are in the same photo, [[hugin]] will usually detect that you are<br />
trying to create ''horizontal'' or ''vertical'' control points and set the mode appropriately,<br />
if they are in different photos then you will need to set the mode manually.<br />
<br />
Typically ''horizontal'' and ''vertical'' points are used either to [[Leveling a Finished Panorama|level a spherical panorama]]<br />
or to [[Perspective correction|correct perspective]].<br />
<br />
=== Straight line control points ===<br />
<br />
Adding [[straight line control points]] is basically the same as<br />
creating '''horizontal control points''' and '''vertical control points''', except that you<br />
need more than just one pair to make up a straight line.<br />
<br />
Create a pair of points in the '''hugin Control Points tab''', then pick<br />
'''Add new line''' in the '''mode''' pull-down. This first line will be called<br />
'''Line 3''', you can assign more pairs of points to it using the same<br />
'''mode''' pull-down.<br />
<br />
== Keyboard shortcuts ==<br />
<br />
Here is a summary of the keyboard shortcuts available in the Control Point tab:<br />
<br />
Key Function<br />
<br />
* '''a''' add a new point that has been selected in both images, and the '''auto add''' is switched off.<br />
* '''cursor keys''' scroll image under the mouse cursor<br />
* '''shift + cursor keys''' scroll both images at the same time<br />
* '''f''' fine tune currently selected control point pair. Same as the '''Fine Tune''' button<br />
* '''g''' experimental control point generation algorithm.<br />
* '''Del''' Remove currently selected control point.<br />
* '''0''' Zoom out to full view.<br />
* '''1''' 100% view.<br />
<br />
Mouse function Function<br />
<br />
* '''control key + mouse movement''' Scroll image under cursor<br />
* '''shift key + mouse movement''' Scroll both images<br />
* '''left button''' Use left mouse button to select new points or drag existing points.<br />
* '''right mouse button''' Add control point, if '''auto add''' is switched off<br />
* '''middle mouse button''' Scroll image under cursor<br />
* '''shift + middle mouse button''' Scroll both images<br />
<br />
__NOTOC__<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Camera_and_Lens_tab&diff=11856Hugin Camera and Lens tab2009-09-29T11:12:20Z<p>Aston: Note Reset... button</p>
<hr />
<div>{| cellspacing="0" cellpadding="0" style="clear: right; margin-bottom: .5em; float: right; padding: .5em 0 .8em 1.4em; background: none; width:auto"<br />
| __TOC__<br />
|}<br />
The '''Camera and Lens''' tab looks a lot like the [[hugin Images tab]], except that the lens settings can be edited here.<br />
As in the Images Tab, multi-selection can be used to change the parameters for multiple images.<br />
<br />
[[Panorama Tools]] and [[hugin]] allow the usage of images shot with different lenses and settings inside the same project.<br />
Each image is associated with a lens number.<br />
All images that share the same lens number use the same lens type, and may be forced to share the same lens parameters.<br />
<br />
The '''Load lens...''' and '''Save lens...''' buttons allow you to keep calibrated lens profiles. Once a set of lens parameters has been obtained through [[lens calibration]] it shouldn't vary much for future projects. The advantage of this is that if only positions are being optimised in the [[hugin Optimizer tab]], then as few as two or three [[control points]] are needed per image pair.<br />
<br />
'''Load EXIF''' examines the selected image file and tries to determine the [[Field of View]]<br />
of the photo by reading embedded [[EXIF]] data. The same function is performed when initially adding photos so you only need<br />
this button to reset the '''Field of View''' if it has since changed.<br />
<br />
By default, every photo in a project is assigned to ''lens number'' '''0'''. If you are including<br />
pictures taken with a different camera, a different lens or at different zoom settings; then<br />
you need to assign a ''new lens'' for these pictures by clicking the '''New Lens''' button.<br />
Assign additional photos to this ''lens number'' with the '''Change Lens...''' button.<br />
<br />
== Geometric ==<br />
<br />
The Panorama Tools [[lens correction model]] has enough parameters to model most photographic images, these parameters can be set manually here in the '''hugin Camera and Lens tab''' or calculated automatically in the [[hugin Optimizer tab]].<br />
<br />
Note that any or all of these parameters can be changed back to good defaults in the [[Hugin Reset Values window]] reached by clicking the '''Reset...''' button.<br />
<br />
=== Lens ===<br />
<br />
The most important parameters are the '''[[Field of View|Horizontal field of view]]''' and the '''Lens type'''. Hugin supports the following projections in input images:<br />
<br />
* '''[[Rectilinear Projection|Normal (rectilinear)]]''' - The projection used by most cameras. It keeps straight lines straight. The maximum horizontal field of view is 180 degrees (for an image of infinite size, that is).<br />
* '''[[Cylindrical Projection|Panoramic (cylindrical)]]''' - Often used by panoramic cameras, such as the Horizon, Roundshot and Spheron cameras. This projection is also called simply ''cylindrical'' projection.<br />
* '''[[Fisheye Projection|Circular fisheye]]''' - Used by fisheye lenses. If the image is circular or the corners of the image are black, use this type of fisheye lens. A circular crop in the [[Hugin Crop tab]] can be used for cutting away the edge borders.<br />
* '''Full frame fisheye''' - Exactly the same projection as '''circular fisheye''', but the crop option will crop to a rectangle instead of a circle. This should be used for full frame fisheye images.<br />
* '''[[Equirectangular Projection|Equirectangular]]''' - A full spherical projection. These are generally created as the result of the stitching process, but it can be useful to reload a finished panorama to extract further images.<br />
<br />
After the lens type has been specified, an estimate for the horizontal [[field of view]] (HFOV) is required. The HFOV specifies the horizontal opening angle of the image in degrees. Since most photographers are more familiar with [[Focal Length]] as a measure for the HFOV, it can be entered into hugin, and hugin will compute the HFOV from it. For this calculation the actual focal length and the [[crop factor]] of the camera are required. If the 35mm film equivalent focal length is known, a crop factor of 1 should be used.<br />
<br />
With [[JPEG]] images, hugin can usually automatically calculate the HFOV based on the [[EXIF]] information.<br />
<br />
=== Radial Distortion, Image Center Shift and Image Shearing ===<br />
<br />
Usually lenses do not project images exactly according to the selected projection type, but suffer from distortions.<br />
In many cases the distortions are acceptable for single image shots, but they need to be corrected when stitching a panorama.<br />
The '''a''', '''b''' and '''c''' parameters are used to remove that distortion.<br />
They are applied radially from the image center, which can be moved by changing the '''d''' and '''e''' parameters.<br />
These '''a''', '''b''', '''c''', '''d''' and '''e''' parameters are the basis of the panotools [[lens correction model]].<br />
<br />
Scanned images might also suffer from image [[shearing]]. This can be corrected using the '''g''' and '''t''' parameters.<br />
<br />
The distortion parameters usually vary with the focal length, and to a lesser degree with the focus.<br />
The '''link''' checkbox indicates whether the parameter is linked or not.<br />
A linked parameter is forced to the same value for all images with the same lens number.<br />
This is the default for the HFOV and distortion parameters.<br />
If a parameter is not linked each images is allowed to have individual values for the respective parameter.<br />
This is useful if a different zoom or focus setting has been used for some images.<br />
If scanned images are used, they are usually not perfectly centered, and each image should have individual '''d''' and '''e''' parameters.<br />
<br />
== Photometric ==<br />
<br />
[[hugin]] models the '''photometric''' parameters of a lens/camera combination in a similar way to the [[lens correction model]] for '''Geometric''' parameters. These parameters can be set manually here in the hugin '''Camera and Lens tab''' or calculated automatically in the [[hugin Exposure tab]].<br />
<br />
Note that any or all of these parameters can be changed back to good defaults in the [[Hugin Reset Values window]] reached by clicking the '''Reset...''' button.<br />
<br />
=== Exposure and Color ===<br />
<br />
'''Exposure (EV)''', EV stands for ''Exposure Value'', setting it to ''0'' (zero) will<br />
result in [[hugin]] applying no exposure change to the photo.<br />
<br />
EV is a standard photographic scale, each increase or decrease by one unit will change the <br />
exposure by the equivalent of one ''f-stop'' (ie. halving or doubling the exposure).<br />
<br />
Very often, different photos in the same project, even those with the same ''lens number'',<br />
will require a different '''Exposure'''. This could be because the photos were taken<br />
with a different shutter-speed or simply because the light changed between shots, if so<br />
uncheck '''Link''' here before optimising exposure in the [[hugin Exposure tab]].<br />
<br />
The '''Red multiplier''' and '''Blue multiplier''' settings are used to account for changes<br />
in '''white balance''' (also known as ''colour balance'' or ''colour temperature'') between<br />
photos. Setting them both to ''1'' will result in no ''white balance'' change (the numbers<br />
are relative to the green channel which stays unaltered).<br />
<br />
As with exposure, different photos in the same project are quite likely to require different<br />
''white balance''. Typically this will be caused by variations in lighting conditions between<br />
shots - For example a cloudy scene will contain considerably less ''red'' light than the same scene<br />
under direct sunlight, so uncheck '''Link''' here before optimising '''White balance'''<br />
in the [[hugin Exposure tab]].<br />
<br />
=== Vignetting ===<br />
<br />
[[Vignetting]] is dependent mainly on your lens and the ''aperture''. Usually the<br />
centre of the image is brighter with a falloff towards the edges. The three<br />
numbers here represent a polynomial curve used by [[hugin]] to correct vignetting.<br />
<br />
You are not expected to guess these values, they are generally loaded with a lens<br />
profile or calculated from two or more overlapping photos in the [[hugin Exposure tab]].<br />
<br />
Set the values to ''0,0,0'' for no vignetting correction.<br />
<br />
Usually all photos taken with the same ''lens'' will have the same vignetting, keep<br />
'''Link''' checked to ensure '''hugin''' applies the same vignetting correction to all<br />
photos with the selected lens number.<br />
<br />
=== Vignetting Center Shift ===<br />
<br />
The centre of [[vignetting]] is rarely the exact centre of the photo. The two numbers<br />
here indicate the position of the vignetting centre. The scale is in pixels, with<br />
''0,0'' indicating the centre of the photo. The values are independent of the '''d'''<br />
& '''e''' parameters which specify the origin for projection and geometric distortion.<br />
<br />
As with other lens parameters, this '''Vignetting Center Shift''' can be optimised in<br />
the [[hugin Exposure tab]]. Keep '''Link''' checked to ensure [[hugin]] applies the same<br />
vignetting centre to all photos with the selected lens number.<br />
<br />
=== Camera Response ===<br />
<br />
The [[camera response curve]] is used both for mapping the images to a linear<br />
colourspace when creating [[HDR]] output, and for normalising the colourspace<br />
for internal vignetting, brightness and colour corrections when creating<br />
'normal' '''LDR''' output.<br />
<br />
[[hugin]] uses the [http://www1.cs.columbia.edu/CAVE/projects/rad_cal/rad_cal.php EMoR response model]<br />
from the Computer Vision Lab at Columbia University which simplifies the full<br />
response curve to these five empirical coefficient numbers. You are<br />
not expected to guess these values, they are generally loaded with a lens<br />
profile or calculated from two or more overlapping photos in the [[hugin Exposure tab]].<br />
<br />
Set the five numbers to ''0,0,0,0,0'' to use a generic response curve or change the '''Type'''<br />
to '''Linear''' to indicate that your input photos have a ''scene-referred'' or [[HDR]]<br />
response.<br />
<br />
Keep '''Link''' checked to ensure '''hugin''' applies the same<br />
response curve to all photos with the selected lens number.<br />
<br />
__NOTOC__<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Control_Points_tab&diff=11855Hugin Control Points tab2009-09-29T10:34:31Z<p>Aston: Note that 'g' shortcut doesn't do it all</p>
<hr />
<div>[[Control points]] are central to [[Panorama Tools]] and [[hugin]], because they are used to estimate the position of image position and lens parameters described above.<br />
A control point specifies a corresponding point between two images. Using these corresponding points, the [[hugin Optimizer tab]] can estimate the image position and lens parameters.<br />
It is therefore important that the control points are accurate and usually at least 3 well distributed control points should be used to estimate the image position ([[yaw]], [[roll]] and [[pitch]]) and maybe the [[Field of View|HFOV]].<br />
For accurate estimation of the a,b,c distortion parameters, many well distributed control points, and a large overlap (up to 50%) are required.<br />
<br />
The Tab consists of two image displays and tab bars to switch images to be edited.<br />
The bottom contains a list view where Points can be selected and some fields to edit a selected point.<br />
Points can also be selected by clicking or dragging on them in the images.<br />
It is possible to zoom out to show the full image.<br />
<br />
Adding a control point works by selecting one point in the left or right image, and then clicking onto the corresponding point in the other image.<br />
If '''auto add''' is not set, the points can be moved by clicking at some other place in the images.<br />
They are added to the list of control points by pressing the '''right mouse button''', the '''a''' key or by pushing the '''Add''' button.<br />
If you press the '''right mouse button''' when only one point is selected, the point selection will be aborted.<br />
'''auto add''' adds the control point as soon as both points have been specified.<br />
<br />
If the images are zoomed out (fit to window), the first click zooms to a temporary 100% view to give you the chance to refine your selection.<br />
Note that only the second click will trigger the auto estimate.<br />
<br />
Often it is hard to select the corresponding point exactly.<br />
However, the [[control points]] should be as accurate as possible, for good results.<br />
Once a point pair has been roughly selected, the '''fine tune''' function of [[hugin]] can be used to estimate the corresponding point up to one tenth of a pixel.<br />
The keyboard short cut for the '''fine tune''' function is the '''f''' key.<br />
Fine tune only search in a small neighbourhood of the currently selected points.<br />
The size of this neighbourhood can be controlled by opening the [[Hugin Preferences]] panel and setting the '''Local area search width'''.<br />
<br />
Note that the fine tune function estimates the translation of the patch around the point selected in the other image with respect to the current image.<br />
This works well if the rotation between the images is small and narrow angle lenses have been used.<br />
If wide angle or [[Fisheye Projection]] images are used, rotation search should be activated in the [[Hugin Preferences]] panel.<br />
Then [[hugin]] also searches for rotated occurrences of the patch around the selected point.<br />
<br />
The image can be scrolled by pressing the '''middle mouse button''' or the '''CTRL''' key while moving the mouse.<br />
If the '''shift''' key is pressed instead, both images will be scrolled.<br />
This is very useful if [[control points]] are set using the 100% zoom level.<br />
<br />
Control point creation is also influenced by the following check boxes:<br />
<br />
* '''auto fine tune''' [[hugin]] helps you to find the second point by looking for it in a search region (shown by a rectangle around the cursor). This might not always work, but usually is reliable, if the image distortions are not too big. Try and play with it.<br />
* '''auto add''' A control point is automatically added when both points are known. You won't have time to refine the selection before adding the point.<br />
* '''auto estimate''' Tries to estimate the position of the second point by estimating the translation between the two images. This is very crude and probably only works for single row panoramas created from [[Rectilinear Projection]] images.<br />
<br />
All these flags can be combined. I typically use '''auto fine tune''' and '''auto estimate''' at the same time.<br />
Then [[hugin]] usually automatically selects the second point correctly, at least for normal, [[Rectilinear Projection]] images that are not rotated too much.<br />
<br />
[[hugin]] also includes an experimental [[control points]] creation algorithm.<br />
It can be invoked by pressing the '''g''' key. Corners in the currently selected image are detected, and corresponding control points are set based on the current relative positions of the two images. The images need to be approximately aligned already for this to be useful. Note that these points then need to be aligned by eye, with the '''Fine-tune''' button or with the '''Fine-tune all Points''' function in the Edit menu of the [[Hugin Main window]].<br />
<br />
== Control point mode ==<br />
<br />
Use the '''mode''' pull down menu to change the type of an existing pair of [[control points]].<br />
<br />
=== normal control points ===<br />
<br />
The '''normal''' control point mode is used to align pairs of overlapping photos by matching<br />
identical features in both photos.<br />
<br />
=== vertical line and horizontal line control points ===<br />
<br />
Pairs of [[vertical control points]] and [[horizontal control points]] are different from<br />
'''normal''' control points since they are used to align input images to particular alignments<br />
in the output panorama rather than simply stitching images together.<br />
<br />
Select two points along a feature that you want to be aligned vertically or horizontally in<br />
the final panorama. If these are in the same photo, [[hugin]] will usually detect that you are<br />
trying to create ''horizontal'' or ''vertical'' control points and set the mode appropriately,<br />
if they are in different photos then you will need to set the mode manually.<br />
<br />
Typically ''horizontal'' and ''vertical'' points are used either to [[Leveling a Finished Panorama|level a spherical panorama]]<br />
or to [[Perspective correction|correct perspective]].<br />
<br />
=== Straight line control points ===<br />
<br />
Adding [[straight line control points]] is basically the same as<br />
creating '''horizontal control points''' and '''vertical control points''', except that you<br />
need more than just one pair to make up a straight line.<br />
<br />
Create a pair of points in the '''hugin Control Points tab''', then pick<br />
'''Add new line''' in the '''mode''' pull-down. This first line will be called<br />
'''Line 3''', you can assign more pairs of points to it using the same<br />
'''mode''' pull-down.<br />
<br />
== Keyboard shortcuts ==<br />
<br />
Here is a summary of the keyboard shortcuts available in the Control Point tab:<br />
<br />
Key Function<br />
<br />
* '''a''' add a new point that has been selected in both images, and the '''auto add''' is switched off.<br />
* '''cursor keys''' scroll image under the mouse cursor<br />
* '''shift + cursor keys''' scroll both images at the same time<br />
* '''f''' fine tune currently selected control point pair. Same as the '''Fine Tune''' button<br />
* '''g''' experimental control point generation algorithm.<br />
* '''Del''' Remove currently selected control point.<br />
* '''0''' Zoom out to full view.<br />
* '''1''' 100% view.<br />
<br />
Mouse function Function<br />
<br />
* '''control key + mouse movement''' Scroll image under cursor<br />
* '''shift key + mouse movement''' Scroll both images<br />
* '''left button''' Use left mouse button to select new points or drag existing points.<br />
* '''right mouse button''' Add control point, if '''auto add''' is switched off<br />
* '''middle mouse button''' Scroll image under cursor<br />
* '''shift + middle mouse button''' Scroll both images<br />
<br />
__NOTOC__<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Panorama_scripting_in_a_nutshell&diff=11854Panorama scripting in a nutshell2009-09-29T09:07:39Z<p>Aston: Note some recent tools</p>
<hr />
<div>This is a short document describing the various Open Source tools and techniques available for working with panoramas in a non-GUI environment. The examples are based on Linux experience, but most of them should work on OS X or Windows with minor modifications at most.<br />
<br />
This document is also useful for understanding what happens 'under the hood' in [[hugin]] itself and recommended reading for anyone looking to work with the hugin sourcecode.<br />
<br />
= Why would you do that? =<br />
<br />
Creating and manipulating panoramas is something that should obviously be done in a [[GUI front-ends|graphical tool]]. This is true, but perhaps you find that you are spending more time operating a computer than being a photographer. This is an indication that something is wrong - The computer exists to do the boring work and scripting is one way to make this happen.<br />
<br />
= PanoTools 'Scripting' =<br />
<br />
The file format first used in Helmut Dersch's [[Panorama tools]] is often referred to as a 'script', but a 'PanoTools' script is really a data file describing a 'panorama stitching project'.<br />
<br />
Although these original PanoTools are obsolete, the file format is alive and well with several variations used as project files by [[PTGui]], [[PTAssembler]], [[hugin]] and related tools. These files are simple plain-text, sometimes it is useful to modify them directly with a text editor - Further on we will introduce various methods for manipulating them via the 'programming' kind of scripts.<br />
<br />
= Simple command-line stitching =<br />
<br />
Lets start with a basic but common use case: Photographers with quality [[Nodal point adapters|panoramic tripod heads]] can reproduce identical sets of photos every time, in this situation there is no need to create a new stitching project for every panorama, it is enough to use a single project as a template.<br />
<br />
This example takes a pre-existing project called template.pto, created with three photos. It uses [[nona]] for remapping, and [[enblend]] for blending the remapped photos into a finished [[TIFF]] image:<br />
<br />
nona -o out -m TIFF_m template.pto DSC_1234.JPG DSC_1235.JPG DSC_1236.JPG<br />
enblend -o finished.tif out0000.tif out0001.tif out0002.tif<br />
<br />
The first [[nona]] command creates three remapped [[TIFF]] images called out0000.tif, out0001.tif etc... the list of input images can be substituted with any set of identically sized photos. The second [[enblend]] command uses these TIFF files as input and merges them to a file called finished.tif.<br />
<br />
= Creating hugin projects on the command-line =<br />
<br />
The entire panorama creation process can be performed on the command-line, and therefore scripted, doing this involves a series of steps similar to the workflow in a GUI tool.<br />
<br />
== Generating control points ==<br />
<br />
There are a number of tools available for generating [[control points]] from groups of photos, such as [[autopano-sift]], [[autopano-sift-c]], [[panomatic]] and [[match-n-shift]]. Here is an example using autopano-sift-c:<br />
<br />
autopano-sift-c --projection 0 50 project.pto DSC_1234.JPG DSC_1235.JPG DSC_1236.JPG<br />
<br />
This will create a .pto project with [[control points]] (if any) linking the three photos, note that the [[projections|projection]] format (f0, [[Rectilinear Projection|rectilinear]]) of the input photos and approximate horizontal [[Field of View|angle of view]] (v50, 50 degrees) have to be specified.<br />
<br />
== Pruning control points ==<br />
<br />
This still isn't a finished panorama, at the very least this involves [[optimization|optimising]] the camera positions and then rendering the output.<br />
<br />
You could go ahead and [[optimization|optimise]] this project file straight away, but this can be a bit hit and miss. First it is a good idea to clean up the [[control points]]. There are currently two useful tools for cleaning control points: [[Using Celeste with hugin|celeste]] removes points from areas of sky and [[ptoclean]] removes points with large error distances, first [[celeste_standalone]]:<br />
<br />
celeste_standalone -i project.pto -o project.pto<br />
<br />
Then [[ptoclean]]:<br />
<br />
ptoclean -v --output project.pto project.pto<br />
<br />
Note that in both cases we are overwriting the input project.pto file with the cleaned output. If you want you can create intermediate temporary files and keep each step in case you need to backtrack.<br />
<br />
(Other control point cleaners are [[ptscluster]] and the new [[cpclean]])<br />
<br />
== Optimising positions and geometry ==<br />
<br />
Up to now, the project file simply contains an image list and [[control points]], the images are not yet aligned, you can do this by [[optimization|optimising]] geometric parameters with the [[autooptimiser]] tool:<br />
<br />
autooptimiser -a -l -s -o project.pto project.pto<br />
<br />
Now you could just skip ahead and render the output if photometric [[optimization|optimisation]] isn't required.<br />
<br />
([[PToptimizer]] is an alternative geometrical optimiser)<br />
<br />
== Optimising photometric parameters ==<br />
<br />
Photos have photometric exposure variables which can be [[optimization|optimised]] in much the same way as aligning positions. Doing this can remove brightness, [[white balance]] and [[vignetting]] differences between photos, giving better blending or allowing creation of [[HDR]] images.<br />
<br />
[[vig_optimize]] does the equivalent job for photometric parameters as [[autooptimiser]] does for geometric parameters. It doesn't have an equivalent of the autooptimiser -a 'auto' mode, so you need to indicate in the .pto project which parameters are 'variables', use a tool such as [[ptovariable]]:<br />
<br />
ptovariable --vignetting --response --exposure project.pto<br />
vig_optimize -o project.pto project.pto<br />
<br />
= Stitching hugin projects on the command-line =<br />
<br />
== Rendering images ==<br />
<br />
The [[hugin]] tool for remapping and distorting the photos into the final panorama frame is [[nona]], it uses the .pto project file as a set of instructions:<br />
<br />
nona -m TIFF_m -o project project.pto<br />
<br />
This [[nona]] command creates one remapped [[TIFF]] image for each of the input photos, these will be named project0000.tif, project0001.tif, project0002.tif etc...<br />
<br />
([[PTblender]] is an alternative renderer to [[nona]])<br />
<br />
== Blending ==<br />
<br />
[[nona]] can do rudimentary assembly of the remapped images, but a much better tool for this is [[enblend]], feed it the images, it will pick seam lines and blend the overlapping areas:<br />
<br />
enblend -o project.tif project0000.tif project0001.tif project0002.tif ...<br />
<br />
Finally this produces the stitched panorama: project.tif<br />
<br />
= ''Makefile'' stitching system =<br />
<br />
This simple stitching process works well on the command-line, but it gets increasingly complicated when dealing with [[bracketing|bracketed]] stacks of photos, these are necessary for exposure blending with [[enfuse]] or [[HDR]] creation with [[hugin_hdrmerge]].<br />
<br />
Luckily [[hugin]] understands about stacks and is capable of breaking-up a project into each of the stitching tasks: rendering, assembling stacks and blending. These targets are written to a standard ''Makefile'' formatted file whenever a project is saved or stitched, e.g when you save project.pto using the hugin GUI, project.pto.mk is saved also. Stitching is then performed not by the hugin GUI, but by GNU ''make'' which processes the targets in the ''Makefile'', resulting in the final stitched panorama.<br />
<br />
== Creating ''Makefile''s with pto2mk ==<br />
<br />
This functionality is also available for use with any .pto project with the command-line [[pto2mk]] tool:<br />
<br />
pto2mk -o project.pto.mk -p project project.pto<br />
make -f project.pto.mk<br />
<br />
One of the advantages of using ''make'' on the command-line is that re-running this command will only redo necessary work. If none of the input files have changed, then ''make'' will finish immediately; however if one of the input or intermediate files has changed, say by modifying an [[alpha channel]], then only the tasks necessary to integrate that image into the final panorama will be redone.<br />
<br />
== ''make'' options ==<br />
<br />
''make'' supports multiple targets, by default [[hugin]] creates an 'all', it also creates a 'clean' target that deletes intermediate files. So you can clean up afterwards like so:<br />
<br />
make -f project.pto.mk clean<br />
<br />
Internal variables can be overriden by environment variables using the '-e' flag, so to stitch using the alternative [[nona-mask]] tool instead of [[nona]], use something like this:<br />
<br />
NONA=nona-mask make -e -f project.pto.mk<br />
<br />
Alternatively variables can be simply appended to the end of any ''make'' command, this does exactly the same thing:<br />
<br />
make -f project.pto.mk NONA=nona-mask<br />
<br />
In a shell such as bash, setting the environment will modify internal variables for the rest of the session:<br />
<br />
export ENFUSE='enfuse -l 29'<br />
<br />
(note that this will override any existing useful [[enfuse]] options)<br />
<br />
== Parallel ''make'' ==<br />
<br />
''make'' supports parallel processing for machines with multiple cores/processors with the '-j' parameter, so for a 16 core system this command will stitch using 16 parallel processes:<br />
<br />
make -j 16 -f project.pto.mk NONA='nona -t 1'<br />
<br />
(note that by default [[nona]] uses all available cores, in this case it needs to be limited to one thread so that 16 instances of nona can run at the same time)<br />
<br />
== Stitching queues ==<br />
<br />
Processing a series of projects one after another is simple enough, this command will stitch all the projects in a folder:<br />
<br />
for file in *.pto.mk; do make -f $file; done<br />
<br />
For more advanced command-line stitching, a tool like [http://distmake.sourceforge.net/ distmake] will manage a queue of ''Makefile'' stitching jobs, and even load-balance multiple machines over a network.<br />
<br />
== ''Makefile'' plugins ==<br />
<br />
A ''Makefile'' can be extended with additional targets by creating a second ''Makefile'' that includes the original [[hugin]] .pto.mk ''Makefile''. For instance a plugin ''Makefile'' called 'Makefile.psd.mk' might define a new target called 'ldr_psd' that assembles a multilayer [[PSD]] file for manual blending in a tool such as the [[Gimp]]:<br />
<br />
include $(PTO).mk<br />
ldr_psd : $(LDR_LAYERS) $(LDR_BLENDED)<br />
PTtiff2psd -o $(LDR_REMAPPED_PREFIX_SHELL)_layered.psd \<br />
$(LDR_LAYERS_SHELL) $(LDR_BLENDED_SHELL)<br />
<br />
You can then use this plugin by calling the ldr_psd target and supplying the name of the relevant .pto project:<br />
<br />
make -f Makefile.psd.mk ldr_psd PTO=project.pto<br />
<br />
Hugin installs with an example Makefile.equirect.mk plugin with some common add-on tasks such as creating basic [[QTVR]], [[PanoSalado]] and [[SPiV]] files.<br />
<br />
== Useful ''Makefile'' variables ==<br />
<br />
Each filesystem PATH in this table has a matching PATH_SHELL version with special characters escaped - This is the version that should be used in the 'command' part of each ''Makefile'' rule.<br />
<br />
{|<br />
| $(INPUT_IMAGES) || list of input files<br />
|-<br />
| $(INPUT_IMAGE_1) || first input file<br />
|-<br />
| $(PROJECT_FILE) || .pto project file<br />
|-<br />
| ||<br />
|-<br />
| $(HUGIN_PROJECTION) || output [[projections|projection]] type in panotools numeric format<br />
|-<br />
| $(HUGIN_HFOV) || output horizontal [[Field of View|angle of view]] in degrees<br />
|-<br />
| $(HUGIN_WIDTH) || output width in pixels<br />
|-<br />
| $(HUGIN_HEIGHT) || output height in pixels<br />
|-<br />
| ||<br />
|-<br />
| $(DO_LDR_BLENDED) || set if 'normal' stitching with no exposure blending set<br />
|-<br />
| $(DO_LDR_STACKED_BLENDED) || set if stitching with 'exposure blending' set<br />
|-<br />
| $(DO_HDR_BLENDED) || set if [[HDR]] merging set<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_REMAPPED_PREFIX) || normal blended output prefix<br />
|-<br />
| $(LDR_EXPOSURE_REMAPPED_PREFIX) || exposure blended output prefix<br />
|-<br />
| $(HDR_STACK_REMAPPED_PREFIX) || [[HDR]] merged output prefix<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_BLENDED) || normal blended output file<br />
|-<br />
| $(LDR_STACKED_BLENDED) || exposure blended output file<br />
|-<br />
| $(HDR_BLENDED) || [[HDR]] merged output file<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_LAYERS) || list of normal unblended output files<br />
|-<br />
| $(LDR_STACKS) || list of exposure blended stack files<br />
|-<br />
| $(LDR_EXPOSURE_LAYERS) || list of blended exposure layers<br />
|-<br />
| $(HDR_STACKS) || list of [[HDR]] merged stack files<br />
|}<br />
<br />
= Holding it all together with panostart =<br />
<br />
The .pto.mk ''Makefile'' helps with the stitching at the end of the process, but doesn't help with the bits at the beginning such as: identifying which photos go in which panorama, generating [[control points]], pruning and [[optimization|optimising]].<br />
<br />
[[panostart]] is a prototype tool that does it all. Given a list of photos in a folder, it identifies likely panoramas by comparing [[EXIF]] timestamps and writes a meta-''Makefile'' containing: rules for generating .pto projects with [[match-n-shift]], rules for generating corresponding .pto.mk ''Makefile''s with [[pto2mk]], rules for stitching the projects with ''make'', plus some other rules for creating useful distributable output.<br />
<br />
A typical [[panostart]] command for dealing with a folder full of photos taken with a pocket point-and-shoot camera on auto-exposure might look like this:<br />
<br />
panostart --output Makefile --projection 0 --fov 50 --nostacks --loquacious *.JPG<br />
<br />
Processing this ''Makefile'' is simple:<br />
<br />
make<br />
<br />
Some of the resulting panoramas will have position, cropping and stitching errors. Fix these by editing the relevant .pto projects in [[hugin]] or another tool, when you type ''make'' again on the command-line, only those projects that have changed will be restitched.<br />
<br />
Another advantage of doing things this way is reproducibility: delete all the (enormous) [[TIFF]] output panoramas and all you need to keep permanently are the photos, the meta-''Makefile'' and the associated .pto projects. If you ever need to recreate the TIFF panoramas in the future, just type ''make''. If you know the name of the TIFF file you want, just type 'make project.tif' and only a single panorama will be processed.<br />
<br />
= Panotools::Script for manipulating project files =<br />
<br />
The name is a historical mistake, [[Panotools_Script|Panotools::Script]] is a perl library for working with [[hugin]] .pto projects, though it could be extended in the future to cover any of the related file formats. Many of the command-line tools described in this document are written with this library.<br />
<br />
Here is a trivial script, all it does is open and save a .pto project, it also resets the output ('p' Panorama line) [[Field of View|angle of view]] to 360 degrees (v360), the [[projections|projection]] format to [[equirectangular Projection|equirectangular]] (f2) and the output pixel size to 4096x2048 pixels (w4096 h2048):<br />
<br />
#!/usr/bin/perl<br />
use Panotools::Script;<br />
my $pto = new Panotools::Script;<br />
$pto->Read ($ARGV[0]);<br />
$pto->Panorama->Set (v => 360, f => 2, w => 4096, h = 2048);<br />
$pto->Write ($ARGV[0]);<br />
<br />
Here's slightly more complex script, this iterates over the input images and increments the [[white balance]] making the panorama slightly 'warmer':<br />
<br />
#!/usr/bin/perl<br />
use Panotools::Script;<br />
my $pto = new Panotools::Script;<br />
$pto->Read ($ARGV[0]);<br />
for my $image (@{$pto->Image})<br />
{<br />
my $Er_new = $image->{Er} * 100 / 95; # red value<br />
my $Eb_new = $image->{Eb} * 95 / 100; # blue value<br />
$image->Set (Er => $Er_new, Eb => $Eb_new);<br />
}<br />
$pto->Write ($ARGV[0]);<br />
<br />
= Full list of command-line tools =<br />
<br />
== Control point generation ==<br />
<br />
* [[autopano-sift-c]] - All in one keypoint generator and matcher<br />
* [[match-n-shift]] - All in one wrapper around [[align_image_stack]] and [[autopano-sift-c]]<br />
* [[panomatic]] - All in one alternative to [[autopano-sift-c]]<br />
* [[align_image_stack]] - Generates [[control points]] for stacked photos<br />
<br />
* generatekeys - Keypoint generator<br />
* matchpoint - Keypoint generator<br />
* autopano - Keypoint matcher, part of [[autopano-sift-c]] and not to be confused with autopano<br />
<br />
== Project file modification ==<br />
<br />
* ptoset - Change global parameters and project options<br />
* [[ptovariable]] - Set typical [[optimization|optimisation]] variables<br />
* ptsed - Set any project parameter, convert .pto into PanoTools format<br />
* [[ptosort]] - Sort [[control points]] or images, remove duplicate control points<br />
* ptopath - Remove file paths in project files<br />
* [[transform-pano]] - [[Roll]], [[pitch]] and [[yaw]] rotation of .pto projects<br />
* ptocentre - Rotate projects to put images in panorama centre<br />
<br />
* [[ptomerge]] - Join two or more projects<br />
* [[ptosplit]] - Extract subsets of images from a project into a new project<br />
<br />
== Control point pruning ==<br />
<br />
* ptscluster - Clean 'bad' [[control points]] based on distances and position<br />
* [[celeste_standalone]] - Clean sky [[control points]]<br />
* [[ptoclean]] - Clean 'bad' [[control points]] based on standard deviation error<br />
* [[cpclean]] - An improved version of [[ptoclean]], part of the [[hugin]] project<br />
<br />
== Optimisation ==<br />
<br />
* [[autooptimiser]] - [[optimization|Optimise]] geometry of .pto projects<br />
* [[PToptimizer]] - [[optimization|Optimize]] geometry of PanoTools format projects<br />
* [[vig_optimize]] - [[optimization|Optimise]] photometric parameters of .pto projects<br />
<br />
== Rendering ==<br />
<br />
* [[nona]] - Default [[hugin]] rendering engine<br />
* [[nona-mask]] - Wrapper around [[nona]] for using external bitmap masks<br />
* [[PTmender]] - Render PanoTools format projects<br />
<br />
* [[PTAInterpolate]] - Create intermediate images from PanoTools projects<br />
<br />
== Blending ==<br />
<br />
* [[enblend]] - Merge partially overlapping images with multiresolution splines<br />
* [[enfuse]] - Merge overlapping images with exposure fusion<br />
* PTroller - Merge partially overlapping images with no seaming<br />
* PTmasker - Compute stitching masks for input by PTroller<br />
* enblend-mask - Wrapper around [[enblend]] for using external bitmap masks<br />
* enfuse-mask - Wrapper around [[enfuse]] for using external bitmap masks<br />
* [[hugin_hdrmerge]] - Merge [[bracketing|bracketed]] images for [[HDR]] generation<br />
* enblend-svg - Wrapper around [[enblend]] for specifying input images via SVG files<br />
<br />
* process-masks - Allow 'positive' masking in external masks for [[enblend]]<br />
* tif2svg - Assemble multiple [[TIFF]] images into SVG files for enblend-svg<br />
* [[PTblender]] - Correct colour and brightness of overlapping images<br />
<br />
== Misc ==<br />
<br />
* [[panostart]] - All-in-one panorama workflow via ''Makefile''s<br />
* [[pto2mk]] - Create platform specific ''Makefile'' for stitching a project<br />
* [[ptodummy]] - Generate missing input photos to debug .pto projects<br />
* [[calibrate_lens]] - Automatic lens calibration using straight-line detection<br />
<br />
== Chromatic aberration ==<br />
<br />
* [[fulla]] - Correct lens distortion and [[chromatic aberration]]<br />
* [[tca_correct]] - Calculate [[chromatic aberration]] in a photo<br />
<br />
== Querying ==<br />
<br />
* ptograph - Draw undirected graphs of projects<br />
* ptoget - Query any project parameter<br />
* ptoinfo - Generate a report on a project file<br />
* PTinfo - Display info about a panotools generated [[TIFF]] file<br />
* [[panoinfo]] - Display information about installed [[libpano13]] library<br />
<br />
== TIFF files ==<br />
<br />
* PTtiff2psd - Join multiple [[TIFF]] images into a multilayer [[PSD]] file<br />
* PTtiffdump - Compare two TIFF files<br />
* PTcrop - Remove unwanted empty space in [[TIFF]] files and replace with offsets<br />
* PTuncrop - Replace offsets in [[TIFF]] files with empty pixels<br />
<br />
== Output formats ==<br />
<br />
* [[qtvr2img]] - Extract six cubefaces from a cubic [[QTVR]]<br />
* cubic2erect - Render six cubefaces into a single [[equirectangular Projection|equirectangular]] image<br />
* qtvr2erect - Render a cubic [[QTVR]] into a single [[equirectangular Projection|equirectangular]] image<br />
* jpeg2qtvr - Assemble six [[JPEG]] cubefaces into a cubic [[QTVR]]<br />
* [[erect2qtvr]] - Render a single [[equirectangular Projection|equirectangular]] image into a cubic [[QTVR]]<br />
<br />
* erect2cubic - Create a .pto project for extracting cube faces from an [[equirectangular Projection|equirectangular]] image<br />
* erect2planet - Create a .pto project for extracting a 'little planet' from an [[equirectangular Projection|equirectangular]] image<br />
* erect2mercator - Create a .pto project for extracting a mercator view from an [[equirectangular Projection|equirectangular]] image<br />
<br />
== Older tools ==<br />
<br />
Helmut Dersch's [[PTOptimizer]] and [[PTStitcher]] were the original command-line tools. These are not really recommendable any more as they require an older, buggier version of the [[libpano12]] library, they are closed source so don't work on modern systems such as OS X or 64bit Linux, and are lacking in features compared to modern replacements such as [[autooptimiser]] and [[nona]].<br />
<br />
= Useful Image processing tools =<br />
<br />
* [[ImageMagick]] - Many utilities for converting, manipulating and resizing images<br />
* GraphicsMagick - A fork of ImageMagick with many improvements<br />
* libtiff - Supplied with useful tools such as tiffcp for joining and recompression, and tifficc for adding ICC colour profiles<br />
* [[exiftool]] - All purpose reading, setting and copying of [[EXIF]] data<br />
* exiv2 - [[EXIF]] manipulation, useful for setting the file modification date from the EXIF date<br />
* jpegtran - Lossless rotation of [[JPEG]] images<br />
* ufraw-batch - Command-line [[RAW]] processing<br />
* [[dcraw]] - Command-line [[RAW]] processing<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Tutorial:Specialised]]<br />
<br />
--[[User:Bruno|Bruno]] 21:23, 2 May 2009 (UTC)</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_FAQ&diff=11812Hugin FAQ2009-09-22T10:42:17Z<p>Aston: Replace lots of bad advice</p>
<hr />
<div>== Common error messages ==<br />
<br />
=== enblend: no input files specified ===<br />
<br />
There are no input images relevant to the output 'panorama' so hugin had nothing to do, probably because all the input images are outside the panorama 'frame'. Open the [[Hugin Preview window]] or [[Hugin Fast Preview window]] to adjust the view and/or crop.<br />
<br />
=== enblend: error writing to image swap file ===<br />
<br />
[[enblend]] needs a lot of memory and uses its own swap routine to store picture data on the disk, this message indicates that you have run out of disk space. The data is stored in the system temp folder which is specified by TMP, TEMP or TMPDIR environment variables, note that this temp folder may be on a different physical disk to your photos and panorama output.<br />
<br />
=== false --compression NONE ===<br />
<br />
This error is caused by a bug in the 0.7.0 release that is fixed in 0.8.0. The problem is that your preferences are messed-up, the workaround for 0.7.0 is to go to File -> Preferences -> Enblend and click Load Defaults -> Yes -> Ok<br />
<br />
=== Enblend error: Mask is entirely black, but white image was not identified as redundant ===<br />
<br />
This is a well known "error" for [[enblend]]. Try to use the additional enblend parameter "--fine-mask" to ged rid of the error. The parameter will result in generation of masks in higher resolution that will fix the problem in most cases. Sometimes the "--fine-mask" parameter may result in memory errors (malloc: ...), which are the result of not enough memory available due to the (much) bigger masks that are used.<br />
<br />
An alternative workaround would be to set the enblend --no-optimize parameter, this will place the seam directly along the middle of the image overlaps regardless of image content. This option is also considerably faster and uses less memory.<br />
<br />
=== enblend: illegal option -- compression ===<br />
<br />
hugin 0.7.0 and later versions require at least [[enblend]] version 3.2. This error indicates that you need to upgrade enblend.<br />
<br />
=== Makefile: target pattern contains no % ===<br />
<br />
This is a message generated by [[w:Make_(software)]] (which [[Hugin]] uses to manage the stitching sequence). The error is caused by a ''':''' or '''#''' character in one of the file paths. The workaround is to rename to remove any 'special' shell characters and try again.<br />
<br />
=== nona: GL error: Framebuffer incomplete, incomplete attachment in: ===<br />
<br />
This is a message generated by nona when using the GPU for stitching (feature available starting with Hugin-2009.2.0). See section below about [[#GPU-stitching_.28nona.29|GPU-stitching]].<br />
<br />
== Known Limitations ==<br />
<br />
=== Linux: Compiz ===<br />
<br />
Linux: Compiz interferes with the [[hugin Fast Preview window]]. This is not a hugin specific issue. Research shows all direct rendered stuff will have various problems under Compiz: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/96991<br />
<br />
This problem is fixed with DRI2, e.g with fedora 11 and intel graphics hardware you can have a 'wobbly' Fast Preview window if you really want.<br />
<br />
It's not an issue with NVidia's proprietry driver.<br />
<br />
If you're affected, the workaround is to not use Compiz.<br />
<br />
=== Windows: International Characters in Path ===<br />
<br />
Hugin is fully internationalised and can cope with special characters in file paths. However, hugin apparently fails on Windows systems with Russian and Czech codepages, the workaround is to use shell-safe ascii characters in file and folder names: '''A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 - _ .'''<br />
<br />
=== Non-Unique Filenames ===<br />
<br />
Some components of Hugin have been reported not to deal well with image files<br />
that have the same name in different folders. The workaround is to rename <br />
your images files so that all image files in a project are unique.<br />
<br />
=== Temporary Files ===<br />
<br />
Hugin has a preference setting for the temporary files folder. Currently it<br />
is not implemented properly and files will be written in the same folder as<br />
the project file.<br />
<br />
A partial workaround on Linux is to start Hugin from a terminal with<br />
<pre><br />
TMPDIR=/media/disk-2/tmp hugin &<br />
</pre><br />
<br />
These temporary files have to be deleted manually after the stitch.<br />
<br />
== Control Point creation ==<br />
<br />
=== How do I add control points ===<br />
The [[control points]] editor is quite powerful, but its usage is probably not obvious on the first try. Here are some ways the developers use the Control Point panel:<br />
<br />
1. Selecting control points in 100% zoom.<br />
<br />
This method needs some scrolling, if big images are used. You might want to try the fit to window zoom setting in that case. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: 100%<br />
[X] auto fine tune<br />
[X] auto add<br />
[X] auto estimate<br />
<br />
Click on a prominent feature in the left image. If the image pair already contains control points, [[hugin]] will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The second point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by dragging them to a better position. Press the "f" key to fine tune the point in a small area.<br />
<br />
<br />
2. Selecting control points in fit to window mode.<br />
<br />
I uses this mode if I need to set points on big images. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: fit to window<br />
[X] auto fine tune<br />
[ ] auto add<br />
[X] auto estimate<br />
<br />
Click on left image. The image will be shown in 100% view. Within the detailed view, click on a prominent feature. If the image pair already contains control points, hugin will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by clicking at the desired position. Move the point close to the desired feature and press the "f" key to fine tune the point. When the points are on the same feature, press the right mouse button, or press the "a" key to add the control point pair. It will then be shown in the list below the image.<br />
<br />
=== How do I scroll both images at the same time? ===<br />
<br />
Try pressing the shift key while moving the mouse. The control key or the middle mouse button can be used to scroll only the image under the mouse cursor.<br />
<br />
=== How do I stop Hugin pausing for a moment after every click? ===<br />
<br />
The ''preview window'' updates continuously whenever anything changes, so disable the preview auto-update, close it or make it smaller if you don't need it.<br />
<br />
Otherwise, picking [[control points]] with ''auto fine tune'' selected can involve a lot<br />
of processing. You can reduce this by ''selecting File -> Preferences -> Finetune'' and<br />
lowering the values for ''Patch width'', ''Search area width'' and ''Local search area width''.<br />
This means you can't be so sloppy when clicking to create control points, but the results will<br />
be the same.<br />
<br />
== Common problems when creating a panorama ==<br />
<br />
=== How can I reuse a project as a template? ===<br />
<br />
If you copy a .pto project to a different folder and open it with hugin, you will be prompted for the 'missing' images. You should delete any control points from this template project since they won't be relevant to the new photos.<br />
<br />
Alternatively you can load your images as normal, then ''Apply template''<br />
from the ''File'' menu, this will import image settings and parameters<br />
from a previous project.<br />
<br />
=== How do I straighten a curved horizon? ===<br />
If the panorama looks nice but the horizon is curved, there are two ways to improve the image and straighten the horizon. First, try optimizing the view by selecting "Positions and View" as the optimization mode and run the optimizer afterwards. By clicking "Calculate Field of View" in the "Stitcher" tab and displaying the preview window afterwards you can check if the image has been improved.<br />
<br />
If it is still curved, you have to add vertical guide control points in the "Control Points" tab. Usually two [[vertical control points]] are enough to straighten the horizon nicely. Often edges of buildings, poles or other man made structures provide good vertical lines. To add a vertical control point, switch to the control point editor and select the same image on both sides. Place a control point on the left image on the upper area of the vertical feature. In the right image, select a control point on the lower area of the features, and press the Add button. Once the new point has been added, its type should automatically switch to "vertical line". You might want to switch off the auto-add and auto-estimate options while doing this to avoid naggy dialogs while adding these guide points.<br />
<br />
Two points that are roughly 90 degrees apart provide the best effect.<br />
<br />
See also the related perspective correction tutorials: [http://hugin.sourceforge.net/tutorials/architectural/en.shtml hugin tutorial on perspective correction], [[Perspective correction]], [[Leveling a Finished Panorama]]. While these are concerned with correction of the perspective in one image, the same technique can be used for<br />
leveling a panorama.<br />
<br />
=== Half the panorama is black, my pictures fill only the right half of the output ===<br />
<br />
Hugin uses the first photo as the ''anchor'' image and puts it in the middle by default. This means that if you shot a sequence from left to right, the images will fill the right hand side of the panorama. There are two ways to fix this:<br />
<br />
* Open the '''preview''' window and click the '''center''' button.<br />
* or select the middle photo, hit '''anchor this image for position''' and '''reset''' in the '''images''' tab, then reoptimise.<br />
<br />
=== I get visible bands in the sky and other flat areas, what can I do? ===<br />
<br />
Make sure you are using [[enblend]] to do the final image assembly, this will blend the overlap as much as is possible - Enable enblend by stitching the images '''into a high quality TIFF file''' in the '''stitcher''' tab.<br />
<br />
If you still have problems, then you probably have to correct [[vignetting]] in your images. In the vignetting area of '''camera and lens''' tab, select '''edit parameters...'''. Then select '''division''', '''polynomial''' and '''estimate polynomial''' to calculate a vignetting correction curve for your camera combination - This will be applied to every photo in your project when you click '''OK'''.<br />
<br />
=== My photos never quite line up, what can I do? ===<br />
<br />
It is normal to get little stitching [[parallax]] errors if<br />
the camera moves between photos. The solution is to rotate the camera around<br />
the [[no-parallax point]] using a [[Heads|panoramic head]] or [[philopod]].<br />
<br />
Otherwise you can sometimes improve things by optimising the ''d & e'' parameters<br />
separately - When you optimise '''everything''', unselect '''Inherit''' in<br />
the '''camera and Lens''' panel for 'd & e'.<br />
<br />
If these parallax errors are still large, you need to decide which<br />
parts of the scene that you want to line-up and which parts don't<br />
matter. Select [[control points]] only on objects that you do want to<br />
line-up and which are all about the same distance from the camera.<br />
<br />
The remaining broken lines can then be retouched in a photo editor like the [[gimp]].<br />
The ''shear'' tool is ideal for bending the lines and<br />
[[Mending parallax errors with the shear tool|getting them to line up]].<br />
<br />
=== I have extraded and edited cubefaces and want to merge them together again. How do I do that ? ===<br />
<br />
Set the '''enblend options''' to -l1 --fine-mask --no-optimize<br />
<br />
=== Can I stitch my HDR images ? ===<br />
<br />
Yes. If you already have merged your HDR stacks, follow the '''Normal''' Output on the '''Stitcher''' tab ('''HDR merging''' is for stacks that will be merged by Hugin). In the '''Processing''' step the output will be an HDR in TIFF format.<br />
<br />
== GPU-stitching (nona) ==<br />
<br />
Starting with Hugin-2009.2 nona has a new, experimental feature: it can use the video card (GPU) to accelerate the stitching. How much acceleration you will get, if any, depends on the combination of video card and driver.<br />
<br />
=== I get a nona: GL error. Does this mean that I found a bug? ===<br />
<br />
Not necessarily. This functionality is highly experimental. It may be that you have an outdated driver, or that the functionality is not supported on your video card. Note down the version of the driver you are using and the specs of your video card (GPU and RAM). Then update to the latest driver from [http://www.nvidia.com/page/drivers.html nVidia] or [http://support.amd.com/us/gpudownload/Pages/index.aspx AMD] (ATI has been bought by AMD). Currently only these two families of GPUs support the functionality.<br />
<br />
=== How can I know if nona-GPU works on my system? ===<br />
<br />
At the moment we have too little information to predict this. We know that only nVidia and AMD(ATI) powered video cards work, and not all of them. The more recent the video card, the higher the likelihood that it works. Improve your chances by updating to the latest driver for your GPU. Look at experience reports from other users and report your experience [[Nona GPU stitching reports|here]].<br />
<br />
=== What speed improvement can I expect? ===<br />
<br />
It depends on the video card. Bandwidth is mostly the bottleneck, specifically getting the transformed data from the GPU back to the main system memory.<br />
<br />
=== Bug Reporting ===<br />
<br />
When reporting success or failure using the GPU for stitching, always report also the driver version, video card GPU and RAM. Tell us what you were doing, the size and number of input images (note that if you stitch from within Hugin or PTBatcher, it is only one input image at a time).<br />
<br />
== Postprocessing ==<br />
<br />
=== Why is the ICC profile of my input images not preserved? ===<br />
<br />
Since hugin 0.5 and enblend 2.4 [[colour profile|ICC profiles]] in the input files are transfered to the output panorama. Please update to a current version.<br />
<br />
=== How can I postprocess the image using multiple layers in The Gimp? ===<br />
<br />
* Use the [[nona]] stitcher on the command-line, to output to a multilayer [[TIFF]] format:<br />
<br />
nona -m TIFF_multilayer -o multi_layer.tif project.pto<br />
<br />
This will will produce a multi_layer.tif file, that contains all remapped images, cropped to their bounding box.<br />
<br />
* Alternatively select the '''Remapped Images''' option in the [[Hugin Stitcher tab]], this will create each ''layer'' as a separate file. Then use the '''tiffcp''' command-line tool (part of libtiff) to join them together into a multi-page TIFF:<br />
<br />
tiffcp project0000.tif project0001.tif project0002.tif multi_layer.tif<br />
<br />
* You can also use [[tif2xcf]], to combine the '''Remapped Images''' TIFF output into a multilayer XCF.<br />
Unfortunately this requires a lot of memory because it stores each remapped image in a layer with the size of the final panorama.<br />
<br />
== Installation ==<br />
<br />
=== Where can I download hugin installers ===<br />
<br />
Information on installers for both stable and testing builds of hugin can be found on the [http://panospace.wordpress.com/downloads/ panospace download page].<br />
<br />
=== How can I compile Hugin.app on my OSX machine? ===<br />
<br />
See [[Hugin Compiling OSX]], [[Autopano-sift-C Compiling OSX]] and [[Enblend Compiling OSX]].<br />
<br />
=== How do I compile hugin on my linux machine? ===<br />
<br />
See [[Hugin Compiling Fedora]], [[Hugin Compiling Gentoo]], [[Hugin Compiling OpenSuse]] and [[Hugin Compiling Ubuntu]]<br />
<br />
=== How do I compile hugin on my Windows machine? ===<br />
<br />
See [[Hugin Compiling Windows]]<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Compiling_OSX&diff=11780Hugin Compiling OSX2009-09-09T08:44:53Z<p>Aston: /* Build libpano13 */</p>
<hr />
<div>==Introduction==<br />
This tutorial describes how to build Hugin on OSX via [http://www.macports.org/ MacPorts]. [http://www.finkproject.org/ Fink] users should also be able to use it even though the commands and directory structure is different from MacPorts.<br />
*Directory structure where everything is built and installed:<br />
**MacPorts: /opt/local<br />
**Fink: /sw<br />
*Main commands to install/update/uninstall/deactivate packages:<br />
**MacPorts: sudo port [install][update][uninstall][search] <package1> <package2> <packagex><br />
**Fink: sudo apt-get [install][update][uninstall][search] <package1> <package2> <packagex><br />
'''Note:''' These are only the most used command options for both port and apt-get. See their respective websites [http://www.macports.org/ Macports.org] and [http://www.finkproject.org/ Finkproject.org] for documentation.<br />
<br />
'''Note:''' This Howto does not describe how to build a portable universal application. You can use the [[Build_a_MacOSX_Universal_Hugin_bundle_with_Xcode | Build a MacOSX Universal Hugin bundle with Xcode]]<br />
<br />
'''Note:''' In case you encounter problems, report them on [http://groups.google.com/group/hugin-ptx the Hugin mailing list].<br />
<br />
==Building environment==<br />
===Download and install XCode===<br />
[http://developer.apple.com/tools/download/ Download] and install the XCode Tools version for your MacOSX version: Xcode 2.5.x for MacOSX 10.4.x or below and Xcode 3.1.x for 10.5.x (Leopard). You will not use the Xcode development environment itself, but the MacOSX system comes without the GNU compiler, builder, linker and so on.<br />
<br />
===Fink commander===<br />
''Note: This tutorial describes how to build Hugin with MacPorts. This should more or less be the same for Fink. All references to <tt>/opt/local</tt> that are mentioned here for MacPorts should be changed with <tt>/sw</tt> for Fink.''<br />
You may find [http://finkcommander.sourceforge.net/ Fink Commander] helpful. Unfortunately it [http://sourceforge.net/forum/forum.php?forum_id=684829 seems] unsupported / unmaintained. The Fink [http://www.finkproject.org/faq/index.php?phpLang=en FAQ] may help. Can somebody please describe here how to install Fink and Fink Commander?<br />
<br />
===Install Macports===<br />
If you don't have it already, install MacPorts, which provides the <tt>port</tt> command, from [http://www.macports.org MacPorts], giving you compilable package access to thousands of pieces of open source software. If you already have macports (formerly darwinports) installed, update it to at least version 1.7.0:<br />
<blockquote><br />
<pre><br />
sudo port selfupdate<br />
</pre><br />
Make sure you have synced the latest port files:<br />
<pre><br />
sudo port -d sync<br />
</pre><br />
</blockquote><br />
<br />
===Porticus===<br />
You may find the GUI frontend [http://porticus.alittledrop.com/ Porticus] helpful with [http://www.macports.org/ MacPorts]<br />
<br />
===Install CMake===<br />
Install cmake from MacPorts:<br />
<pre><br />
$ sudo port install cmake<br />
</pre><br />
<br />
Alternatively, you can download a prepackaged installer from [http://www.cmake.org/HTML/Download.html CMake].<br />
<br />
===Subversion (SVN)===<br />
You need to get and install Subversion from MacPorts. If you fancy a nice GUI you can download the Open-Source [http://www.lachoseinteractive.net/en/community/subversion/svnx/features/?sid=b42441f308810ad0d36b779f90319391 SVNX]. You still need svn installed as it is only a graphical shell and I won't explain SVNX here (I only used it once, I still like the terminal).<br />
''Note: A previous version of this wiki mentioned that you don't need to install SVN on Leopard as it comes pre-installed. however, this pre-installed version is (way) too old so you need the newer version from MacPorts anyway.''<br />
<br />
==Install necessary libraries== <br />
Use port to install the necessary libraries and commands for Hugin:<br />
<blockquote><br />
<pre><br />
sudo port install boost tiff jpeg libpng wxWidgets subversion openexr exiv2 glew<br />
</pre><br />
</blockquote><br />
<br />
Wait as all of these source packages (and it's dependencies) are downloaded and compiled, and installed into /opt/local. Go get a frappe, walk the dog, and total the first 1000 prime numbers in binary.<br />
<br />
===libpano13===<br />
You may either build the latest stable release from [http://sourceforge.net/project/showfiles.php?group_id=96188&package_id=237430 SourceForge] or the latest version in SVN (preferred):<br />
<br />
<pre><br />
svn co https://panotools.svn.sourceforge.net/svnroot/panotools panotools<br />
</pre><br />
<br />
====Build libpano13====<br />
To build and install the SVN version you first need to edit the bootstrap file and change:<br />
<br />
<tt>LIBTOOLIZE=${LIBTOOLIZE:-libtoolize}</tt><br />
<br />
to <br />
<br />
<tt>LIBTOOLIZE=${LIBTOOLIZE:-glibtoolize}</tt><br />
<br />
<pre><br />
$ cd DirectoryWherePanotoolsIs/panotools/trunk/libpano<br />
$ nano bootstrap (or do it with your preferred editor)<br />
</pre><br />
<br />
Alternatively, this command-line should work just as well (untested):<br />
<br />
export LIBTOOLIZE=glibtoolize<br />
<br />
Now you can build the library:<br />
<br />
<pre><br />
$ ./bootstrap --with-jpeg=/opt/local/ --with-tiff=/opt/local/ --with-png=/opt/local/<br />
$ export CFLAGS="-I/opt/local/include -L/opt/local/lib"<br />
$ ./configure<br />
$ make<br />
$ sudo make install<br />
</pre><br />
<br />
By default the library is installed into <tt>/usr/local/lib</tt>.<br />
<br />
===WxWidgets===<br />
Hugin requires wxWidgets, the GUI toolkit currently employed by Hugin, to be at version >= 2.8.7. The current version of wxWidgets at MacPorts is 2.8.8.<br />
<br />
====Tiger (10.4.x) ====<br />
Fix a problem on Tiger (10.4.x): Tiger comes with WxWindows version 2.5. The Hugin cmake will search OS paths first and will find Tiger's own version 2.5 instead of your freshly compiled 2.8. You need to get Tiger's 2.5 version out of the way as you won't be able to build Hugin succesfully as long as it is in place.<br />
<blockquote><br />
<pre><br />
$ sudo mv /usr/bin/wx-config /usr/bin/wx-config-2.5<br />
$ sudo mv /usr/include/wx-2.5 /usr/include/wx-2.5-macTiger<br />
</pre><br />
</blockquote><br />
<br />
====Leopard (10.5.x)====<br />
Fix a problem on Leopard (10.5.x): Leopard comes with WxWindows version 2.8.4. The Hugin cmake will search OS paths first and will find Leopard's own version 2.8.4 instead of your freshly compiled 2.8.8 or above. You need to get Tiger's 2.8.4 version out of the way. Hugin will build succesfully with 2.8.4 and will run. However version 2.8.4 still contains some bugs that will cause "bleeding through" in the graphical CP windows. This means that when things change in wxwidgets objects, sometimes (most of the times) the CP window displays through your current GUI screen.<br />
<blockquote><br />
<pre><br />
sudo mv /usr/bin/wx-config /usr/bin/wx-config-2.8.4<br />
sudo mv /usr/include/wx-2.8 /usr/include/wx-2.8-macLeopard<br />
</pre><br />
</blockquote><br />
<br />
====Snow Leopard (10.6.x)====<br />
Snow Leopard comes with WxWindows 2.8.8 so no changes are required.<br />
<br />
===Fix libboost=== <br />
Fix a (hopefully temporary) issue with Macport's threaded Boost library not providing generic link names for <tt>libboost_thread</tt>:<br />
<blockquote><br />
<pre><br />
$ cd /opt/local/lib<br />
$ sudo ln -s libboost_thread-mt.a libboost_thread.a<br />
$ sudo ln -s libboost_thread-mt.dylib libboost_thread.dylib<br />
$ cd -<br />
</pre><br />
</blockquote><br />
<br />
==Build Hugin==<br />
===Get Hugin from SVN===<br />
Check out the hugin sources from SVN, like:<br />
<blockquote><br />
<pre><br />
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk hugin<br />
</pre><br />
</blockquote><br />
If you are asked to accept the ssl key from the sourceforge svn server, do accept it permanently (p). Otherwise the configuring process using cmake will fail.<br />
===Create hugin build directory===<br />
Create another directory alongside the newly created <tt>hugin/</tt> for the build files (a cool feature of CMake: it doesn't need to pollute your source directory with build files!):<br />
<blockquote><br />
<pre><br />
mkdir hugin_build; cd hugin_build<br />
</pre><br />
</blockquote><br />
''Note: You can give this directory any name you want, but hugin_build is chosen for it's clarity.''<br />
===Configure build===<br />
Before we configure hugin we need to set the build environment:<br />
<blockquote><br />
<pre><br />
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig<br />
export CFLAGS="-I/opt/local/include -L/opt/local/lib"<br />
export CXXFLAGS=$CFLAGS<br />
</pre><br />
</blockquote><br />
<br />
Configure hugin using cmake from inside the build directory you created:<br />
<blockquote><br />
<pre><br />
cmake ../hugin<br />
</pre><br />
</blockquote><br />
<br />
===Compile Hugin===<br />
Compile Hugin and friends:<br />
<blockquote><br />
<pre><br />
make<br />
sudo make install<br />
</pre><br />
</blockquote><br />
Watch the pretty colors go by. Give the dog another quick spin around the block; you're finished. Look for the new bundle <tt>Hugin.app</tt> in <tt>usr/local/Applications/</tt> or in <tt>usr/local/bin/</tt>. Copy or link it to <tt>/Applications</tt>, or your preferred location, and commence testing.<br />
<br />
== Important Note on the produced Bundle ==<br />
Since the produced Hugin.app bundle links dynamically to libraries outside of the bundle, it is not yet portable, i.e. cannot be copied or shared unless the other machine has the same collection of libraries available in the same places. This is to facilitate development and testing (re-compile external libraries and test without re-building). Building a fully portable universal binary version at the command line is planned.<br />
You can use the [[Build_a_MacOSX_Universal_Hugin_bundle_with_Xcode | Build a MacOSX Universal Hugin bundle with Xcode]] to build a universal portable bundle.<br />
<br />
== Building Enblend (using Fink or MacPorts) ==<br />
follow these [[Enblend_Compiling_OSX|updated instructions]]<br />
<br />
== Bulding Autopano-Sift-C ==<br />
Follow [[autopano-sift-C_Compiling_OSX|these instructions]]<br />
<br />
[[Category:Software:Hugin]] [[Category:Software:Platform:Mac OS X]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Compiling_Ubuntu&diff=11762Hugin Compiling Ubuntu2009-09-08T11:32:14Z<p>Aston: /* Building Enblend */</p>
<hr />
<div>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:<br />
* Ubuntu 9.04: on AMD64 computer<br />
* Ubuntu 8.10: on AMD64 computer<br />
* Ubuntu 8.04: on an Intel processor<br />
* Ubuntu 7.10: on AMD Athlon XP<br />
* Ubuntu 7.04: on AMD64 computer<br />
* Ubuntu 6.06: on AMD64 computer<br />
<br />
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.<br />
<br />
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.<br />
<pre>apt-cache search wxW<br />
</pre><br />
<br />
The goal is to build hugin and the whole set of helper applications required.<br />
<br />
== Building environment ==<br />
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.<br />
In a terminal window (K menu -> System -> Konsole or Applications -> Accessories -> Terminal (in Kubuntu), Applications -> Accessories -> Terminal (in Ubuntu))<br />
<br />
<pre>sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb<br />
</pre><br />
<br />
Unless you have an amd64 system prior to 7.10, add the following packages.<br />
<pre>sudo apt-get install libc6-dev libgcc1<br />
</pre><br />
<br />
For older amd64 environments, the packages have a slightly different name:<br />
<pre>sudo apt-get install libc6-dev-amd64 lib64gcc1<br />
</pre><br />
<br />
To get the bleeding edge we'll need access to the SVN, Mercurial and Bazaar repositories, and for this we need the correct tools:<br />
<br />
<pre><br />
sudo apt-get install subversion mercurial bzr<br />
</pre><br />
<br />
Not necessary, but useful if you want to move to the next level and build packages for distribution (list is incomplete):<br />
<br />
<pre><br />
sudo apt-get install subversion-tools<br />
</pre><br />
<br />
== Building Enblend ==<br />
<br />
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.<br />
<br />
<pre>sudo apt-get install pkg-config libtiff4-dev libboost-graph-dev libboost-thread-dev \<br />
liblcms1-dev libglew1.5-dev libplot-dev libglut3-dev libopenexr-dev libxi-dev libxmu-dev<br />
</pre><br />
<br />
For Ubuntu systems prior to 8.10, you will also need<br />
<br />
<pre>sudo apt-get install libopenexr2ldbl<br />
</pre><br />
<br />
Once all dependencies are in place, get the code. The official repository has migrated from CVS to Mercurial:<br />
<br />
<pre><br />
hg clone http://enblend.hg.sourceforge.net:8000/hgroot/enblend/enblend enblend<br />
cd enblend<br />
</pre><br />
<br />
We are then ready to compile. The CXXFLAGS --param inline-unit-growth=60 is a workaround for x86_64 systems, Feb 2009. If you have an SMP machine and you're building a recent version, --disable-image-cache and --enable-openmp will speed up enblend/enfuse massively. -march=native is also beneficial and -O2 is better than -O3.<br />
<br />
<pre><br />
make --makefile=Makefile.scm<br />
CXXFLAGS="--param inline-unit-growth=60 -march=native -O2" ./configure --disable-image-cache --enable-openmp<br />
make<br />
</pre><br />
<br />
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.<br />
<br />
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.<br />
<br />
You are then ready to install with<br />
<pre>sudo make install</pre><br />
<br />
== Building Libpano13 ==<br />
libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first.<br />
To build libpano13 we need some libraries and particularly their <code>dev</code> package:<br />
<pre>sudo apt-get install zlib1g zlib1g-dev libpng12-dev libjpeg62-dev libtiff4-dev</pre><br />
<br />
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.<br />
<br />
We then need to download the source code from SVN:<br />
<pre><br />
svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13<br />
cd libpano13<br />
</pre><br />
<br />
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:<br />
<pre><br />
cd libpano13<br />
svn up<br />
</pre><br />
<br />
Now start the building process:<br />
<pre><br />
./bootstrap<br />
</pre><br />
<br />
<br />
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 <code>apt-cache search ''missingfile''</code>, find the relevant library and install both the library and the related <code>-dev</code> package.<br />
Run the <code>./configure</code> script and repeat this process until you have met all the dependencies.<br />
Then we are ready to launch the make process with<br />
<pre>make</pre><br />
<br />
If the library successfully compiles, you have to install it with<br />
<pre>sudo make install<br />
sudo ldconfig</pre><br />
The last part is for the OS to be aware of the new library (that has been installed in <code>/usr/local/lib</code>).<br />
We can now go back up one folder level and get ready for hugin.<br />
<pre>cd ..</pre><br />
<br />
== Building Hugin ==<br />
<br />
=== Dependencies ===<br />
<br />
First we need to activate the <code>universe</code> repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example) and get the dependencies:<br />
<pre><br />
sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev \<br />
gettext libwxgtk2.8-dev libexiv2-dev libimage-exiftool-perl libglew-dev liblapack-dev<br />
</pre><br />
<br />
=== Fetch the Source Code from SVN ===<br />
<br />
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 <code>-r 4008 https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/</code> will download the trunk branch at the point in time when revision [http://hugin.svn.sourceforge.net/viewvc/hugin?view=rev&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.<br />
<br />
<pre><br />
svn co -r 4061 https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/tags/hugin-2009.07.1/ hugin<br />
</pre><br />
<br />
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.<br />
<br />
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:<br />
<pre><br />
cd hugin<br />
svn up<br />
</pre><br />
<br />
=== Set the Build Environment ===<br />
<br />
Next we set up the build environment using cmake.<br />
<br />
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.<br />
<br />
If you are building for distribution, you want to set CMAKE_INSTALL_PREFIX=/usr<br />
<br />
<pre><br />
mkdir hugin-build<br />
cd hugin-build<br />
cmake ../hugin -DENABLE_LAPACK=YES -DCPACK_BINARY_DEB:BOOL=ON -DCPACK_BINARY_NSIS:BOOL=OFF \<br />
-DCPACK_BINARY_RPM:BOOL=OFF -DCPACK_BINARY_STGZ:BOOL=OFF -DCPACK_BINARY_TBZ2:BOOL=OFF \<br />
-DCPACK_BINARY_TGZ:BOOL=OFF -DCPACK_BINARY_TZ:BOOL=OFF<br />
</pre><br />
<br />
=== Build and Install ===<br />
<br />
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: <br />
<br />
<pre><br />
make package<br />
ls *.deb<br />
sudo dpkg -i hugin-0000.00.0-Linux.deb<br />
</pre><br />
<br />
'''Important:''' the package does not track dependencies yet, so it likely to fail on machines others than yours.<br />
<br />
Reference: [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php]<br />
<br />
== Autopano-sift-C ==<br />
<br />
Pre-Requisites:<br />
<pre><br />
sudo apt-get install libxml2-dev<br />
</pre><br />
<br />
To build<br />
<pre><br />
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk/ autopano-sift-C<br />
cd autopano-sift-C<br />
cmake -DCMAKE_INSTALL_PREFIX=/usr/local .<br />
make<br />
sudo make install<br />
</pre><br />
<br />
== Match-n-shift ==<br />
<br />
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:<br />
<br />
* Image::Size 2.9<br />
* Storable 2.0<br />
* Image::ExifTool 6<br />
<br />
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:<br />
<br />
perl -MStorable -le 'print Storable->VERSION;'<br />
perl -MImage::Size -le 'print Image::Size->VERSION;'<br />
perl -MImage::ExifTool -le 'print Image::ExifTool->VERSION;'<br />
<br />
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:<br />
<br />
sudo apt-get install libimage-size-perl libimage-exiftool-perl<br />
<br />
Alternatively, perl is an interpreted language and these modules are pure perl, so installing from source is an easy thing.<br />
<br />
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:<br />
<br />
sudo cpan<br />
<br />
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.<br />
<br />
When all is done, you can enter the install commands after the 'cpan>' prompt:<br />
<br />
install Image::Size Storable Image::ExifTool<br />
<br />
Answer 'y' to any question of dependencies and wait for install to complete. 'exit' leaves the cpan shell.<br />
<br />
Next, you need to retrieve and install the Panotools-Script collection<br />
of perl libraries (Panotools::Script) and programs that use them -<br />
including match-n-shift:<br />
<br />
svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/Panotools-Script Panotools-Script<br />
cd Panotools-Script<br />
perl Makefile.PL<br />
make<br />
make test<br />
sudo make install<br />
<br />
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:<br />
<br />
sudo cpan Panotools::Script<br />
<br />
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:<br />
<br />
* start Hugin<br />
* navigate the menu File to Preferences<br />
* In the Preferences window, open the Autopano tab<br />
* Select Autopano -> Autopano-SIFT<br />
* tick the checkbox for Use alternative Autopano-SIFT program<br />
* enter the full path to match-n-shift (/usr/local/bin/match-n-shift) in the Autopano-SIFT field<br />
* enter the following string in the Arguments field:<br />
-f %f -v %v -c -p %p -o %o %i<br />
<br />
== MatchPoint ==<br />
<br />
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]<br />
<br />
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.<br />
<br />
* copy the MatchPoint executable into /usr/local/bin manually<br />
<pre><br />
sudo cp src/matchpoint/matchpoint /usr/local/bin/<br />
</pre><br />
* edit /usr/local/bin/autopano-c-complete.sh (do it with sudo to have the necessary permission)<br />
** line 79: replace the .key.gz extension with .key (not sure if matchpoint supports compression)<br />
** lines 83 and 88: replace '''generatekeys "$arg" $FILENAME $SIZE''' with '''matchpoint "$arg" $FILENAME''' (not sure if the size option or any other options of the original generatekeys are applicable)<br />
<br />
== Pan-o-matic ==<br />
<br />
Yet another control point generator [http://aorlinsk2.free.fr/panomatic/?p=home Home Page]<br />
<br />
<pre>sudo apt-get install libboost-dev</pre><br />
<br />
Download [http://aorlinsk2.free.fr/panomatic/download.php?d=7&v=0.9.4 Panomatic 0.9.4 bz2]<br />
<br />
<pre><br />
tar xvfj panomatic-0.9.4-src.tar.bz2<br />
cd panomatic-0.9.4<br />
./configure<br />
make<br />
sudo make install<br />
</pre><br />
<br />
To use Pano-o-matic, open Hugin<br />
<br />
* In File > Preferences > Autopano :<br />
* Select Autopano-SIFT<br />
* Check "Use alternative autopaon-SIFT program"<br />
* Choose the path to the binary ( /usr/local/bin )<br />
* In Arguments, put : -o %o %i<br />
<br />
== Exiftool ==<br />
<br />
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.<br />
<br />
<pre><br />
sudo apt-get purge libimage-exiftool-perl<br />
</pre><br />
<br />
<pre><br />
wget http://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-7.83.tar.gz<br />
tar -xzf Image-ExifTool-7.83.tar.gz<br />
cd Image-ExifTool-7.83<br />
perl Makefile.PL<br />
make test<br />
sudo make install<br />
</pre><br />
<br />
== Panoglview ==<br />
<br />
PanoGLView is an OpenGL hardware accelerated interactive immersive viewer for equirectangular images.<br />
<br />
Pre-Requisites:<br />
<pre>sudo apt-get install wx-common</pre><br />
<br />
To build<br />
<pre><br />
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/panoglview/trunk panoglview<br />
cd panoglview<br />
./bootstrap<br />
./configure<br />
make<br />
sudo make install<br />
</pre><br />
<br />
== FreePV ==<br />
<br />
Pre-Requisites:<br />
<pre><br />
sudo apt-get install cmake make pkg-config g++ mozilla-dev freeglut-dev zlib1g-dev libjpeg-dev libxext-dev libxmu-dev \<br />
x11proto-xf86vidmode-dev libxxf86vm-dev libnspr4-dev libxml2-dev libpng12-dev<br />
</pre><br />
To build<br />
<pre><br />
svn co https://freepv.svn.sourceforge.net/svnroot/freepv/freepv/trunk/ freepv<br />
cd freepv<br />
cmake .<br />
make<br />
sudo make install<br />
</pre><br />
<br />
== Notes for Packagers ==<br />
* before releasing a tarball, upgrade the Changelog with svn2cl<br />
<pre><br />
$ svn up<br />
$ svn2cl<br />
$ svn ci<br />
</pre><br />
<br />
[[Category:Software:Hugin]]<br />
[[Category:Software:Platform:Linux]]</div>Astonhttps://wiki.panotools.org/index.php?title=Development_of_Open_Source_tools&diff=11761Development of Open Source tools2009-09-08T09:05:29Z<p>Aston: /* Release */</p>
<hr />
<div>== Panorama Related Open Source tools ==<br />
<br />
* [[Hugin]]<br />
* [[Enblend]]<br />
* [[Enfuse]]<br />
* [[Panotools]]<br />
<br />
== Contribution ==<br />
<br />
=== Why contribute? ===<br />
<br />
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.<br />
<br />
=== How to contribute? ===<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
'''Don't be afraid of failures in the building process'''<br />
* You may encounter errors when following the build processes linked below is high. Don't worry such errors will not compromise your computer.<br />
* 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.<br />
<br />
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.<br />
<br />
<br />
<br />
== Processes ==<br />
<br />
The goal of the new release process is to decouple the development process from the other processes, avoiding artificial slow downs (trunk freezes).<br />
<br />
Hugin uses an asynchronous development process based on Subversion, which means that:<br />
* trunk never freezes, and committers can continuously add improvements there<br />
* anybody can branch out a development codeline from trunk to branches/ to implement major changes separately without disrupting the continuous flow.<br />
* 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.<br />
<br />
=== Development ===<br />
<br />
* if you have a development branch, nothing changes. you can keep working on it as you please.<br />
* if you are working on trunk there is an '''improvement''': no trunk freeze.<br />
* you're encouraged to continue with your usual pace of bug fixing and development.<br />
* to do things perfectly: commit all your changes to trunk; and those that are bugfixes also to the release codeline.<br />
* 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.<br />
* try not to add new features to the release codeline<br />
<br />
=== Translation ===<br />
<br />
* same as development<br />
* please do not run extract-messages.sh while a release process is going on<br />
<br />
=== Debugging ===<br />
<br />
Working through [[Hugin Trackers]]<br />
<br />
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.<br />
<br />
We'll be releasing frequent snapshots until a release candidate emerges. This is an iterative process:<br />
# '''Volunteers''' check the release-critical bugs listed in the [http://sourceforge.net/tracker/?group_id=77506&atid=550441&status=1 bug tracker] (sort open bugs by priority) against the most recent [http://panospace.wordpress.com/downloads/ snapshots] (scroll down on that page).<br />
#* Install the latest snapshot.<br />
#* Try to reproduce the bug on your system.<br />
#* 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).<br />
#* 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.<br />
#* 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.<br />
#* 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.<br />
# The '''developers''' fix the bugs identified in the tracker.<br />
# The '''builders''' build new snapshots including the fixes.<br />
<br />
=== Development Codelines ===<br />
<br />
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:<br />
<br />
<pre><br />
$ svn cp https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk \<br />
https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/branches/NEW_DEVELOPMENT_BRANCH<br />
</pre><br />
<br />
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.<br />
<br />
When development is complete or has reached a milestone, it may be integrated it trunk. Before integrating in trunk it is recommended to:<br />
* merge trunk's changes since the last sync into the branch<br />
* test that the branch builds on the major supported plattforms<br />
* test that the branch does not break existing functionality (unless the break is intended, e.g. when a new functionality replaces an existing one)<br />
<br />
When the development branch has fulfilled its purpose; is supreceded or has been abandoned, move it to the obsolete_branches in the repository<br />
<br />
<pre><br />
$ svn mv https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/branches/NEW_DEVELOPMENT_BRANCH \<br />
https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/obsolete_branches/NEW_DEVELOPMENT_BRANCH<br />
</pre><br />
<br />
<br />
=== Release ===<br />
<br />
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:<br />
<br />
The conditions to declare a release final are:<br />
* the code builds on the major supported platforms (Ubuntu, Fedora, OSX, Windows)<br />
* there is no (known) regression, unless intentional. This means: what worked with the previous release should work with the current one.<br />
<br />
The next Hugin is likely to be released when these [http://sourceforge.net/search/index.php?group_id=77506&search_summary=1&search_details=1&type_of_search=artifact&group_artifact_id%5b%5d=550441&status_id%5b%5d=1&priority%5b%5d=9&form_submit=Search bugs] will have been fixed.<br />
<br />
==== Branching Out For Release ====<br />
<br />
1. [[Hugin_translation_guide#Developer_info|Identify]] and add the new strings for translation.<br />
<br />
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).<br />
<br />
<pre><br />
$ svn cp https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk \<br />
https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 \<br />
-m "Branching 2009.2 for release"<br />
</pre><br />
<br />
3. In the new release-codeline bump up the version number, e.g.<br />
<br />
3.a. get the source<br />
<pre><br />
$ svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 2009.2<br />
$ cd 2009.2<br />
$ gedit CMakeLists.txt<br />
</pre><br />
<br />
3.b. edit the following lines in the top level CMakeLists.txt file<br />
<pre><br />
# version<br />
set(V_MAJOR 2009)<br />
set(V_MINOR 2)<br />
set(V_PATCH 0)<br />
</pre><br />
<br />
3.c. edit the Mac version number in mac//Version.xcconfig<br />
<br />
3.d. check the changes in<br />
<pre><br />
$ svn ci<br />
</pre><br />
<br />
4. in trunk bump up to the next odd version number, e.g. 2009.3 in this example.<br />
<br />
4.a. get the source<br />
<pre><br />
$ svn co https://hugin.svn.sourceforge.net/svnroot/hugin/trunk trunk<br />
$ cd trunk<br />
$ gedit CMakeLists.txt<br />
</pre><br />
<br />
4.b. edit the following lines in the top level CMakeLists.txt file<br />
<pre><br />
# version<br />
set(V_MAJOR 2009)<br />
set(V_MINOR 3)<br />
set(V_PATCH 0)<br />
</pre><br />
<br />
4.c. edit the Mac version number in mac//Version.xcconfig<br />
<br />
<br />
4.d. check the changes in<br />
<pre><br />
$ svn ci<br />
</pre><br />
<br />
==== Keeping the Branch in Sync with Trunk ====<br />
<br />
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:<br />
<br />
<pre><br />
$ cd trunk<br />
$ svn up<br />
$ svn diff -r 4311:4312 > 4312.patch<br />
$ mv 4312.patc ../release<br />
$ cd ../release<br />
$ patch -p 0 < 4312.patch<br />
</pre><br />
<br />
then build, test, commit.<br />
<br />
==== Release ====<br />
<br />
1. Start with a clean checkout<br />
<br />
<pre><br />
$ svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 2009.2<br />
$ cd 2009.2<br />
</pre><br />
<br />
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.<br />
<br />
<pre><br />
$ cd ../trunk<br />
$ svn up<br />
$ svn2cl<br />
$ cp Changelog ../2009.2/Changelog.trunk<br />
$ gedit Changelog.trunk &<br />
$ gedit Changelog<br />
$ svn ci<br />
</pre><br />
<br />
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.<br />
<br />
4. Extract the relevant Changelog section for Sourceforge, Write a summary for the announcement.<br />
<br />
5. Create tarball<br />
<br />
<pre><br />
$ cd ..<br />
$ mkdir hugin-build<br />
$ cd hugin-build<br />
$ cmake ../hugin -DENABLE_LAPACK=YES -DCPACK_BINARY_DEB:BOOL=OFF -DCPACK_BINARY_NSIS:BOOL=OFF \<br />
-DCPACK_BINARY_RPM:BOOL=OFF -DCPACK_BINARY_STGZ:BOOL=OFF -DCPACK_BINARY_TBZ2:BOOL=OFF \<br />
-DCPACK_BINARY_TGZ:BOOL=ON -DCPACK_BINARY_TZ:BOOL=OFF<br />
$ make package_source<br />
</pre><br />
<br />
6. Build an rpm or deb (depending on your distro) from the tarball as a sanity check. Test what you can test.<br />
<br />
<pre><br />
$ tar xvfz hugin-2009.2.0.tar.gz<br />
$ mkdir hugin.build<br />
$ cd hugin.build<br />
$ cmake ../hugin-2009.2.0 -DENABLE_LAPACK=YES -DCPACK_BINARY_DEB:BOOL=ON -DCPACK_BINARY_NSIS:BOOL=OFF \<br />
-DCPACK_BINARY_RPM:BOOL=OFF -DCPACK_BINARY_STGZ:BOOL=OFF -DCPACK_BINARY_TBZ2:BOOL=OFF \<br />
-DCPACK_BINARY_TGZ:BOOL=OFF -DCPACK_BINARY_TZ:BOOL=OFF<br />
$ make package<br />
$ sudo dpkg -i hugin-2009.2.0-Linux.deb<br />
</pre><br />
<br />
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 "final" (by removing the appendix) after a few more tests prove that no further candidate is needed.<br />
<br />
8. Determine the tarball's checksum for the announcement notice<br />
<pre><br />
$ sha1sum hugin-2009.2.0_beta1.tar.gz<br />
</pre><br />
<br />
9. Upload the tarball to sourceforge, you need to be a 'Release tech' to do this.<br />
<br />
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.<br />
<br />
<pre><br />
$ svn cp -r SVNNR https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 \<br />
https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/tags/TAG_NAME \<br />
-m "Branching 2009.2 for snapshot"<br />
</pre><br />
<br />
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 "Submit my news to the Slashdot.org Firehose" box.<br />
<br />
12. Mail the announcement to hugin-ptx. Only for the final release, mail it also to other relevant channels such as PanotoolsNG and QuickTimeVR.<br />
<br />
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.<br />
<br />
14. Once the codeline is final, port relevant "polish" commits that have not been ported yet to trunk (similar to merging a development codeline).<br />
<br />
15. later on if patches are required, apply them to /releases/2009.2, bump up V_PATCH, tag, and release.<br />
<br />
=== Testing ===<br />
<br />
* There is only so much testing that can be done with our limited resources.<br />
* 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<br />
* We may issue patch releases in case of security issues or other major issues reported after final release.<br />
<br />
=== Distribution ===<br />
<br />
* '''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.<br />
* 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 "WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." See the GNU General Public License for more details.<br />
<br />
== Download Test Build ==<br />
<br />
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].<br />
<br />
== Build your Own Test Builds ==<br />
<br />
If you are ready to go through the building process, here are the instructions.<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFF99;color:#FF0000;text-align:left;border: solid #FF3300;"<br />
|-valign="top"<br />
! '''IMPORTANT:'''<br />
! 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.<br />
|}<br />
<br />
=== Goal ===<br />
<br />
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.<br />
<br />
=== Process ===<br />
<br />
# 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.<br />
# The build process will be documented for each of the supported platform.<br />
# Users willing to spend some time learning how to build will reproduce the documented process.<br />
# Power users will script and automate the building process.<br />
# Users with packaging skills will package the builds for distribution (installers).<br />
# The produced binaries/installers will be made available on the web.<br />
<br />
=== Specific revisions ===<br />
<br />
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.<br />
<br />
==== hugin ====<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="80" |<br />
Revision<br />
! width="300" |<br />
Branch<br />
! width="500" |<br />
Comments<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
4315<br />
! style="border-top: thin dotted #333333;" |<br />
/hugin/releases/2009.2<br />
| style="border-top: thin dotted #333333;" |<br />
2009.2_beta2<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
4008<br />
! style="border-top: thin dotted #333333;" |<br />
/hugin/trunk<br />
| style="border-top: thin dotted #333333;" |<br />
official 0.8.0 release = RC5<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
3465<br />
! style="border-top: thin dotted #333333;" |<br />
/hugin/trunk<br />
| style="border-top: thin dotted #333333;" |<br />
official 0.7.0 release<br />
|}<br />
<br />
* [[older hugin revision notes]]<br />
* [http://hugin.svn.sourceforge.net/viewvc/hugin/hugin/trunk/?view=log revision log]<br />
<br />
==== libpano ====<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="80" |<br />
Revision<br />
! width="300" |<br />
Branch<br />
! width="500" |<br />
Comments<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
1036<br />
| style="border-top: thin dotted #333333;" |<br />
trunk<br />
| style="border-top: thin dotted #333333;" |<br />
tentative fix for the error introduced in 1017<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
1017 +<br />
| style="border-top: thin dotted #333333;" |<br />
trunk<br />
| style="border-top: thin dotted #333333;" |<br />
builds but has a fatal error [http://groups.google.com/group/hugin-ptx/msg/d7beab28db615445]<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
1016<br />
| style="border-top: thin dotted #333333;" |<br />
trunk<br />
| style="border-top: thin dotted #333333;" |<br />
builds and works but messes up locale<br />
<br />
|-valign="top"<br />
|}<br />
<br />
* [[older libpano revision notes]]<br />
* [http://panotools.svn.sourceforge.net/viewvc/panotools?view=log revision log]<br />
<br />
==== enblend-enfuse ====<br />
<br />
Use of CVS has been discontinued in favor of Mercurial. The information below is stale.<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="100" |<br />
Revision<br />
! width="500" |<br />
Comments<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2009-06-09<br />
| style="border-top: thin dotted #333333;" |<br />
builds on ubuntu 9.04 x86. Note: for experimental use there is a temporary fork by Christoph Spiel in Launchpad.<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2008-02-07<br />
| style="border-top: thin dotted #333333;" |<br />
builds on ubuntu 7.10 AMD64, OSX (used for snapshot package), Windows (used for first snapshot installer)<br />
|-valign="top" <br />
|}<br />
<br />
* [[older enblend revision notes]]<br />
* [http://enblend.hg.sourceforge.net/hgweb/enblend/enblend/log revision log]<br />
<br />
=== Supported Platforms ===<br />
<br />
* 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.<br />
* 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. <br />
* '''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.<br />
<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="90" |<br />
Platform<br />
! width="130" |<br />
Supported Versions<br />
! width="60" |<br />
Status<br />
! width="220" |<br />
Process<br />
! width="400" |<br />
Credits <br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
ubuntu<br />
| style="border-top: thin dotted #333333;" |<br />
32bit/64bit<br>8.04 8.10 9.04<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Ubuntu | OK]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Sébastien Perez-Duarte<br />
* Yuval Levy<br />
* Régis B.<br />
* Kornel Benko<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
Fedora<br />
| style="border-top: thin dotted #333333;" |<br />
32bit/64bit/ppc/ppc64<br>F-8 F-9<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Fedora | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Bruno Postle<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OSX <br />
| style="border-top: thin dotted #333333;" |<br />
IntelMac/PowerPC<br>10.3 10.4 10.5<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
* [[Hugin Compiling OSX | "roll your own" draft]]<br />
* [[Build_a_MacOSX_Universal_Hugin_bundle_with_Xcode | universal bundle for distribution draft]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Ippei Ukai<br />
* JD Smith <br />
* Daniel M. German<br />
* Peter A. Crowley<br />
* David Haberthür<br />
* John Riley<br />
* Roger Howard<br />
* Harry van der Wolf<br />
* Charlie Reiman<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
Windows<br />
| style="border-top: thin dotted #333333;" |<br />
32bit/64bit<br>XP/Vista<br>(64bit officially supported only after 0.8.0)<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
*[[Build Hugin for Windows with SDK | OK, SDK based]] 32bit only.<br />
*[[Hugin Compiling Windows | draft, from scratch]]<br />
*[[Hugin_SDK_(MSVC_2008) | build the SDK]] 32bit & 64bit<br />
*[[Hugin_SDK_(MSVC_2008)_Patches | SDK 64bit patches]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Tom Sharpless<br />
* John Navas<br />
* Jean-Marc Paratte<br />
* Yili Zhao<br />
* Yuval Levy<br />
* Guido Kohlmeyer<br />
* Ad Huikeshoven (build automation)<br />
* Ryan Sleevi (64 bit)<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OpenSuse<br />
| style="border-top: thin dotted #333333;" |<br />
32bit/64bit<br>10.2 10.3<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling OpenSuse | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Kornel Benko (10.3)<br />
* Peter Suetterlin (10.2)<br />
* Stephan Hegel (10.3 x86_64)<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
FreeBSD<br />
| style="border-top: thin dotted #333333;" |<br />
32bit/64bit<br>6.3 7.0<br />
| style="border-top: thin dotted #333333;" |<br />
n/a<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling FreeBSD | OK]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Vasil Dimov (6.2/i386)<br />
* Vasil Dimov (7.0/amd64)<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
Gentoo Linux<br />
| style="border-top: thin dotted #333333;" |<br />
32bit<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin_Compiling_Gentoo | OK]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Thomas Pani<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
all platforms<br />
! style="border-top: thin dotted #333333;" colspan="4" |<br />
a big thank you to '''Pablo d'Angelo''' for supporting all of those building efforts.<br />
|-valign="top"<br />
|}<br />
<br />
=== Stati ===<br />
<br />
'''Build Chain'''<br />
* tbd: looking for responsible<br />
* OK: mostly automated build process ready on request<br />
* unavailable: temporarily unavailable (e.g. responsible on holiday)<br />
* HW-broken: the hardware is temporarily unavailable<br />
* SW-broken: temporarily dysfunctional, working on a fix<br />
* broken: nobody is working on a fix<br />
* unsupported: has been dropped for lack of support<br />
<br />
'''Process'''<br />
* tbd: status unknown<br />
* auto: work as documented and has been automated to a reasonable extent<br />
* OK: works as documented, could use automation / scripting<br />
* draft: documented, needs validation / testing / cleaning<br />
* incomplete: parts are missing (e.g. enblend, libpano)<br />
* outdated: worked in the past but needs an update<br />
* obsolete: nobody has the time to update<br />
<br />
== Packaging and Distribution ==<br />
<br />
Instructions for packaging binaries for distribution will follow. Some important points:<br />
<br />
=== Snapshots ===<br />
* comply with the GPL<br />
** join a text of the GPL in the distribution<br />
** give access to the source code<br />
** credit the authors<br />
* label clearly the snapshot as such, with a reference to the build date and/or the SVN revision number<br />
* edit the text / readme files that come with the snapshot<br />
** indicate clearly that it is unstable, experimental software<br />
** indicate where to find the latest version<br />
** indicate that the advertised features might or might not work<br />
<br />
=== Release ===<br />
* comply with the GPL<br />
** join a text of the GPL in the distribution<br />
** give access to the source code<br />
** credit the authors<br />
<br />
== Feedback ==<br />
<br />
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!<br />
<br />
To give good feedback, note down carefully all of this information while you are going through the instructions.<br />
# details about your computer. CPU, operating system, other particularities<br />
# 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.<br />
# the last step / command you entered into the command line<br />
# 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.<br />
<br />
Even the standard feedback is good feedback. For those wishing to dig deeper, you can try<br />
* to use "make VERBOSE=1" when building hugin.<br />
* to do a debug build "cmake -DCMAKE_BUILD_TYPE=DEBUG" and use oprofile for profiling.<br />
<br />
[[Category:Community:Project]]</div>Astonhttps://wiki.panotools.org/index.php?title=Development_of_Open_Source_tools&diff=11760Development of Open Source tools2009-09-08T09:04:40Z<p>Aston: /* Release */</p>
<hr />
<div>== Panorama Related Open Source tools ==<br />
<br />
* [[Hugin]]<br />
* [[Enblend]]<br />
* [[Enfuse]]<br />
* [[Panotools]]<br />
<br />
== Contribution ==<br />
<br />
=== Why contribute? ===<br />
<br />
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.<br />
<br />
=== How to contribute? ===<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
'''Don't be afraid of failures in the building process'''<br />
* You may encounter errors when following the build processes linked below is high. Don't worry such errors will not compromise your computer.<br />
* 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.<br />
<br />
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.<br />
<br />
<br />
<br />
== Processes ==<br />
<br />
The goal of the new release process is to decouple the development process from the other processes, avoiding artificial slow downs (trunk freezes).<br />
<br />
Hugin uses an asynchronous development process based on Subversion, which means that:<br />
* trunk never freezes, and committers can continuously add improvements there<br />
* anybody can branch out a development codeline from trunk to branches/ to implement major changes separately without disrupting the continuous flow.<br />
* 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.<br />
<br />
=== Development ===<br />
<br />
* if you have a development branch, nothing changes. you can keep working on it as you please.<br />
* if you are working on trunk there is an '''improvement''': no trunk freeze.<br />
* you're encouraged to continue with your usual pace of bug fixing and development.<br />
* to do things perfectly: commit all your changes to trunk; and those that are bugfixes also to the release codeline.<br />
* 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.<br />
* try not to add new features to the release codeline<br />
<br />
=== Translation ===<br />
<br />
* same as development<br />
* please do not run extract-messages.sh while a release process is going on<br />
<br />
=== Debugging ===<br />
<br />
Working through [[Hugin Trackers]]<br />
<br />
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.<br />
<br />
We'll be releasing frequent snapshots until a release candidate emerges. This is an iterative process:<br />
# '''Volunteers''' check the release-critical bugs listed in the [http://sourceforge.net/tracker/?group_id=77506&atid=550441&status=1 bug tracker] (sort open bugs by priority) against the most recent [http://panospace.wordpress.com/downloads/ snapshots] (scroll down on that page).<br />
#* Install the latest snapshot.<br />
#* Try to reproduce the bug on your system.<br />
#* 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).<br />
#* 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.<br />
#* 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.<br />
#* 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.<br />
# The '''developers''' fix the bugs identified in the tracker.<br />
# The '''builders''' build new snapshots including the fixes.<br />
<br />
=== Development Codelines ===<br />
<br />
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:<br />
<br />
<pre><br />
$ svn cp https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk \<br />
https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/branches/NEW_DEVELOPMENT_BRANCH<br />
</pre><br />
<br />
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.<br />
<br />
When development is complete or has reached a milestone, it may be integrated it trunk. Before integrating in trunk it is recommended to:<br />
* merge trunk's changes since the last sync into the branch<br />
* test that the branch builds on the major supported plattforms<br />
* test that the branch does not break existing functionality (unless the break is intended, e.g. when a new functionality replaces an existing one)<br />
<br />
When the development branch has fulfilled its purpose; is supreceded or has been abandoned, move it to the obsolete_branches in the repository<br />
<br />
<pre><br />
$ svn mv https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/branches/NEW_DEVELOPMENT_BRANCH \<br />
https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/obsolete_branches/NEW_DEVELOPMENT_BRANCH<br />
</pre><br />
<br />
<br />
=== Release ===<br />
<br />
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:<br />
<br />
The conditions to declare a release final are:<br />
* the code builds on the major supported platforms (Ubuntu, Fedora, OSX, Windows)<br />
* there is no (known) regression, unless intentional. This means: what worked with the previous release should work with the current one.<br />
<br />
The next Hugin is likely to be released when these [http://sourceforge.net/search/index.php?group_id=77506&search_summary=1&search_details=1&type_of_search=artifact&group_artifact_id%5b%5d=550441&status_id%5b%5d=1&priority%5b%5d=9&form_submit=Search bugs] will have been fixed.<br />
<br />
==== Branching Out For Release ====<br />
<br />
1. [[Hugin_translation_guide#Developer_info|Identify]] and add the new strings for translation.<br />
<br />
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).<br />
<br />
<pre><br />
$ svn cp https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk \<br />
https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 \<br />
-m "Branching 2009.2 for release"<br />
</pre><br />
<br />
3. In the new release-codeline bump up the version number, e.g.<br />
<br />
3.a. get the source<br />
<pre><br />
$ svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 2009.2<br />
$ cd 2009.2<br />
$ gedit CMakeLists.txt<br />
</pre><br />
<br />
3.b. edit the following lines in the top level CMakeLists.txt file<br />
<pre><br />
# version<br />
set(V_MAJOR 2009)<br />
set(V_MINOR 2)<br />
set(V_PATCH 0)<br />
</pre><br />
<br />
3.c. edit the Mac version number in mac//Version.xcconfig<br />
<br />
3.d. check the changes in<br />
<pre><br />
$ svn ci<br />
</pre><br />
<br />
4. in trunk bump up to the next odd version number, e.g. 2009.3 in this example.<br />
<br />
4.a. get the source<br />
<pre><br />
$ svn co https://hugin.svn.sourceforge.net/svnroot/hugin/trunk trunk<br />
$ cd trunk<br />
$ gedit CMakeLists.txt<br />
</pre><br />
<br />
4.b. edit the following lines in the top level CMakeLists.txt file<br />
<pre><br />
# version<br />
set(V_MAJOR 2009)<br />
set(V_MINOR 3)<br />
set(V_PATCH 0)<br />
</pre><br />
<br />
4.c. edit the Mac version number in mac//Version.xcconfig<br />
<br />
<br />
4.d. check the changes in<br />
<pre><br />
$ svn ci<br />
</pre><br />
<br />
==== Keeping the Branch in Sync with Trunk ====<br />
<br />
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:<br />
<br />
<pre><br />
$ cd trunk<br />
$ svn up<br />
$ svn diff -r 4311:4312 > 4312.patch<br />
$ mv 4312.patc ../release<br />
$ cd ../release<br />
$ patch -p 0 < 4312.patch<br />
</pre><br />
<br />
then build, test, commit.<br />
<br />
==== Release ====<br />
<br />
1. Start with a clean checkout<br />
<br />
<pre><br />
$ svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 2009.2<br />
$ cd 2009.2<br />
</pre><br />
<br />
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.<br />
<br />
<pre><br />
$ cd ../trunk<br />
$ svn up<br />
$ svn2cl<br />
$ cp Changelog ../2009.2/Changelog.trunk<br />
$ gedit Changelog.trunk &<br />
$ gedit Changelog<br />
$ svn ci<br />
</pre><br />
<br />
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.<br />
<br />
4. Extract the relevant Changelog section for Sourceforge, Write a summary for the announcement.<br />
<br />
5. Create tarball<br />
<br />
<pre><br />
$ cd ..<br />
$ mkdir hugin-build<br />
$ cd hugin-build<br />
$ cmake ../hugin -DENABLE_LAPACK=YES -DCPACK_BINARY_DEB:BOOL=OFF -DCPACK_BINARY_NSIS:BOOL=OFF \<br />
-DCPACK_BINARY_RPM:BOOL=OFF -DCPACK_BINARY_STGZ:BOOL=OFF -DCPACK_BINARY_TBZ2:BOOL=OFF \<br />
-DCPACK_BINARY_TGZ:BOOL=ON -DCPACK_BINARY_TZ:BOOL=OFF<br />
$ make package_source<br />
</pre><br />
<br />
6. Build an rpm or deb (depending on your distro) from the tarball as a sanity check. Test what you can test.<br />
<br />
<pre><br />
$ tar xvfz hugin-2009.2.0.tar.gz<br />
$ mkdir hugin.build<br />
$ cd hugin.build<br />
$ cmake ../hugin-2009.2.0 -DENABLE_LAPACK=YES -DCPACK_BINARY_DEB:BOOL=ON -DCPACK_BINARY_NSIS:BOOL=OFF \<br />
-DCPACK_BINARY_RPM:BOOL=OFF -DCPACK_BINARY_STGZ:BOOL=OFF -DCPACK_BINARY_TBZ2:BOOL=OFF \<br />
-DCPACK_BINARY_TGZ:BOOL=OFF -DCPACK_BINARY_TZ:BOOL=OFF<br />
$ make package<br />
$ sudo dpkg -i hugin-2009.2.0-Linux.deb<br />
</pre><br />
<br />
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 "final" (by removing the appendix) after a few more tests prove that no further candidate is needed.<br />
<br />
8. Determine the tarball's checksum for the announcement notice<br />
<pre><br />
$ sha1sum hugin-2009.2.0_beta1.tar.gz<br />
</pre><br />
<br />
9. Upload the tarball to sourceforge, you need to be a 'Release manager' to do this.<br />
<br />
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.<br />
<br />
<pre><br />
$ svn cp -r SVNNR https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/releases/2009.2 \<br />
https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/tags/TAG_NAME \<br />
-m "Branching 2009.2 for snapshot"<br />
</pre><br />
<br />
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 "Submit my news to the Slashdot.org Firehose" box.<br />
<br />
12. Mail the announcement to hugin-ptx. Only for the final release, mail it also to other relevant channels such as PanotoolsNG and QuickTimeVR.<br />
<br />
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.<br />
<br />
14. Once the codeline is final, port relevant "polish" commits that have not been ported yet to trunk (similar to merging a development codeline).<br />
<br />
15. later on if patches are required, apply them to /releases/2009.2, bump up V_PATCH, tag, and release.<br />
<br />
=== Testing ===<br />
<br />
* There is only so much testing that can be done with our limited resources.<br />
* 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<br />
* We may issue patch releases in case of security issues or other major issues reported after final release.<br />
<br />
=== Distribution ===<br />
<br />
* '''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.<br />
* 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 "WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." See the GNU General Public License for more details.<br />
<br />
== Download Test Build ==<br />
<br />
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].<br />
<br />
== Build your Own Test Builds ==<br />
<br />
If you are ready to go through the building process, here are the instructions.<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFF99;color:#FF0000;text-align:left;border: solid #FF3300;"<br />
|-valign="top"<br />
! '''IMPORTANT:'''<br />
! 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.<br />
|}<br />
<br />
=== Goal ===<br />
<br />
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.<br />
<br />
=== Process ===<br />
<br />
# 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.<br />
# The build process will be documented for each of the supported platform.<br />
# Users willing to spend some time learning how to build will reproduce the documented process.<br />
# Power users will script and automate the building process.<br />
# Users with packaging skills will package the builds for distribution (installers).<br />
# The produced binaries/installers will be made available on the web.<br />
<br />
=== Specific revisions ===<br />
<br />
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.<br />
<br />
==== hugin ====<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="80" |<br />
Revision<br />
! width="300" |<br />
Branch<br />
! width="500" |<br />
Comments<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
4315<br />
! style="border-top: thin dotted #333333;" |<br />
/hugin/releases/2009.2<br />
| style="border-top: thin dotted #333333;" |<br />
2009.2_beta2<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
4008<br />
! style="border-top: thin dotted #333333;" |<br />
/hugin/trunk<br />
| style="border-top: thin dotted #333333;" |<br />
official 0.8.0 release = RC5<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
3465<br />
! style="border-top: thin dotted #333333;" |<br />
/hugin/trunk<br />
| style="border-top: thin dotted #333333;" |<br />
official 0.7.0 release<br />
|}<br />
<br />
* [[older hugin revision notes]]<br />
* [http://hugin.svn.sourceforge.net/viewvc/hugin/hugin/trunk/?view=log revision log]<br />
<br />
==== libpano ====<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
<br />
|-valign="top"<br />
! width="80" |<br />
Revision<br />
! width="300" |<br />
Branch<br />
! width="500" |<br />
Comments<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
1036<br />
| style="border-top: thin dotted #333333;" |<br />
trunk<br />
| style="border-top: thin dotted #333333;" |<br />
tentative fix for the error introduced in 1017<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
1017 +<br />
| style="border-top: thin dotted #333333;" |<br />
trunk<br />
| style="border-top: thin dotted #333333;" |<br />
builds but has a fatal error [http://groups.google.com/group/hugin-ptx/msg/d7beab28db615445]<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
1016<br />
| style="border-top: thin dotted #333333;" |<br />
trunk<br />
| style="border-top: thin dotted #333333;" |<br />
builds and works but messes up locale<br />
<br />
|-valign="top"<br />
|}<br />
<br />
* [[older libpano revision notes]]<br />
* [http://panotools.svn.sourceforge.net/viewvc/panotools?view=log revision log]<br />
<br />
==== enblend-enfuse ====<br />
<br />
Use of CVS has been discontinued in favor of Mercurial. The information below is stale.<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="100" |<br />
Revision<br />
! width="500" |<br />
Comments<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2009-06-09<br />
| style="border-top: thin dotted #333333;" |<br />
builds on ubuntu 9.04 x86. Note: for experimental use there is a temporary fork by Christoph Spiel in Launchpad.<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2008-02-07<br />
| style="border-top: thin dotted #333333;" |<br />
builds on ubuntu 7.10 AMD64, OSX (used for snapshot package), Windows (used for first snapshot installer)<br />
|-valign="top" <br />
|}<br />
<br />
* [[older enblend revision notes]]<br />
* [http://enblend.hg.sourceforge.net/hgweb/enblend/enblend/log revision log]<br />
<br />
=== Supported Platforms ===<br />
<br />
* 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.<br />
* 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. <br />
* '''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.<br />
<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="90" |<br />
Platform<br />
! width="130" |<br />
Supported Versions<br />
! width="60" |<br />
Status<br />
! width="220" |<br />
Process<br />
! width="400" |<br />
Credits <br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
ubuntu<br />
| style="border-top: thin dotted #333333;" |<br />
32bit/64bit<br>8.04 8.10 9.04<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Ubuntu | OK]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Sébastien Perez-Duarte<br />
* Yuval Levy<br />
* Régis B.<br />
* Kornel Benko<br />
<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
Fedora<br />
| style="border-top: thin dotted #333333;" |<br />
32bit/64bit/ppc/ppc64<br>F-8 F-9<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Fedora | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Bruno Postle<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OSX <br />
| style="border-top: thin dotted #333333;" |<br />
IntelMac/PowerPC<br>10.3 10.4 10.5<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
* [[Hugin Compiling OSX | "roll your own" draft]]<br />
* [[Build_a_MacOSX_Universal_Hugin_bundle_with_Xcode | universal bundle for distribution draft]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Ippei Ukai<br />
* JD Smith <br />
* Daniel M. German<br />
* Peter A. Crowley<br />
* David Haberthür<br />
* John Riley<br />
* Roger Howard<br />
* Harry van der Wolf<br />
* Charlie Reiman<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
Windows<br />
| style="border-top: thin dotted #333333;" |<br />
32bit/64bit<br>XP/Vista<br>(64bit officially supported only after 0.8.0)<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
*[[Build Hugin for Windows with SDK | OK, SDK based]] 32bit only.<br />
*[[Hugin Compiling Windows | draft, from scratch]]<br />
*[[Hugin_SDK_(MSVC_2008) | build the SDK]] 32bit & 64bit<br />
*[[Hugin_SDK_(MSVC_2008)_Patches | SDK 64bit patches]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Tom Sharpless<br />
* John Navas<br />
* Jean-Marc Paratte<br />
* Yili Zhao<br />
* Yuval Levy<br />
* Guido Kohlmeyer<br />
* Ad Huikeshoven (build automation)<br />
* Ryan Sleevi (64 bit)<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OpenSuse<br />
| style="border-top: thin dotted #333333;" |<br />
32bit/64bit<br>10.2 10.3<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling OpenSuse | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Kornel Benko (10.3)<br />
* Peter Suetterlin (10.2)<br />
* Stephan Hegel (10.3 x86_64)<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
FreeBSD<br />
| style="border-top: thin dotted #333333;" |<br />
32bit/64bit<br>6.3 7.0<br />
| style="border-top: thin dotted #333333;" |<br />
n/a<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling FreeBSD | OK]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Vasil Dimov (6.2/i386)<br />
* Vasil Dimov (7.0/amd64)<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
Gentoo Linux<br />
| style="border-top: thin dotted #333333;" |<br />
32bit<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin_Compiling_Gentoo | OK]]<br />
| style="border-top: thin dotted #333333;" |<br />
* Thomas Pani<br />
<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
all platforms<br />
! style="border-top: thin dotted #333333;" colspan="4" |<br />
a big thank you to '''Pablo d'Angelo''' for supporting all of those building efforts.<br />
|-valign="top"<br />
|}<br />
<br />
=== Stati ===<br />
<br />
'''Build Chain'''<br />
* tbd: looking for responsible<br />
* OK: mostly automated build process ready on request<br />
* unavailable: temporarily unavailable (e.g. responsible on holiday)<br />
* HW-broken: the hardware is temporarily unavailable<br />
* SW-broken: temporarily dysfunctional, working on a fix<br />
* broken: nobody is working on a fix<br />
* unsupported: has been dropped for lack of support<br />
<br />
'''Process'''<br />
* tbd: status unknown<br />
* auto: work as documented and has been automated to a reasonable extent<br />
* OK: works as documented, could use automation / scripting<br />
* draft: documented, needs validation / testing / cleaning<br />
* incomplete: parts are missing (e.g. enblend, libpano)<br />
* outdated: worked in the past but needs an update<br />
* obsolete: nobody has the time to update<br />
<br />
== Packaging and Distribution ==<br />
<br />
Instructions for packaging binaries for distribution will follow. Some important points:<br />
<br />
=== Snapshots ===<br />
* comply with the GPL<br />
** join a text of the GPL in the distribution<br />
** give access to the source code<br />
** credit the authors<br />
* label clearly the snapshot as such, with a reference to the build date and/or the SVN revision number<br />
* edit the text / readme files that come with the snapshot<br />
** indicate clearly that it is unstable, experimental software<br />
** indicate where to find the latest version<br />
** indicate that the advertised features might or might not work<br />
<br />
=== Release ===<br />
* comply with the GPL<br />
** join a text of the GPL in the distribution<br />
** give access to the source code<br />
** credit the authors<br />
<br />
== Feedback ==<br />
<br />
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!<br />
<br />
To give good feedback, note down carefully all of this information while you are going through the instructions.<br />
# details about your computer. CPU, operating system, other particularities<br />
# 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.<br />
# the last step / command you entered into the command line<br />
# 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.<br />
<br />
Even the standard feedback is good feedback. For those wishing to dig deeper, you can try<br />
* to use "make VERBOSE=1" when building hugin.<br />
* to do a debug build "cmake -DCMAKE_BUILD_TYPE=DEBUG" and use oprofile for profiling.<br />
<br />
[[Category:Community:Project]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Compiling_Fedora&diff=11725Hugin Compiling Fedora2009-08-21T08:36:01Z<p>Aston: note mesa-libGLU-devel dependency</p>
<hr />
<div>The [[hugin]] and [[enblend]] stable releases are part of default fedora, available via the ''Add/Remove Software'' menu. Note that there is no [[autopano-sift]] in fedora due to patent issues, but [[autopano-sift-C]] can be found in the [http://rpmfusion.org/ RPM Fusion] 3rd party package repository.<br />
<br />
Otherwise, recent-ish hugin snapshots and other panorama-related software can usually be found at the [http://bugbear.postle.net/~bruno/apt/fedora/linux/ fedora panorama repository]. To subscribe just follow this [http://bugbear.postle.net/~bruno/apt/fedora/linux/7/i386/RPMS.panorama/panorama-release-7-1.fc7.noarch.rpm panorama release] link, use the ''Package Installer'' option, and each time you do a ''Software Update'' hugin will be upgraded to the latest snapshot.<br />
<br />
If you want to compile hugin yourself, just follow the instructions in the '''INSTALL_cmake''' file, you will need these development packages (June 2009): libpano13-devel zlib-devel libtiff-devel libjpeg-devel libpng-devel gettext-devel wxGTK-devel boost-devel cmake desktop-file-utils OpenEXR-devel gcc-c++ exiv2-devel glew-devel freeglut-devel mesa-libGLU-devel<br />
<br />
To actually use hugin you also need [[enblend]] 3.2 and perl-Image-ExifTool packages. [[autopano-sift-C]] or [[panomatic]] are useful to automatically generate control points.<br />
<br />
== rpm building instructions ==<br />
<br />
The source RPM package contains an hugin.spec file which is both the build documentation and the script for an automated build (other linux packaging systems work basically the same way).<br />
<br />
=== fedora configuration ===<br />
<br />
First set up your fedora system for building rpms, install some packages (as root):<br />
<br />
yum groupinstall "Development Tools"<br />
yum install rpmdevtools<br />
<br />
Using a normal user account create a build tree, by default this is ~/rpmbuild:<br />
<br />
rpmdev-setuptree<br />
<br />
=== Get a source tarball of hugin ===<br />
<br />
Either download the current stable .tar.gz file from sourceforge or get the latest from the subversion trunk:<br />
<br />
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk<br />
cd trunk<br />
cmake .<br />
make package_source<br />
<br />
In future, you only need to update the source tree rather than checking out again:<br />
<br />
cd trunk<br />
svn up<br />
cmake .<br />
make package_source<br />
<br />
'package_source' is a Makefile target, targets are things like 'all' or 'clean' or 'install', this one just creates a tarball.<br />
<br />
=== Get a hugin.spec file ===<br />
<br />
Download an existing hugin .src.rpm file and extract the hugin.spec file file by running this command as a normal user:<br />
<br />
rpm -ivh hugin-0.8.0-1.src.rpm<br />
<br />
This should put the .spec file where rpmbuild expects to find it.<br />
<br />
~/rpmbuild/SPECS/hugin.spec<br />
<br />
The next step is to put the .tar.gz where rpmbuild expects to find it:<br />
<br />
~/rpmbuild/SOURCES/hugin-2009.1.0.tar.gz<br />
<br />
..and run rpmbuild to create both the SRPM and RPMS at the same time:<br />
<br />
rpmbuild -ba ~/rpmbuild/SPECS/hugin.spec<br />
<br />
This will fail, probably. You need to edit the .spec file to change the 'Version' entry to match the current number, add dependencies such as 'freeglut-devel' to the list of 'BuildRequires' that are missing, install any missing build dependency rpms, and try again.<br />
<br />
== Building with mock ==<br />
<br />
'mock' is a more sophisticated system for creating RPMS, it is possible to build multiple architectures and create packages for different releases of fedora and redhat enterprise linux on a single fedora system. <br />
<br />
Install mock as root and add yourself to the 'mock' group (use your user name, not 'myusername'):<br />
<br />
yum install mock<br />
usermod -a -G mock myusername<br />
<br />
Follow the instructions above for creating rpms, but just create the source rpm instead:<br />
<br />
rpmbuild -bs ~/rpmbuild/SPECS/hugin.spec<br />
<br />
Then you can build rpms from this src.rpm with mock like so:<br />
<br />
mock -r fedora-11-i386 rebuild ~/rpmbuild/SRPMS/hugin-2009.1.0-0.src.rpm<br />
<br />
The first time you do this it will take a very long time while it downloads and assembles a 'virtual' machine, but subsequent builds will only take a few minutes.<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Compiling_Fedora&diff=11684Hugin Compiling Fedora2009-08-06T13:55:10Z<p>Aston: /* Get a hugin.spec file */</p>
<hr />
<div>The [[hugin]] and [[enblend]] stable releases are part of default fedora, available via the ''Add/Remove Software'' menu. Note that there is no [[autopano-sift]] in fedora due to patent issues, but [[autopano-sift-C]] can be found in the [http://rpmfusion.org/ RPM Fusion] 3rd party package repository.<br />
<br />
Otherwise, recent-ish hugin snapshots and other panorama-related software can usually be found at the [http://bugbear.postle.net/~bruno/apt/fedora/linux/ fedora panorama repository]. To subscribe just follow this [http://bugbear.postle.net/~bruno/apt/fedora/linux/7/i386/RPMS.panorama/panorama-release-7-1.fc7.noarch.rpm panorama release] link, use the ''Package Installer'' option, and each time you do a ''Software Update'' hugin will be upgraded to the latest snapshot.<br />
<br />
If you want to compile hugin yourself, just follow the instructions in the '''INSTALL_cmake''' file, you will need these development packages (June 2009): libpano13-devel zlib-devel libtiff-devel libjpeg-devel libpng-devel gettext-devel wxGTK-devel boost-devel cmake desktop-file-utils OpenEXR-devel gcc-c++ exiv2-devel glew-devel freeglut-devel<br />
<br />
To actually use hugin you also need [[enblend]] 3.2 and perl-Image-ExifTool packages. [[autopano-sift-C]] or [[panomatic]] are useful to automatically generate control points.<br />
<br />
== rpm building instructions ==<br />
<br />
The source RPM package contains an hugin.spec file which is both the build documentation and the script for an automated build (other linux packaging systems work basically the same way).<br />
<br />
=== fedora configuration ===<br />
<br />
First set up your fedora system for building rpms, install some packages (as root):<br />
<br />
yum groupinstall "Development Tools"<br />
yum install rpmdevtools<br />
<br />
Using a normal user account create a build tree, by default this is ~/rpmbuild:<br />
<br />
rpmdev-setuptree<br />
<br />
=== Get a source tarball of hugin ===<br />
<br />
Either download the current stable .tar.gz file from sourceforge or get the latest from the subversion trunk:<br />
<br />
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk<br />
cd trunk<br />
cmake .<br />
make package_source<br />
<br />
In future, you only need to update the source tree rather than checking out again:<br />
<br />
cd trunk<br />
svn up<br />
cmake .<br />
make package_source<br />
<br />
'package_source' is a Makefile target, targets are things like 'all' or 'clean' or 'install', this one just creates a tarball.<br />
<br />
=== Get a hugin.spec file ===<br />
<br />
Download an existing hugin .src.rpm file and extract the hugin.spec file file by running this command as a normal user:<br />
<br />
rpm -ivh hugin-0.8.0-1.src.rpm<br />
<br />
This should put the .spec file where rpmbuild expects to find it.<br />
<br />
~/rpmbuild/SPECS/hugin.spec<br />
<br />
The next step is to put the .tar.gz where rpmbuild expects to find it:<br />
<br />
~/rpmbuild/SOURCES/hugin-2009.1.0.tar.gz<br />
<br />
..and run rpmbuild to create both the SRPM and RPMS at the same time:<br />
<br />
rpmbuild -ba ~/rpmbuild/SPECS/hugin.spec<br />
<br />
This will fail, probably. You need to edit the .spec file to change the 'Version' entry to match the current number, add dependencies such as 'freeglut-devel' to the list of 'BuildRequires' that are missing, install any missing build dependency rpms, and try again.<br />
<br />
== Building with mock ==<br />
<br />
'mock' is a more sophisticated system for creating RPMS, it is possible to build multiple architectures and create packages for different releases of fedora and redhat enterprise linux on a single fedora system. <br />
<br />
Install mock as root and add yourself to the 'mock' group (use your user name, not 'myusername'):<br />
<br />
yum install mock<br />
usermod -a -G mock myusername<br />
<br />
Follow the instructions above for creating rpms, but just create the source rpm instead:<br />
<br />
rpmbuild -bs ~/rpmbuild/SPECS/hugin.spec<br />
<br />
Then you can build rpms from this src.rpm with mock like so:<br />
<br />
mock -r fedora-11-i386 rebuild ~/rpmbuild/SRPMS/hugin-2009.1.0-0.src.rpm<br />
<br />
The first time you do this it will take a very long time while it downloads and assembles a 'virtual' machine, but subsequent builds will only take a few minutes.<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Compiling_Fedora&diff=11683Hugin Compiling Fedora2009-08-06T13:42:58Z<p>Aston: freeglut-devel dependency</p>
<hr />
<div>The [[hugin]] and [[enblend]] stable releases are part of default fedora, available via the ''Add/Remove Software'' menu. Note that there is no [[autopano-sift]] in fedora due to patent issues, but [[autopano-sift-C]] can be found in the [http://rpmfusion.org/ RPM Fusion] 3rd party package repository.<br />
<br />
Otherwise, recent-ish hugin snapshots and other panorama-related software can usually be found at the [http://bugbear.postle.net/~bruno/apt/fedora/linux/ fedora panorama repository]. To subscribe just follow this [http://bugbear.postle.net/~bruno/apt/fedora/linux/7/i386/RPMS.panorama/panorama-release-7-1.fc7.noarch.rpm panorama release] link, use the ''Package Installer'' option, and each time you do a ''Software Update'' hugin will be upgraded to the latest snapshot.<br />
<br />
If you want to compile hugin yourself, just follow the instructions in the '''INSTALL_cmake''' file, you will need these development packages (June 2009): libpano13-devel zlib-devel libtiff-devel libjpeg-devel libpng-devel gettext-devel wxGTK-devel boost-devel cmake desktop-file-utils OpenEXR-devel gcc-c++ exiv2-devel glew-devel freeglut-devel<br />
<br />
To actually use hugin you also need [[enblend]] 3.2 and perl-Image-ExifTool packages. [[autopano-sift-C]] or [[panomatic]] are useful to automatically generate control points.<br />
<br />
== rpm building instructions ==<br />
<br />
The source RPM package contains an hugin.spec file which is both the build documentation and the script for an automated build (other linux packaging systems work basically the same way).<br />
<br />
=== fedora configuration ===<br />
<br />
First set up your fedora system for building rpms, install some packages (as root):<br />
<br />
yum groupinstall "Development Tools"<br />
yum install rpmdevtools<br />
<br />
Using a normal user account create a build tree, by default this is ~/rpmbuild:<br />
<br />
rpmdev-setuptree<br />
<br />
=== Get a source tarball of hugin ===<br />
<br />
Either download the current stable .tar.gz file from sourceforge or get the latest from the subversion trunk:<br />
<br />
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk<br />
cd trunk<br />
cmake .<br />
make package_source<br />
<br />
In future, you only need to update the source tree rather than checking out again:<br />
<br />
cd trunk<br />
svn up<br />
cmake .<br />
make package_source<br />
<br />
'package_source' is a Makefile target, targets are things like 'all' or 'clean' or 'install', this one just creates a tarball.<br />
<br />
=== Get a hugin.spec file ===<br />
<br />
Download an existing hugin .src.rpm file and extract the hugin.spec file file by running this command as a normal user:<br />
<br />
rpm -ivh hugin-0.8.0-1.src.rpm<br />
<br />
This should put the .spec file where rpmbuild expects to find it.<br />
<br />
~/rpmbuild/SPECS/hugin.spec<br />
<br />
The next step is to put the .tar.gz where rpmbuild expects to find it:<br />
<br />
~/rpmbuild/SOURCES/hugin-2009.1.0.tar.gz<br />
<br />
..and run rpmbuild to create both the SRPM and RPMS at the same time:<br />
<br />
rpmbuild -ba ~/rpmbuild/SPECS/hugin.spec<br />
<br />
This will fail, probably. You need to edit the .spec file to change the 'Version' entry to match the current number, add dependencies such as 'freeglut-devel' to the list of 'BuildRequires' that are missing, and try again.<br />
<br />
== Building with mock ==<br />
<br />
'mock' is a more sophisticated system for creating RPMS, it is possible to build multiple architectures and create packages for different releases of fedora and redhat enterprise linux on a single fedora system. <br />
<br />
Install mock as root and add yourself to the 'mock' group (use your user name, not 'myusername'):<br />
<br />
yum install mock<br />
usermod -a -G mock myusername<br />
<br />
Follow the instructions above for creating rpms, but just create the source rpm instead:<br />
<br />
rpmbuild -bs ~/rpmbuild/SPECS/hugin.spec<br />
<br />
Then you can build rpms from this src.rpm with mock like so:<br />
<br />
mock -r fedora-11-i386 rebuild ~/rpmbuild/SRPMS/hugin-2009.1.0-0.src.rpm<br />
<br />
The first time you do this it will take a very long time while it downloads and assembles a 'virtual' machine, but subsequent builds will only take a few minutes.<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Compiling_Fedora&diff=11682Hugin Compiling Fedora2009-08-06T13:42:17Z<p>Aston: rpm building instrcutions</p>
<hr />
<div>The [[hugin]] and [[enblend]] stable releases are part of default fedora, available via the ''Add/Remove Software'' menu. Note that there is no [[autopano-sift]] in fedora due to patent issues, but [[autopano-sift-C]] can be found in the [http://rpmfusion.org/ RPM Fusion] 3rd party package repository.<br />
<br />
Otherwise, recent-ish hugin snapshots and other panorama-related software can usually be found at the [http://bugbear.postle.net/~bruno/apt/fedora/linux/ fedora panorama repository]. To subscribe just follow this [http://bugbear.postle.net/~bruno/apt/fedora/linux/7/i386/RPMS.panorama/panorama-release-7-1.fc7.noarch.rpm panorama release] link, use the ''Package Installer'' option, and each time you do a ''Software Update'' hugin will be upgraded to the latest snapshot.<br />
<br />
If you want to compile hugin yourself, just follow the instructions in the '''INSTALL_cmake''' file, you will need these development packages (June 2009): libpano13-devel zlib-devel libtiff-devel libjpeg-devel libpng-devel gettext-devel wxGTK-devel boost-devel cmake desktop-file-utils OpenEXR-devel gcc-c++ exiv2-devel glew-devel<br />
<br />
To actually use hugin you also need [[enblend]] 3.2 and perl-Image-ExifTool packages. [[autopano-sift-C]] or [[panomatic]] are useful to automatically generate control points.<br />
<br />
== rpm building instructions ==<br />
<br />
The source RPM package contains an hugin.spec file which is both the build documentation and the script for an automated build (other linux packaging systems work basically the same way).<br />
<br />
=== fedora configuration ===<br />
<br />
First set up your fedora system for building rpms, install some packages (as root):<br />
<br />
yum groupinstall "Development Tools"<br />
yum install rpmdevtools<br />
<br />
Using a normal user account create a build tree, by default this is ~/rpmbuild:<br />
<br />
rpmdev-setuptree<br />
<br />
=== Get a source tarball of hugin ===<br />
<br />
Either download the current stable .tar.gz file from sourceforge or get the latest from the subversion trunk:<br />
<br />
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk<br />
cd trunk<br />
cmake .<br />
make package_source<br />
<br />
In future, you only need to update the source tree rather than checking out again:<br />
<br />
cd trunk<br />
svn up<br />
cmake .<br />
make package_source<br />
<br />
'package_source' is a Makefile target, targets are things like 'all' or 'clean' or 'install', this one just creates a tarball.<br />
<br />
=== Get a hugin.spec file ===<br />
<br />
Download an existing hugin .src.rpm file and extract the hugin.spec file file by running this command as a normal user:<br />
<br />
rpm -ivh hugin-0.8.0-1.src.rpm<br />
<br />
This should put the .spec file where rpmbuild expects to find it.<br />
<br />
~/rpmbuild/SPECS/hugin.spec<br />
<br />
The next step is to put the .tar.gz where rpmbuild expects to find it:<br />
<br />
~/rpmbuild/SOURCES/hugin-2009.1.0.tar.gz<br />
<br />
..and run rpmbuild to create both the SRPM and RPMS at the same time:<br />
<br />
rpmbuild -ba ~/rpmbuild/SPECS/hugin.spec<br />
<br />
This will fail, probably. You need to edit the .spec file to change the 'Version' entry to match the current number, add dependencies such as 'freeglut-devel' to the list of 'BuildRequires' that are missing, and try again.<br />
<br />
== Building with mock ==<br />
<br />
'mock' is a more sophisticated system for creating RPMS, it is possible to build multiple architectures and create packages for different releases of fedora and redhat enterprise linux on a single fedora system. <br />
<br />
Install mock as root and add yourself to the 'mock' group (use your user name, not 'myusername'):<br />
<br />
yum install mock<br />
usermod -a -G mock myusername<br />
<br />
Follow the instructions above for creating rpms, but just create the source rpm instead:<br />
<br />
rpmbuild -bs ~/rpmbuild/SPECS/hugin.spec<br />
<br />
Then you can build rpms from this src.rpm with mock like so:<br />
<br />
mock -r fedora-11-i386 rebuild ~/rpmbuild/SRPMS/hugin-2009.1.0-0.src.rpm<br />
<br />
The first time you do this it will take a very long time while it downloads and assembles a 'virtual' machine, but subsequent builds will only take a few minutes.<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Compiling_OpenSuse&diff=11681Hugin Compiling OpenSuse2009-08-04T08:34:15Z<p>Aston: /* Status reports */</p>
<hr />
<div>To build enblend, enfuse, libpano and hugin, follow the instructions below.<br />
<br />
== Dependencies and prerequisites needed for OpenSuSE 10.3 ==<br />
<br />
gettext<br />
libjpeg-devel<br />
boost-devel<br />
boost <br />
wxGTK-devel<br />
wxGTK<br />
OpenEXR-devel<br />
openEXR<br />
libexiv2-devel<br />
libtiff-devel<br />
liblcms-devel<br />
cmake<br />
<br />
== Enblend and Enfuse (cvs) ==<br />
<br />
cvs -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend login<br />
cvs -z3 -d:pserver:anonymous@enblend.cvs.sourceforge.net:/cvsroot/enblend co -P enblend<br />
cd enblend<br />
make -f Makefile.cvs<br />
./configure<br />
make<br />
sudo make install<br />
<br />
== libpano13 ==<br />
<br />
mkdir -p /usr/src/panotools/trunk<br />
cd /usr/src/panotools/trunk<br />
svn co https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano libpano13<br />
cd libpano13<br />
sh ./bootstrap<br />
make<br />
sudo make install install-data-am<br />
<br />
== Hugin ==<br />
=== Checkout Hugin ===<br />
<br />
mkdir /usr/src/hugin<br />
cd /usr/src/hugin<br />
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk hugin<br />
<br />
* if you need to build a specific SVN revision, e.g. 2765, you can slightly change the svn command to get it. e.g.:<br />
<br />
svn co -r 2765 https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk/ hugin<br />
<br />
=== Compile Hugin ===<br />
<br />
mkdir /usr/src/hugin/BuildHugin<br />
cd /usr/src/hugin/BuildHugin<br />
ccmake /usr/src/hugin/hugin<br />
cmake /usr/src/hugin/hugin<br />
make && sudo make install<br />
<br />
== autopano-sift-C ==<br />
Needed for automatic control point generation, restricted by software patents in some countries.<br />
<br />
cd /usr/src<br />
svn co https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk/ autopano-sift-C<br />
cd autopano-sift-C<br />
mkdir build && cd build<br />
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..<br />
make<br />
sudo make install<br />
<br />
== Status reports ==<br />
<br />
Success Report: On OpenSuSE 10.2 ist's really straightforward.<br />
* clean SVN chechout (version as of 20070204)<br />
* followed the instructions in '''INSTALL_cmake'''.<br />
* The only non-standard thing is libpano13, (2.9.12 was used)<br />
* All other dependencies have been resolved using the standard (smart) repositories for OpenSuSE (wxGTK is 2.6.3.3).<br />
<br />
Success Report: Confirmed working on OpenSuSE 10.3 and x86_64 architecture.<br />
<br />
Success Report: On OpenSuSE 11.0 x86_64.<br />
* you will need to make sure you have all of the build tools. (examples: gcc+ automake)<br />
* Also had to install libXML2 for autopano<br />
<br />
For OpenSuSE 11.1:<br />
* On x86_64 systems with libraries in /usr/lib64 or /usr/local/lib64 such as OpenSuSE, redhat or fedora you need to pass LIB_SUFFIX=64 to cmake<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_FAQ&diff=11668Hugin FAQ2009-07-31T15:27:31Z<p>Aston: /* Windows: International Characters in Path */</p>
<hr />
<div>== Common error messages ==<br />
<br />
=== enblend: no input files specified ===<br />
<br />
There are no input images relevant to the output 'panorama' so hugin had nothing to do, probably because all the input images are outside the panorama 'frame'. Open the [[Hugin Preview window]] or [[Hugin Fast Preview window]] to adjust the view and/or crop.<br />
<br />
=== enblend: error writing to image swap file ===<br />
<br />
[[enblend]] needs a lot of memory and uses its own swap routine to store picture data on the disk, this message indicates that you have run out of disk space. The data is stored in the system temp folder which is specified by TMP, TEMP or TMPDIR environment variables, note that this temp folder may be on a different physical disk to your photos and panorama output.<br />
<br />
=== false --compression NONE ===<br />
<br />
This error is caused by a bug in the 0.7.0 release that is fixed in 0.8.0. The problem is that your preferences are messed-up, the workaround for 0.7.0 is to go to File -> Preferences -> Enblend and click Load Defaults -> Yes -> Ok<br />
<br />
=== Enblend error: Mask is entirely black, but white image was not identified as redundant ===<br />
<br />
This is a well known "error" for [[enblend]]. Try to use the additional enblend parameter "--fine-mask" to ged rid of the error. The parameter will result in generation of masks in higher resolution that will fix the problem in most cases. Sometimes the "--fine-mask" parameter may result in memory errors (malloc: ...), which are the result of not enough memory available due to the (much) bigger masks that are used.<br />
<br />
An alternative workaround would be to set the enblend --no-optimize parameter, this will place the seam directly along the middle of the image overlaps regardless of image content. This option is also considerably faster and uses less memory.<br />
<br />
=== enblend: illegal option -- compression ===<br />
<br />
hugin 0.7.0 and later versions require at least [[enblend]] version 3.2. This error indicates that you need to upgrade enblend.<br />
<br />
=== Makefile: target pattern contains no % ===<br />
<br />
This is a message generated by [[w:Make_(software)]] (which [[Hugin]] uses to manage the stitching sequence). The error is caused by a ''':''' or '''#''' character in one of the file paths. The workaround is to rename to remove any 'special' shell characters and try again.<br />
<br />
== Known Limitations ==<br />
<br />
=== Linux: Compiz ===<br />
<br />
Linux: Compiz interferes with the [[hugin Fast Preview window]]. This is not a hugin specific issue. Research shows all direct rendered stuff will have various problems under Compiz: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/96991<br />
<br />
This problem is fixed with DRI2, e.g with fedora 11 and intel graphics hardware you can have a 'wobbly' Fast Preview window if you really want.<br />
<br />
It's not an issue with NVidia's proprietry driver.<br />
<br />
If you're affected, the workaround is to not use Compiz.<br />
<br />
=== Windows: International Characters in Path ===<br />
<br />
Hugin is fully internationalised and can cope with special characters in file paths. However, hugin apparently fails on Windows systems with Russian and Czech codepages, the workaround is to use shell-safe ascii characters in file and folder names: '''A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 - _ .'''<br />
<br />
=== Non-Unique Filenames ===<br />
<br />
Some components of Hugin have been reported not to deal well with image files<br />
that have the same name in different folders. The workaround is to rename <br />
your images files so that all image files in a project are unique.<br />
<br />
== Control Point creation ==<br />
<br />
=== How do I add control points ===<br />
The [[control points]] editor is quite powerful, but its usage is probably not obvious on the first try. Here are some ways the developers use the Control Point panel:<br />
<br />
1. Selecting control points in 100% zoom.<br />
<br />
This method needs some scrolling, if big images are used. You might want to try the fit to window zoom setting in that case. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: 100%<br />
[X] auto fine tune<br />
[X] auto add<br />
[X] auto estimate<br />
<br />
Click on a prominent feature in the left image. If the image pair already contains control points, [[hugin]] will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The second point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by dragging them to a better position. Press the "f" key to fine tune the point in a small area.<br />
<br />
<br />
2. Selecting control points in fit to window mode.<br />
<br />
I uses this mode if I need to set points on big images. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: fit to window<br />
[X] auto fine tune<br />
[ ] auto add<br />
[X] auto estimate<br />
<br />
Click on left image. The image will be shown in 100% view. Within the detailed view, click on a prominent feature. If the image pair already contains control points, hugin will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by clicking at the desired position. Move the point close to the desired feature and press the "f" key to fine tune the point. When the points are on the same feature, press the right mouse button, or press the "a" key to add the control point pair. It will then be shown in the list below the image.<br />
<br />
=== How do I scroll both images at the same time? ===<br />
<br />
Try pressing the shift key while moving the mouse. The control key or the middle mouse button can be used to scroll only the image under the mouse cursor.<br />
<br />
=== How do I stop Hugin pausing for a moment after every click? ===<br />
<br />
The ''preview window'' updates continuously whenever anything changes, so disable the preview auto-update, close it or make it smaller if you don't need it.<br />
<br />
Otherwise, picking [[control points]] with ''auto fine tune'' selected can involve a lot<br />
of processing. You can reduce this by ''selecting File -> Preferences -> Finetune'' and<br />
lowering the values for ''Patch width'', ''Search area width'' and ''Local search area width''.<br />
This means you can't be so sloppy when clicking to create control points, but the results will<br />
be the same.<br />
<br />
== Common problems when creating a panorama ==<br />
<br />
=== How can I reuse a project as a template? ===<br />
<br />
If you copy a .pto project to a different folder and open it with hugin, you will be prompted for the 'missing' images. You should delete any control points from this template project since they won't be relevant to the new photos.<br />
<br />
Alternatively you can load your images as normal, then ''Apply template''<br />
from the ''File'' menu, this will import image settings and parameters<br />
from a previous project.<br />
<br />
=== How do I straighten a curved horizon? ===<br />
If the panorama looks nice but the horizon is curved, there are two ways to improve the image and straighten the horizon. First, try optimizing the view by selecting "Positions and View" as the optimization mode and run the optimizer afterwards. By clicking "Calculate Field of View" in the "Stitcher" tab and displaying the preview window afterwards you can check if the image has been improved.<br />
<br />
If it is still curved, you have to add vertical guide control points in the "Control Points" tab. Usually two [[vertical control points]] are enough to straighten the horizon nicely. Often edges of buildings, poles or other man made structures provide good vertical lines. To add a vertical control point, switch to the control point editor and select the same image on both sides. Place a control point on the left image on the upper area of the vertical feature. In the right image, select a control point on the lower area of the features, and press the Add button. Once the new point has been added, its type should automatically switch to "vertical line". You might want to switch off the auto-add and auto-estimate options while doing this to avoid naggy dialogs while adding these guide points.<br />
<br />
Two points that are roughly 90 degrees apart provide the best effect.<br />
<br />
See also the related perspective correction tutorials: [http://hugin.sourceforge.net/tutorials/architectural/en.shtml hugin tutorial on perspective correction], [[Perspective correction]], [[Leveling a Finished Panorama]]. While these are concerned with correction of the perspective in one image, the same technique can be used for<br />
leveling a panorama.<br />
<br />
=== Half the panorama is black, my pictures fill only the right half of the output ===<br />
<br />
Hugin uses the first photo as the ''anchor'' image and puts it in the middle by default. This means that if you shot a sequence from left to right, the images will fill the right hand side of the panorama. There are two ways to fix this:<br />
<br />
* Open the '''preview''' window and click the '''center''' button.<br />
* or select the middle photo, hit '''anchor this image for position''' and '''reset''' in the '''images''' tab, then reoptimise.<br />
<br />
=== I get visible bands in the sky and other flat areas, what can I do? ===<br />
<br />
Make sure you are using [[enblend]] to do the final image assembly, this will blend the overlap as much as is possible - Enable enblend by stitching the images '''into a high quality TIFF file''' in the '''stitcher''' tab.<br />
<br />
If you still have problems, then you probably have to correct [[vignetting]] in your images. In the vignetting area of '''camera and lens''' tab, select '''edit parameters...'''. Then select '''division''', '''polynomial''' and '''estimate polynomial''' to calculate a vignetting correction curve for your camera combination - This will be applied to every photo in your project when you click '''OK'''.<br />
<br />
=== My photos never quite line up, what can I do? ===<br />
<br />
It is normal to get little stitching [[parallax]] errors if<br />
the camera moves between photos. The solution is to rotate the camera around<br />
the [[no-parallax point]] using a [[Heads|panoramic head]] or [[philopod]].<br />
<br />
Otherwise you can sometimes improve things by optimising the ''d & e'' parameters<br />
separately - When you optimise '''everything''', unselect '''Inherit''' in<br />
the '''camera and Lens''' panel for 'd & e'.<br />
<br />
If these parallax errors are still large, you need to decide which<br />
parts of the scene that you want to line-up and which parts don't<br />
matter. Select [[control points]] only on objects that you do want to<br />
line-up and which are all about the same distance from the camera.<br />
<br />
The remaining broken lines can then be retouched in a photo editor like the [[gimp]].<br />
The ''shear'' tool is ideal for bending the lines and<br />
[[Mending parallax errors with the shear tool|getting them to line up]].<br />
<br />
== Postprocessing ==<br />
<br />
=== Why is the ICC profile of my input images not preserved? ===<br />
<br />
Since hugin 0.5 and enblend 2.4 [[colour profile|ICC profiles]] in the input files are transfered to the output panorama. Please update to a current version.<br />
<br />
=== How can I postprocess the image using multiple layers in The Gimp? ===<br />
<br />
Unfortunately, The [[Gimp]] can't read [[PSD]] formatted files generated by [[PTStitcher]], and the multiple [[TIFF]] output it produces is cumbersome to use. There are two possibilities to work around this:<br />
<br />
*Use the [[nona]] stitcher, to output to a multilayer TIFF format.<br />
This will will produce a multi_layer.tif file, that contains all remapped images, cropped to their bounding box. This will save a lot of space, compared to a "traditional" PTStitcher layered output file, where all layers have the full panorama size.<br />
<br />
Unfortunately, The Gimp 1.2 and 1.3 can't load multilayer TIFF files. Please use Gimp 2.0 or later.<br />
<br />
*If you need [[PTStitcher]] features not supported by nona, you can also use [[tif2xcf]], to combine the multiple TIFF output into a multilayer XCF.<br />
Unfortunately this requires a lot of memory because it stores each remapped image in a layer with the size of the final panorama.<br />
<br />
== Installation ==<br />
<br />
=== Where can I download hugin installers ===<br />
<br />
Information on installers for both stable and testing builds of hugin can be found on the [http://panospace.wordpress.com/downloads/ panospace download page].<br />
<br />
=== How can I compile Hugin.app on my OSX machine? ===<br />
<br />
See [[Hugin Compiling OSX]], [[Autopano-sift-C Compiling OSX]] and [[Enblend Compiling OSX]].<br />
<br />
=== How do I compile hugin on my linux machine? ===<br />
<br />
See [[Hugin Compiling Fedora]], [[Hugin Compiling Gentoo]], [[Hugin Compiling OpenSuse]] and [[Hugin Compiling Ubuntu]]<br />
<br />
=== How do I compile hugin on my Windows machine? ===<br />
<br />
See [[Hugin Compiling Windows]]<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_FAQ&diff=11574Hugin FAQ2009-07-06T16:21:43Z<p>Aston: enblend: illegal option -- compression</p>
<hr />
<div>== Common error messages ==<br />
<br />
=== enblend: no input files specified ===<br />
<br />
There are no input images relevant to the output 'panorama' so hugin had nothing to do, probably because all the input images are outside the panorama 'frame'. Open the [[Hugin Preview window]] or [[Hugin Fast Preview window]] to adjust the view and/or crop.<br />
<br />
=== enblend: error writing to image swap file ===<br />
<br />
[[enblend]] needs a lot of memory and uses its own swap routine to store picture data on the disk, this message indicates that you have run out of disk space. The data is stored in the system temp folder which is specified by TMP, TEMP or TMPDIR environment variables, note that this temp folder may be on a different physical disk to your photos and panorama output.<br />
<br />
=== false --compression NONE ===<br />
<br />
This error is caused by a bug in the 0.7.0 release that is fixed in 0.8.0. The problem is that your preferences are messed-up, the workaround for 0.7.0 is to go to File -> Preferences -> Enblend and click Load Defaults -> Yes -> Ok<br />
<br />
=== Enblend error: Mask is entirely black, but white image was not identified as redundant ===<br />
<br />
This is a well known "error" for [[enblend]]. Try to use the additional enblend parameter "--fine-mask" to ged rid of the error. The parameter will result in generation of masks in higher resolution that will fix the problem in most cases. Sometimes the "--fine-mask" parameter may result in memory errors (malloc: ...), which are the result of not enough memory available due to the (much) bigger masks that are used.<br />
<br />
An alternative workaround would be to set the enblend --no-optimize parameter, this will place the seam directly along the middle of the image overlaps regardless of image content. This option is also considerably faster and uses less memory.<br />
<br />
=== enblend: illegal option -- compression ===<br />
<br />
hugin 0.7.0 and later versions require at least [[enblend]] version 3.2. This error indicates that you need to upgrade enblend.<br />
<br />
== Control Point creation ==<br />
<br />
=== How do I add control points ===<br />
The [[control points]] editor is quite powerful, but its usage is probably not obvious on the first try. Here are some ways the developers use the Control Point panel:<br />
<br />
1. Selecting control points in 100% zoom.<br />
<br />
This method needs some scrolling, if big images are used. You might want to try the fit to window zoom setting in that case. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: 100%<br />
[X] auto fine tune<br />
[X] auto add<br />
[X] auto estimate<br />
<br />
Click on a prominent feature in the left image. If the image pair already contains control points, [[hugin]] will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The second point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by dragging them to a better position. Press the "f" key to fine tune the point in a small area.<br />
<br />
<br />
2. Selecting control points in fit to window mode.<br />
<br />
I uses this mode if I need to set points on big images. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: fit to window<br />
[X] auto fine tune<br />
[ ] auto add<br />
[X] auto estimate<br />
<br />
Click on left image. The image will be shown in 100% view. Within the detailed view, click on a prominent feature. If the image pair already contains control points, hugin will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by clicking at the desired position. Move the point close to the desired feature and press the "f" key to fine tune the point. When the points are on the same feature, press the right mouse button, or press the "a" key to add the control point pair. It will then be shown in the list below the image.<br />
<br />
=== How do I scroll both images at the same time? ===<br />
<br />
Try pressing the shift key while moving the mouse. The control key or the middle mouse button can be used to scroll only the image under the mouse cursor.<br />
<br />
=== How do I stop Hugin pausing for a moment after every click? ===<br />
<br />
The ''preview window'' updates continuously whenever anything changes, so disable the preview auto-update, close it or make it smaller if you don't need it.<br />
<br />
Otherwise, picking [[control points]] with ''auto fine tune'' selected can involve a lot<br />
of processing. You can reduce this by ''selecting File -> Preferences -> Finetune'' and<br />
lowering the values for ''Patch width'', ''Search area width'' and ''Local search area width''.<br />
This means you can't be so sloppy when clicking to create control points, but the results will<br />
be the same.<br />
<br />
== Common problems when creating a panorama ==<br />
<br />
=== How can I reuse a project as a template? ===<br />
<br />
If you copy a .pto project to a different folder and open it with hugin, you will be prompted for the 'missing' images. You should delete any control points from this template project since they won't be relevant to the new photos.<br />
<br />
Alternatively you can load your images as normal, then ''Apply template''<br />
from the ''File'' menu, this will import image settings and parameters<br />
from a previous project.<br />
<br />
=== How do I straighten a curved horizon? ===<br />
If the panorama looks nice but the horizon is curved, there are two ways to improve the image and straighten the horizon. First, try optimizing the view by selecting "Positions and View" as the optimization mode and run the optimizer afterwards. By clicking "Calculate Field of View" in the "Stitcher" tab and displaying the preview window afterwards you can check if the image has been improved.<br />
<br />
If it is still curved, you have to add vertical guide control points in the "Control Points" tab. Usually two [[vertical control points]] are enough to straighten the horizon nicely. Often edges of buildings, poles or other man made structures provide good vertical lines. To add a vertical control point, switch to the control point editor and select the same image on both sides. Place a control point on the left image on the upper area of the vertical feature. In the right image, select a control point on the lower area of the features, and press the Add button. Once the new point has been added, its type should automatically switch to "vertical line". You might want to switch off the auto-add and auto-estimate options while doing this to avoid naggy dialogs while adding these guide points.<br />
<br />
Two points that are roughly 90 degrees apart provide the best effect.<br />
<br />
See also the related perspective correction tutorials: [http://hugin.sourceforge.net/tutorials/architectural/en.shtml hugin tutorial on perspective correction], [[Perspective correction]], [[Leveling a Finished Panorama]]. While these are concerned with correction of the perspective in one image, the same technique can be used for<br />
leveling a panorama.<br />
<br />
=== Half the panorama is black, my pictures fill only the right half of the output ===<br />
<br />
Hugin uses the first photo as the ''anchor'' image and puts it in the middle by default. This means that if you shot a sequence from left to right, the images will fill the right hand side of the panorama. There are two ways to fix this:<br />
<br />
* Open the '''preview''' window and click the '''center''' button.<br />
* or select the middle photo, hit '''anchor this image for position''' and '''reset''' in the '''images''' tab, then reoptimise.<br />
<br />
=== I get visible bands in the sky and other flat areas, what can I do? ===<br />
<br />
Make sure you are using [[enblend]] to do the final image assembly, this will blend the overlap as much as is possible - Enable enblend by stitching the images '''into a high quality TIFF file''' in the '''stitcher''' tab.<br />
<br />
If you still have problems, then you probably have to correct [[vignetting]] in your images. In the vignetting area of '''camera and lens''' tab, select '''edit parameters...'''. Then select '''division''', '''polynomial''' and '''estimate polynomial''' to calculate a vignetting correction curve for your camera combination - This will be applied to every photo in your project when you click '''OK'''.<br />
<br />
=== My photos never quite line up, what can I do? ===<br />
<br />
It is normal to get little stitching [[parallax]] errors if<br />
the camera moves between photos. The solution is to rotate the camera around<br />
the [[no-parallax point]] using a [[Heads|panoramic head]] or [[philopod]].<br />
<br />
Otherwise you can sometimes improve things by optimising the ''d & e'' parameters<br />
separately - When you optimise '''everything''', unselect '''Inherit''' in<br />
the '''camera and Lens''' panel for 'd & e'.<br />
<br />
If these parallax errors are still large, you need to decide which<br />
parts of the scene that you want to line-up and which parts don't<br />
matter. Select [[control points]] only on objects that you do want to<br />
line-up and which are all about the same distance from the camera.<br />
<br />
The remaining broken lines can then be retouched in a photo editor like the [[gimp]].<br />
The ''shear'' tool is ideal for bending the lines and<br />
[[Mending parallax errors with the shear tool|getting them to line up]].<br />
<br />
== Postprocessing ==<br />
<br />
=== Why is the ICC profile of my input images not preserved? ===<br />
<br />
Since hugin 0.5 and enblend 2.4 [[colour profile|ICC profiles]] in the input files are transfered to the output panorama. Please update to a current version.<br />
<br />
=== How can I postprocess the image using multiple layers in The Gimp? ===<br />
<br />
Unfortunately, The [[Gimp]] can't read [[PSD]] formatted files generated by [[PTStitcher]], and the multiple [[TIFF]] output it produces is cumbersome to use. There are two possibilities to work around this:<br />
<br />
*Use the [[nona]] stitcher, to output to a multilayer TIFF format.<br />
This will will produce a multi_layer.tif file, that contains all remapped images, cropped to their bounding box. This will save a lot of space, compared to a "traditional" PTStitcher layered output file, where all layers have the full panorama size.<br />
<br />
Unfortunately, The Gimp 1.2 and 1.3 can't load multilayer TIFF files. Please use Gimp 2.0 or later.<br />
<br />
*If you need [[PTStitcher]] features not supported by nona, you can also use [[tif2xcf]], to combine the multiple TIFF output into a multilayer XCF.<br />
Unfortunately this requires a lot of memory because it stores each remapped image in a layer with the size of the final panorama.<br />
<br />
== Installation ==<br />
<br />
=== Where can I download hugin installers ===<br />
<br />
Information on installers for both stable and testing builds of hugin can be found on the [http://panospace.wordpress.com/downloads/ panospace download page].<br />
<br />
=== How can I compile Hugin.app on my OSX machine? ===<br />
<br />
See [[Hugin Compiling OSX]], [[Autopano-sift-C Compiling OSX]] and [[Enblend Compiling OSX]].<br />
<br />
=== How do I compile hugin on my linux machine? ===<br />
<br />
See [[Hugin Compiling Fedora]], [[Hugin Compiling Gentoo]], [[Hugin Compiling OpenSuse]] and [[Hugin Compiling Ubuntu]]<br />
<br />
=== How do I compile hugin on my Windows machine? ===<br />
<br />
See [[Hugin Compiling Windows]]<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_FAQ&diff=11569Hugin FAQ2009-06-26T16:57:54Z<p>Aston: /* Common error messages */</p>
<hr />
<div>== Common error messages ==<br />
<br />
=== enblend: no input files specified ===<br />
<br />
There are no input images relevant to the output 'panorama' so hugin had nothing to do, probably because all the input images are outside the panorama 'frame'. Open the [[Hugin Preview window]] or [[Hugin Fast Preview window]] to adjust the view and/or crop.<br />
<br />
=== enblend: error writing to image swap file ===<br />
<br />
[[enblend]] needs a lot of memory and uses its own swap routine to store picture data on the disk, this message indicates that you have run out of disk space. The data is stored in the system temp folder which is specified by TMP, TEMP or TMPDIR environment variables, note that this temp folder may be on a different physical disk to your photos and panorama output.<br />
<br />
=== false --compression NONE ===<br />
<br />
This error is caused by a bug in the 0.7.0 release that is fixed in the latest 0.8.0 pre-releases. The problem is that your preferences are messed-up, the workaround for 0.7.0 is to go to File -> Preferences -> Enblend and click Load Defaults -> Yes -> Ok<br />
<br />
== Control Point creation ==<br />
<br />
=== How do I add control points ===<br />
The [[control points]] editor is quite powerful, but its usage is probably not obvious on the first try. Here are some ways the developers use the Control Point panel:<br />
<br />
1. Selecting control points in 100% zoom.<br />
<br />
This method needs some scrolling, if big images are used. You might want to try the fit to window zoom setting in that case. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: 100%<br />
[X] auto fine tune<br />
[X] auto add<br />
[X] auto estimate<br />
<br />
Click on a prominent feature in the left image. If the image pair already contains control points, [[hugin]] will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The second point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by dragging them to a better position. Press the "f" key to fine tune the point in a small area.<br />
<br />
<br />
2. Selecting control points in fit to window mode.<br />
<br />
I uses this mode if I need to set points on big images. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: fit to window<br />
[X] auto fine tune<br />
[ ] auto add<br />
[X] auto estimate<br />
<br />
Click on left image. The image will be shown in 100% view. Within the detailed view, click on a prominent feature. If the image pair already contains control points, hugin will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by clicking at the desired position. Move the point close to the desired feature and press the "f" key to fine tune the point. When the points are on the same feature, press the right mouse button, or press the "a" key to add the control point pair. It will then be shown in the list below the image.<br />
<br />
=== How do I scroll both images at the same time? ===<br />
<br />
Try pressing the shift key while moving the mouse. The control key or the middle mouse button can be used to scroll only the image under the mouse cursor.<br />
<br />
=== How do I stop Hugin pausing for a moment after every click? ===<br />
<br />
The ''preview window'' updates continuously whenever anything changes, so disable the preview auto-update, close it or make it smaller if you don't need it.<br />
<br />
Otherwise, picking [[control points]] with ''auto fine tune'' selected can involve a lot<br />
of processing. You can reduce this by ''selecting File -> Preferences -> Finetune'' and<br />
lowering the values for ''Patch width'', ''Search area width'' and ''Local search area width''.<br />
This means you can't be so sloppy when clicking to create control points, but the results will<br />
be the same.<br />
<br />
== Common problems when creating a panorama ==<br />
<br />
=== How can I reuse a project as a template? ===<br />
<br />
If you copy a .pto project to a different folder and open it with hugin, you will be prompted for the 'missing' images. You should delete any control points from this template project since they won't be relevant to the new photos.<br />
<br />
Alternatively you can load your images as normal, then ''Apply template''<br />
from the ''File'' menu, this will import image settings and parameters<br />
from a previous project.<br />
<br />
=== How do I straighten a curved horizon? ===<br />
If the panorama looks nice but the horizon is curved, there are two ways to improve the image and straighten the horizon. First, try optimizing the view by selecting "Positions and View" as the optimization mode and run the optimizer afterwards. By clicking "Calculate Field of View" in the "Stitcher" tab and displaying the preview window afterwards you can check if the image has been improved.<br />
<br />
If it is still curved, you have to add vertical guide control points in the "Control Points" tab. Usually two [[vertical control points]] are enough to straighten the horizon nicely. Often edges of buildings, poles or other man made structures provide good vertical lines. To add a vertical control point, switch to the control point editor and select the same image on both sides. Place a control point on the left image on the upper area of the vertical feature. In the right image, select a control point on the lower area of the features, and press the Add button. Once the new point has been added, its type should automatically switch to "vertical line". You might want to switch off the auto-add and auto-estimate options while doing this to avoid naggy dialogs while adding these guide points.<br />
<br />
Two points that are roughly 90 degrees apart provide the best effect.<br />
<br />
See also the related perspective correction tutorials: [http://hugin.sourceforge.net/tutorials/architectural/en.shtml hugin tutorial on perspective correction], [[Perspective correction]], [[Leveling a Finished Panorama]]. While these are concerned with correction of the perspective in one image, the same technique can be used for<br />
leveling a panorama.<br />
<br />
=== Half the panorama is black, my pictures fill only the right half of the output ===<br />
<br />
Hugin uses the first photo as the ''anchor'' image and puts it in the middle by default. This means that if you shot a sequence from left to right, the images will fill the right hand side of the panorama. There are two ways to fix this:<br />
<br />
* Open the '''preview''' window and click the '''center''' button.<br />
* or select the middle photo, hit '''anchor this image for position''' and '''reset''' in the '''images''' tab, then reoptimise.<br />
<br />
=== I get visible bands in the sky and other flat areas, what can I do? ===<br />
<br />
Make sure you are using [[enblend]] to do the final image assembly, this will blend the overlap as much as is possible - Enable enblend by stitching the images '''into a high quality TIFF file''' in the '''stitcher''' tab.<br />
<br />
If you still have problems, then you probably have to correct [[vignetting]] in your images. In the vignetting area of '''camera and lens''' tab, select '''edit parameters...'''. Then select '''division''', '''polynomial''' and '''estimate polynomial''' to calculate a vignetting correction curve for your camera combination - This will be applied to every photo in your project when you click '''OK'''.<br />
<br />
=== My photos never quite line up, what can I do? ===<br />
<br />
It is normal to get little stitching [[parallax]] errors if<br />
the camera moves between photos. The solution is to rotate the camera around<br />
the [[no-parallax point]] using a [[Heads|panoramic head]] or [[philopod]].<br />
<br />
Otherwise you can sometimes improve things by optimising the ''d & e'' parameters<br />
separately - When you optimise '''everything''', unselect '''Inherit''' in<br />
the '''camera and Lens''' panel for 'd & e'.<br />
<br />
If these parallax errors are still large, you need to decide which<br />
parts of the scene that you want to line-up and which parts don't<br />
matter. Select [[control points]] only on objects that you do want to<br />
line-up and which are all about the same distance from the camera.<br />
<br />
The remaining broken lines can then be retouched in a photo editor like the [[gimp]].<br />
The ''shear'' tool is ideal for bending the lines and<br />
[[Mending parallax errors with the shear tool|getting them to line up]].<br />
<br />
== Postprocessing ==<br />
<br />
=== Why is the ICC profile of my input images not preserved? ===<br />
<br />
Since hugin 0.5 and enblend 2.4 [[colour profile|ICC profiles]] in the input files are transfered to the output panorama. Please update to a current version.<br />
<br />
=== How can I postprocess the image using multiple layers in The Gimp? ===<br />
<br />
Unfortunately, The [[Gimp]] can't read [[PSD]] formatted files generated by [[PTStitcher]], and the multiple [[TIFF]] output it produces is cumbersome to use. There are two possibilities to work around this:<br />
<br />
*Use the [[nona]] stitcher, to output to a multilayer TIFF format.<br />
This will will produce a multi_layer.tif file, that contains all remapped images, cropped to their bounding box. This will save a lot of space, compared to a "traditional" PTStitcher layered output file, where all layers have the full panorama size.<br />
<br />
Unfortunately, The Gimp 1.2 and 1.3 can't load multilayer TIFF files. Please use Gimp 2.0 or later.<br />
<br />
*If you need [[PTStitcher]] features not supported by nona, you can also use [[tif2xcf]], to combine the multiple TIFF output into a multilayer XCF.<br />
Unfortunately this requires a lot of memory because it stores each remapped image in a layer with the size of the final panorama.<br />
<br />
== Installation ==<br />
<br />
=== Where can I download hugin installers ===<br />
<br />
Information on installers for both stable and testing builds of hugin can be found on the [http://panospace.wordpress.com/downloads/ panospace download page].<br />
<br />
=== How can I compile Hugin.app on my OSX machine? ===<br />
<br />
See [[Hugin Compiling OSX]], [[Autopano-sift-C Compiling OSX]] and [[Enblend Compiling OSX]].<br />
<br />
=== How do I compile hugin on my linux machine? ===<br />
<br />
See [[Hugin Compiling Fedora]], [[Hugin Compiling Gentoo]], [[Hugin Compiling OpenSuse]] and [[Hugin Compiling Ubuntu]]<br />
<br />
=== How do I compile hugin on my Windows machine? ===<br />
<br />
See [[Hugin Compiling Windows]]<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_FAQ&diff=11568Hugin FAQ2009-06-26T15:28:32Z<p>Aston: /* Common error messages */</p>
<hr />
<div>== Common error messages ==<br />
<br />
=== enblend: no input files specified ===<br />
<br />
There are no input images relevant to the output 'panorama' so hugin had nothing to do, probably because all the input images are outside the panorama 'frame'. Open the [[Hugin Preview window]] or [[Hugin Fast Preview window]] to adjust the view and/or crop.<br />
<br />
=== enblend: error writing to image swap file ===<br />
<br />
[[enblend]] needs a lot of memory and uses its own swap routine to store picture data on the disk, this message indicates that you have run out of disk space. The data is stored in the system temp folder which is specified by TMP, TEMP or TMPDIR environment variables, note that this temp folder may be on a different physical disk to your photos and panorama output.<br />
<br />
== Control Point creation ==<br />
<br />
=== How do I add control points ===<br />
The [[control points]] editor is quite powerful, but its usage is probably not obvious on the first try. Here are some ways the developers use the Control Point panel:<br />
<br />
1. Selecting control points in 100% zoom.<br />
<br />
This method needs some scrolling, if big images are used. You might want to try the fit to window zoom setting in that case. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: 100%<br />
[X] auto fine tune<br />
[X] auto add<br />
[X] auto estimate<br />
<br />
Click on a prominent feature in the left image. If the image pair already contains control points, [[hugin]] will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The second point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by dragging them to a better position. Press the "f" key to fine tune the point in a small area.<br />
<br />
<br />
2. Selecting control points in fit to window mode.<br />
<br />
I uses this mode if I need to set points on big images. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: fit to window<br />
[X] auto fine tune<br />
[ ] auto add<br />
[X] auto estimate<br />
<br />
Click on left image. The image will be shown in 100% view. Within the detailed view, click on a prominent feature. If the image pair already contains control points, hugin will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by clicking at the desired position. Move the point close to the desired feature and press the "f" key to fine tune the point. When the points are on the same feature, press the right mouse button, or press the "a" key to add the control point pair. It will then be shown in the list below the image.<br />
<br />
=== How do I scroll both images at the same time? ===<br />
<br />
Try pressing the shift key while moving the mouse. The control key or the middle mouse button can be used to scroll only the image under the mouse cursor.<br />
<br />
=== How do I stop Hugin pausing for a moment after every click? ===<br />
<br />
The ''preview window'' updates continuously whenever anything changes, so disable the preview auto-update, close it or make it smaller if you don't need it.<br />
<br />
Otherwise, picking [[control points]] with ''auto fine tune'' selected can involve a lot<br />
of processing. You can reduce this by ''selecting File -> Preferences -> Finetune'' and<br />
lowering the values for ''Patch width'', ''Search area width'' and ''Local search area width''.<br />
This means you can't be so sloppy when clicking to create control points, but the results will<br />
be the same.<br />
<br />
== Common problems when creating a panorama ==<br />
<br />
=== How can I reuse a project as a template? ===<br />
<br />
If you copy a .pto project to a different folder and open it with hugin, you will be prompted for the 'missing' images. You should delete any control points from this template project since they won't be relevant to the new photos.<br />
<br />
Alternatively you can load your images as normal, then ''Apply template''<br />
from the ''File'' menu, this will import image settings and parameters<br />
from a previous project.<br />
<br />
=== How do I straighten a curved horizon? ===<br />
If the panorama looks nice but the horizon is curved, there are two ways to improve the image and straighten the horizon. First, try optimizing the view by selecting "Positions and View" as the optimization mode and run the optimizer afterwards. By clicking "Calculate Field of View" in the "Stitcher" tab and displaying the preview window afterwards you can check if the image has been improved.<br />
<br />
If it is still curved, you have to add vertical guide control points in the "Control Points" tab. Usually two [[vertical control points]] are enough to straighten the horizon nicely. Often edges of buildings, poles or other man made structures provide good vertical lines. To add a vertical control point, switch to the control point editor and select the same image on both sides. Place a control point on the left image on the upper area of the vertical feature. In the right image, select a control point on the lower area of the features, and press the Add button. Once the new point has been added, its type should automatically switch to "vertical line". You might want to switch off the auto-add and auto-estimate options while doing this to avoid naggy dialogs while adding these guide points.<br />
<br />
Two points that are roughly 90 degrees apart provide the best effect.<br />
<br />
See also the related perspective correction tutorials: [http://hugin.sourceforge.net/tutorials/architectural/en.shtml hugin tutorial on perspective correction], [[Perspective correction]], [[Leveling a Finished Panorama]]. While these are concerned with correction of the perspective in one image, the same technique can be used for<br />
leveling a panorama.<br />
<br />
=== Half the panorama is black, my pictures fill only the right half of the output ===<br />
<br />
Hugin uses the first photo as the ''anchor'' image and puts it in the middle by default. This means that if you shot a sequence from left to right, the images will fill the right hand side of the panorama. There are two ways to fix this:<br />
<br />
* Open the '''preview''' window and click the '''center''' button.<br />
* or select the middle photo, hit '''anchor this image for position''' and '''reset''' in the '''images''' tab, then reoptimise.<br />
<br />
=== I get visible bands in the sky and other flat areas, what can I do? ===<br />
<br />
Make sure you are using [[enblend]] to do the final image assembly, this will blend the overlap as much as is possible - Enable enblend by stitching the images '''into a high quality TIFF file''' in the '''stitcher''' tab.<br />
<br />
If you still have problems, then you probably have to correct [[vignetting]] in your images. In the vignetting area of '''camera and lens''' tab, select '''edit parameters...'''. Then select '''division''', '''polynomial''' and '''estimate polynomial''' to calculate a vignetting correction curve for your camera combination - This will be applied to every photo in your project when you click '''OK'''.<br />
<br />
=== My photos never quite line up, what can I do? ===<br />
<br />
It is normal to get little stitching [[parallax]] errors if<br />
the camera moves between photos. The solution is to rotate the camera around<br />
the [[no-parallax point]] using a [[Heads|panoramic head]] or [[philopod]].<br />
<br />
Otherwise you can sometimes improve things by optimising the ''d & e'' parameters<br />
separately - When you optimise '''everything''', unselect '''Inherit''' in<br />
the '''camera and Lens''' panel for 'd & e'.<br />
<br />
If these parallax errors are still large, you need to decide which<br />
parts of the scene that you want to line-up and which parts don't<br />
matter. Select [[control points]] only on objects that you do want to<br />
line-up and which are all about the same distance from the camera.<br />
<br />
The remaining broken lines can then be retouched in a photo editor like the [[gimp]].<br />
The ''shear'' tool is ideal for bending the lines and<br />
[[Mending parallax errors with the shear tool|getting them to line up]].<br />
<br />
== Postprocessing ==<br />
<br />
=== Why is the ICC profile of my input images not preserved? ===<br />
<br />
Since hugin 0.5 and enblend 2.4 [[colour profile|ICC profiles]] in the input files are transfered to the output panorama. Please update to a current version.<br />
<br />
=== How can I postprocess the image using multiple layers in The Gimp? ===<br />
<br />
Unfortunately, The [[Gimp]] can't read [[PSD]] formatted files generated by [[PTStitcher]], and the multiple [[TIFF]] output it produces is cumbersome to use. There are two possibilities to work around this:<br />
<br />
*Use the [[nona]] stitcher, to output to a multilayer TIFF format.<br />
This will will produce a multi_layer.tif file, that contains all remapped images, cropped to their bounding box. This will save a lot of space, compared to a "traditional" PTStitcher layered output file, where all layers have the full panorama size.<br />
<br />
Unfortunately, The Gimp 1.2 and 1.3 can't load multilayer TIFF files. Please use Gimp 2.0 or later.<br />
<br />
*If you need [[PTStitcher]] features not supported by nona, you can also use [[tif2xcf]], to combine the multiple TIFF output into a multilayer XCF.<br />
Unfortunately this requires a lot of memory because it stores each remapped image in a layer with the size of the final panorama.<br />
<br />
== Installation ==<br />
<br />
=== Where can I download hugin installers ===<br />
<br />
Information on installers for both stable and testing builds of hugin can be found on the [http://panospace.wordpress.com/downloads/ panospace download page].<br />
<br />
=== How can I compile Hugin.app on my OSX machine? ===<br />
<br />
See [[Hugin Compiling OSX]], [[Autopano-sift-C Compiling OSX]] and [[Enblend Compiling OSX]].<br />
<br />
=== How do I compile hugin on my linux machine? ===<br />
<br />
See [[Hugin Compiling Fedora]], [[Hugin Compiling Gentoo]], [[Hugin Compiling OpenSuse]] and [[Hugin Compiling Ubuntu]]<br />
<br />
=== How do I compile hugin on my Windows machine? ===<br />
<br />
See [[Hugin Compiling Windows]]<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_FAQ&diff=11567Hugin FAQ2009-06-26T15:00:43Z<p>Aston: /* enblend: no input files specified. */</p>
<hr />
<div>== Common error messages ==<br />
<br />
=== enblend: no input files specified ===<br />
<br />
There are no input images relevant to the output 'panorama' so hugin had nothing to do, probably because all the input images are outside the panorama 'frame'. Open the [[Hugin Preview window]] or [[Hugin Fast Preview window]] to adjust the view and/or crop.<br />
<br />
== Control Point creation ==<br />
<br />
=== How do I add control points ===<br />
The [[control points]] editor is quite powerful, but its usage is probably not obvious on the first try. Here are some ways the developers use the Control Point panel:<br />
<br />
1. Selecting control points in 100% zoom.<br />
<br />
This method needs some scrolling, if big images are used. You might want to try the fit to window zoom setting in that case. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: 100%<br />
[X] auto fine tune<br />
[X] auto add<br />
[X] auto estimate<br />
<br />
Click on a prominent feature in the left image. If the image pair already contains control points, [[hugin]] will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The second point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by dragging them to a better position. Press the "f" key to fine tune the point in a small area.<br />
<br />
<br />
2. Selecting control points in fit to window mode.<br />
<br />
I uses this mode if I need to set points on big images. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: fit to window<br />
[X] auto fine tune<br />
[ ] auto add<br />
[X] auto estimate<br />
<br />
Click on left image. The image will be shown in 100% view. Within the detailed view, click on a prominent feature. If the image pair already contains control points, hugin will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by clicking at the desired position. Move the point close to the desired feature and press the "f" key to fine tune the point. When the points are on the same feature, press the right mouse button, or press the "a" key to add the control point pair. It will then be shown in the list below the image.<br />
<br />
=== How do I scroll both images at the same time? ===<br />
<br />
Try pressing the shift key while moving the mouse. The control key or the middle mouse button can be used to scroll only the image under the mouse cursor.<br />
<br />
=== How do I stop Hugin pausing for a moment after every click? ===<br />
<br />
The ''preview window'' updates continuously whenever anything changes, so disable the preview auto-update, close it or make it smaller if you don't need it.<br />
<br />
Otherwise, picking [[control points]] with ''auto fine tune'' selected can involve a lot<br />
of processing. You can reduce this by ''selecting File -> Preferences -> Finetune'' and<br />
lowering the values for ''Patch width'', ''Search area width'' and ''Local search area width''.<br />
This means you can't be so sloppy when clicking to create control points, but the results will<br />
be the same.<br />
<br />
== Common problems when creating a panorama ==<br />
<br />
=== How can I reuse a project as a template? ===<br />
<br />
If you copy a .pto project to a different folder and open it with hugin, you will be prompted for the 'missing' images. You should delete any control points from this template project since they won't be relevant to the new photos.<br />
<br />
Alternatively you can load your images as normal, then ''Apply template''<br />
from the ''File'' menu, this will import image settings and parameters<br />
from a previous project.<br />
<br />
=== How do I straighten a curved horizon? ===<br />
If the panorama looks nice but the horizon is curved, there are two ways to improve the image and straighten the horizon. First, try optimizing the view by selecting "Positions and View" as the optimization mode and run the optimizer afterwards. By clicking "Calculate Field of View" in the "Stitcher" tab and displaying the preview window afterwards you can check if the image has been improved.<br />
<br />
If it is still curved, you have to add vertical guide control points in the "Control Points" tab. Usually two [[vertical control points]] are enough to straighten the horizon nicely. Often edges of buildings, poles or other man made structures provide good vertical lines. To add a vertical control point, switch to the control point editor and select the same image on both sides. Place a control point on the left image on the upper area of the vertical feature. In the right image, select a control point on the lower area of the features, and press the Add button. Once the new point has been added, its type should automatically switch to "vertical line". You might want to switch off the auto-add and auto-estimate options while doing this to avoid naggy dialogs while adding these guide points.<br />
<br />
Two points that are roughly 90 degrees apart provide the best effect.<br />
<br />
See also the related perspective correction tutorials: [http://hugin.sourceforge.net/tutorials/architectural/en.shtml hugin tutorial on perspective correction], [[Perspective correction]], [[Leveling a Finished Panorama]]. While these are concerned with correction of the perspective in one image, the same technique can be used for<br />
leveling a panorama.<br />
<br />
=== Half the panorama is black, my pictures fill only the right half of the output ===<br />
<br />
Hugin uses the first photo as the ''anchor'' image and puts it in the middle by default. This means that if you shot a sequence from left to right, the images will fill the right hand side of the panorama. There are two ways to fix this:<br />
<br />
* Open the '''preview''' window and click the '''center''' button.<br />
* or select the middle photo, hit '''anchor this image for position''' and '''reset''' in the '''images''' tab, then reoptimise.<br />
<br />
=== I get visible bands in the sky and other flat areas, what can I do? ===<br />
<br />
Make sure you are using [[enblend]] to do the final image assembly, this will blend the overlap as much as is possible - Enable enblend by stitching the images '''into a high quality TIFF file''' in the '''stitcher''' tab.<br />
<br />
If you still have problems, then you probably have to correct [[vignetting]] in your images. In the vignetting area of '''camera and lens''' tab, select '''edit parameters...'''. Then select '''division''', '''polynomial''' and '''estimate polynomial''' to calculate a vignetting correction curve for your camera combination - This will be applied to every photo in your project when you click '''OK'''.<br />
<br />
=== My photos never quite line up, what can I do? ===<br />
<br />
It is normal to get little stitching [[parallax]] errors if<br />
the camera moves between photos. The solution is to rotate the camera around<br />
the [[no-parallax point]] using a [[Heads|panoramic head]] or [[philopod]].<br />
<br />
Otherwise you can sometimes improve things by optimising the ''d & e'' parameters<br />
separately - When you optimise '''everything''', unselect '''Inherit''' in<br />
the '''camera and Lens''' panel for 'd & e'.<br />
<br />
If these parallax errors are still large, you need to decide which<br />
parts of the scene that you want to line-up and which parts don't<br />
matter. Select [[control points]] only on objects that you do want to<br />
line-up and which are all about the same distance from the camera.<br />
<br />
The remaining broken lines can then be retouched in a photo editor like the [[gimp]].<br />
The ''shear'' tool is ideal for bending the lines and<br />
[[Mending parallax errors with the shear tool|getting them to line up]].<br />
<br />
== Postprocessing ==<br />
<br />
=== Why is the ICC profile of my input images not preserved? ===<br />
<br />
Since hugin 0.5 and enblend 2.4 [[colour profile|ICC profiles]] in the input files are transfered to the output panorama. Please update to a current version.<br />
<br />
=== How can I postprocess the image using multiple layers in The Gimp? ===<br />
<br />
Unfortunately, The [[Gimp]] can't read [[PSD]] formatted files generated by [[PTStitcher]], and the multiple [[TIFF]] output it produces is cumbersome to use. There are two possibilities to work around this:<br />
<br />
*Use the [[nona]] stitcher, to output to a multilayer TIFF format.<br />
This will will produce a multi_layer.tif file, that contains all remapped images, cropped to their bounding box. This will save a lot of space, compared to a "traditional" PTStitcher layered output file, where all layers have the full panorama size.<br />
<br />
Unfortunately, The Gimp 1.2 and 1.3 can't load multilayer TIFF files. Please use Gimp 2.0 or later.<br />
<br />
*If you need [[PTStitcher]] features not supported by nona, you can also use [[tif2xcf]], to combine the multiple TIFF output into a multilayer XCF.<br />
Unfortunately this requires a lot of memory because it stores each remapped image in a layer with the size of the final panorama.<br />
<br />
== Installation ==<br />
<br />
=== Where can I download hugin installers ===<br />
<br />
Information on installers for both stable and testing builds of hugin can be found on the [http://panospace.wordpress.com/downloads/ panospace download page].<br />
<br />
=== How can I compile Hugin.app on my OSX machine? ===<br />
<br />
See [[Hugin Compiling OSX]], [[Autopano-sift-C Compiling OSX]] and [[Enblend Compiling OSX]].<br />
<br />
=== How do I compile hugin on my linux machine? ===<br />
<br />
See [[Hugin Compiling Fedora]], [[Hugin Compiling Gentoo]], [[Hugin Compiling OpenSuse]] and [[Hugin Compiling Ubuntu]]<br />
<br />
=== How do I compile hugin on my Windows machine? ===<br />
<br />
See [[Hugin Compiling Windows]]<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_FAQ&diff=11566Hugin FAQ2009-06-26T14:57:28Z<p>Aston: /* enblend: no input files specified. */</p>
<hr />
<div>== Common error messages ==<br />
<br />
=== enblend: no input files specified. ===<br />
<br />
There are no input images relevant to the output 'panorama' so hugin had nothing to do, probably because all the input images are outside the panorama 'frame'. Open the [[Hugin Preview window]] or [[Hugin Fast Preview window]] to adjust the view and/or crop.<br />
<br />
== Control Point creation ==<br />
<br />
=== How do I add control points ===<br />
The [[control points]] editor is quite powerful, but its usage is probably not obvious on the first try. Here are some ways the developers use the Control Point panel:<br />
<br />
1. Selecting control points in 100% zoom.<br />
<br />
This method needs some scrolling, if big images are used. You might want to try the fit to window zoom setting in that case. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: 100%<br />
[X] auto fine tune<br />
[X] auto add<br />
[X] auto estimate<br />
<br />
Click on a prominent feature in the left image. If the image pair already contains control points, [[hugin]] will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The second point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by dragging them to a better position. Press the "f" key to fine tune the point in a small area.<br />
<br />
<br />
2. Selecting control points in fit to window mode.<br />
<br />
I uses this mode if I need to set points on big images. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: fit to window<br />
[X] auto fine tune<br />
[ ] auto add<br />
[X] auto estimate<br />
<br />
Click on left image. The image will be shown in 100% view. Within the detailed view, click on a prominent feature. If the image pair already contains control points, hugin will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by clicking at the desired position. Move the point close to the desired feature and press the "f" key to fine tune the point. When the points are on the same feature, press the right mouse button, or press the "a" key to add the control point pair. It will then be shown in the list below the image.<br />
<br />
=== How do I scroll both images at the same time? ===<br />
<br />
Try pressing the shift key while moving the mouse. The control key or the middle mouse button can be used to scroll only the image under the mouse cursor.<br />
<br />
=== How do I stop Hugin pausing for a moment after every click? ===<br />
<br />
The ''preview window'' updates continuously whenever anything changes, so disable the preview auto-update, close it or make it smaller if you don't need it.<br />
<br />
Otherwise, picking [[control points]] with ''auto fine tune'' selected can involve a lot<br />
of processing. You can reduce this by ''selecting File -> Preferences -> Finetune'' and<br />
lowering the values for ''Patch width'', ''Search area width'' and ''Local search area width''.<br />
This means you can't be so sloppy when clicking to create control points, but the results will<br />
be the same.<br />
<br />
== Common problems when creating a panorama ==<br />
<br />
=== How can I reuse a project as a template? ===<br />
<br />
If you copy a .pto project to a different folder and open it with hugin, you will be prompted for the 'missing' images. You should delete any control points from this template project since they won't be relevant to the new photos.<br />
<br />
Alternatively you can load your images as normal, then ''Apply template''<br />
from the ''File'' menu, this will import image settings and parameters<br />
from a previous project.<br />
<br />
=== How do I straighten a curved horizon? ===<br />
If the panorama looks nice but the horizon is curved, there are two ways to improve the image and straighten the horizon. First, try optimizing the view by selecting "Positions and View" as the optimization mode and run the optimizer afterwards. By clicking "Calculate Field of View" in the "Stitcher" tab and displaying the preview window afterwards you can check if the image has been improved.<br />
<br />
If it is still curved, you have to add vertical guide control points in the "Control Points" tab. Usually two [[vertical control points]] are enough to straighten the horizon nicely. Often edges of buildings, poles or other man made structures provide good vertical lines. To add a vertical control point, switch to the control point editor and select the same image on both sides. Place a control point on the left image on the upper area of the vertical feature. In the right image, select a control point on the lower area of the features, and press the Add button. Once the new point has been added, its type should automatically switch to "vertical line". You might want to switch off the auto-add and auto-estimate options while doing this to avoid naggy dialogs while adding these guide points.<br />
<br />
Two points that are roughly 90 degrees apart provide the best effect.<br />
<br />
See also the related perspective correction tutorials: [http://hugin.sourceforge.net/tutorials/architectural/en.shtml hugin tutorial on perspective correction], [[Perspective correction]], [[Leveling a Finished Panorama]]. While these are concerned with correction of the perspective in one image, the same technique can be used for<br />
leveling a panorama.<br />
<br />
=== Half the panorama is black, my pictures fill only the right half of the output ===<br />
<br />
Hugin uses the first photo as the ''anchor'' image and puts it in the middle by default. This means that if you shot a sequence from left to right, the images will fill the right hand side of the panorama. There are two ways to fix this:<br />
<br />
* Open the '''preview''' window and click the '''center''' button.<br />
* or select the middle photo, hit '''anchor this image for position''' and '''reset''' in the '''images''' tab, then reoptimise.<br />
<br />
=== I get visible bands in the sky and other flat areas, what can I do? ===<br />
<br />
Make sure you are using [[enblend]] to do the final image assembly, this will blend the overlap as much as is possible - Enable enblend by stitching the images '''into a high quality TIFF file''' in the '''stitcher''' tab.<br />
<br />
If you still have problems, then you probably have to correct [[vignetting]] in your images. In the vignetting area of '''camera and lens''' tab, select '''edit parameters...'''. Then select '''division''', '''polynomial''' and '''estimate polynomial''' to calculate a vignetting correction curve for your camera combination - This will be applied to every photo in your project when you click '''OK'''.<br />
<br />
=== My photos never quite line up, what can I do? ===<br />
<br />
It is normal to get little stitching [[parallax]] errors if<br />
the camera moves between photos. The solution is to rotate the camera around<br />
the [[no-parallax point]] using a [[Heads|panoramic head]] or [[philopod]].<br />
<br />
Otherwise you can sometimes improve things by optimising the ''d & e'' parameters<br />
separately - When you optimise '''everything''', unselect '''Inherit''' in<br />
the '''camera and Lens''' panel for 'd & e'.<br />
<br />
If these parallax errors are still large, you need to decide which<br />
parts of the scene that you want to line-up and which parts don't<br />
matter. Select [[control points]] only on objects that you do want to<br />
line-up and which are all about the same distance from the camera.<br />
<br />
The remaining broken lines can then be retouched in a photo editor like the [[gimp]].<br />
The ''shear'' tool is ideal for bending the lines and<br />
[[Mending parallax errors with the shear tool|getting them to line up]].<br />
<br />
== Postprocessing ==<br />
<br />
=== Why is the ICC profile of my input images not preserved? ===<br />
<br />
Since hugin 0.5 and enblend 2.4 [[colour profile|ICC profiles]] in the input files are transfered to the output panorama. Please update to a current version.<br />
<br />
=== How can I postprocess the image using multiple layers in The Gimp? ===<br />
<br />
Unfortunately, The [[Gimp]] can't read [[PSD]] formatted files generated by [[PTStitcher]], and the multiple [[TIFF]] output it produces is cumbersome to use. There are two possibilities to work around this:<br />
<br />
*Use the [[nona]] stitcher, to output to a multilayer TIFF format.<br />
This will will produce a multi_layer.tif file, that contains all remapped images, cropped to their bounding box. This will save a lot of space, compared to a "traditional" PTStitcher layered output file, where all layers have the full panorama size.<br />
<br />
Unfortunately, The Gimp 1.2 and 1.3 can't load multilayer TIFF files. Please use Gimp 2.0 or later.<br />
<br />
*If you need [[PTStitcher]] features not supported by nona, you can also use [[tif2xcf]], to combine the multiple TIFF output into a multilayer XCF.<br />
Unfortunately this requires a lot of memory because it stores each remapped image in a layer with the size of the final panorama.<br />
<br />
== Installation ==<br />
<br />
=== Where can I download hugin installers ===<br />
<br />
Information on installers for both stable and testing builds of hugin can be found on the [http://panospace.wordpress.com/downloads/ panospace download page].<br />
<br />
=== How can I compile Hugin.app on my OSX machine? ===<br />
<br />
See [[Hugin Compiling OSX]], [[Autopano-sift-C Compiling OSX]] and [[Enblend Compiling OSX]].<br />
<br />
=== How do I compile hugin on my linux machine? ===<br />
<br />
See [[Hugin Compiling Fedora]], [[Hugin Compiling Gentoo]], [[Hugin Compiling OpenSuse]] and [[Hugin Compiling Ubuntu]]<br />
<br />
=== How do I compile hugin on my Windows machine? ===<br />
<br />
See [[Hugin Compiling Windows]]<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_FAQ&diff=11565Hugin FAQ2009-06-26T14:54:05Z<p>Aston: Move and shorten installation section</p>
<hr />
<div>== Common error messages ==<br />
<br />
=== enblend: no input files specified. ===<br />
<br />
There are no input images relevant to the output 'panorama' so hugin had nothing to do, probably because all the input images are outside the panorama 'frame'. Open the [[Hugin Preview window]] or [[Hugin fast preview window]] to adjust the view and/or crop.<br />
<br />
== Control Point creation ==<br />
<br />
=== How do I add control points ===<br />
The [[control points]] editor is quite powerful, but its usage is probably not obvious on the first try. Here are some ways the developers use the Control Point panel:<br />
<br />
1. Selecting control points in 100% zoom.<br />
<br />
This method needs some scrolling, if big images are used. You might want to try the fit to window zoom setting in that case. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: 100%<br />
[X] auto fine tune<br />
[X] auto add<br />
[X] auto estimate<br />
<br />
Click on a prominent feature in the left image. If the image pair already contains control points, [[hugin]] will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The second point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by dragging them to a better position. Press the "f" key to fine tune the point in a small area.<br />
<br />
<br />
2. Selecting control points in fit to window mode.<br />
<br />
I uses this mode if I need to set points on big images. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: fit to window<br />
[X] auto fine tune<br />
[ ] auto add<br />
[X] auto estimate<br />
<br />
Click on left image. The image will be shown in 100% view. Within the detailed view, click on a prominent feature. If the image pair already contains control points, hugin will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by clicking at the desired position. Move the point close to the desired feature and press the "f" key to fine tune the point. When the points are on the same feature, press the right mouse button, or press the "a" key to add the control point pair. It will then be shown in the list below the image.<br />
<br />
=== How do I scroll both images at the same time? ===<br />
<br />
Try pressing the shift key while moving the mouse. The control key or the middle mouse button can be used to scroll only the image under the mouse cursor.<br />
<br />
=== How do I stop Hugin pausing for a moment after every click? ===<br />
<br />
The ''preview window'' updates continuously whenever anything changes, so disable the preview auto-update, close it or make it smaller if you don't need it.<br />
<br />
Otherwise, picking [[control points]] with ''auto fine tune'' selected can involve a lot<br />
of processing. You can reduce this by ''selecting File -> Preferences -> Finetune'' and<br />
lowering the values for ''Patch width'', ''Search area width'' and ''Local search area width''.<br />
This means you can't be so sloppy when clicking to create control points, but the results will<br />
be the same.<br />
<br />
== Common problems when creating a panorama ==<br />
<br />
=== How can I reuse a project as a template? ===<br />
<br />
If you copy a .pto project to a different folder and open it with hugin, you will be prompted for the 'missing' images. You should delete any control points from this template project since they won't be relevant to the new photos.<br />
<br />
Alternatively you can load your images as normal, then ''Apply template''<br />
from the ''File'' menu, this will import image settings and parameters<br />
from a previous project.<br />
<br />
=== How do I straighten a curved horizon? ===<br />
If the panorama looks nice but the horizon is curved, there are two ways to improve the image and straighten the horizon. First, try optimizing the view by selecting "Positions and View" as the optimization mode and run the optimizer afterwards. By clicking "Calculate Field of View" in the "Stitcher" tab and displaying the preview window afterwards you can check if the image has been improved.<br />
<br />
If it is still curved, you have to add vertical guide control points in the "Control Points" tab. Usually two [[vertical control points]] are enough to straighten the horizon nicely. Often edges of buildings, poles or other man made structures provide good vertical lines. To add a vertical control point, switch to the control point editor and select the same image on both sides. Place a control point on the left image on the upper area of the vertical feature. In the right image, select a control point on the lower area of the features, and press the Add button. Once the new point has been added, its type should automatically switch to "vertical line". You might want to switch off the auto-add and auto-estimate options while doing this to avoid naggy dialogs while adding these guide points.<br />
<br />
Two points that are roughly 90 degrees apart provide the best effect.<br />
<br />
See also the related perspective correction tutorials: [http://hugin.sourceforge.net/tutorials/architectural/en.shtml hugin tutorial on perspective correction], [[Perspective correction]], [[Leveling a Finished Panorama]]. While these are concerned with correction of the perspective in one image, the same technique can be used for<br />
leveling a panorama.<br />
<br />
=== Half the panorama is black, my pictures fill only the right half of the output ===<br />
<br />
Hugin uses the first photo as the ''anchor'' image and puts it in the middle by default. This means that if you shot a sequence from left to right, the images will fill the right hand side of the panorama. There are two ways to fix this:<br />
<br />
* Open the '''preview''' window and click the '''center''' button.<br />
* or select the middle photo, hit '''anchor this image for position''' and '''reset''' in the '''images''' tab, then reoptimise.<br />
<br />
=== I get visible bands in the sky and other flat areas, what can I do? ===<br />
<br />
Make sure you are using [[enblend]] to do the final image assembly, this will blend the overlap as much as is possible - Enable enblend by stitching the images '''into a high quality TIFF file''' in the '''stitcher''' tab.<br />
<br />
If you still have problems, then you probably have to correct [[vignetting]] in your images. In the vignetting area of '''camera and lens''' tab, select '''edit parameters...'''. Then select '''division''', '''polynomial''' and '''estimate polynomial''' to calculate a vignetting correction curve for your camera combination - This will be applied to every photo in your project when you click '''OK'''.<br />
<br />
=== My photos never quite line up, what can I do? ===<br />
<br />
It is normal to get little stitching [[parallax]] errors if<br />
the camera moves between photos. The solution is to rotate the camera around<br />
the [[no-parallax point]] using a [[Heads|panoramic head]] or [[philopod]].<br />
<br />
Otherwise you can sometimes improve things by optimising the ''d & e'' parameters<br />
separately - When you optimise '''everything''', unselect '''Inherit''' in<br />
the '''camera and Lens''' panel for 'd & e'.<br />
<br />
If these parallax errors are still large, you need to decide which<br />
parts of the scene that you want to line-up and which parts don't<br />
matter. Select [[control points]] only on objects that you do want to<br />
line-up and which are all about the same distance from the camera.<br />
<br />
The remaining broken lines can then be retouched in a photo editor like the [[gimp]].<br />
The ''shear'' tool is ideal for bending the lines and<br />
[[Mending parallax errors with the shear tool|getting them to line up]].<br />
<br />
== Postprocessing ==<br />
<br />
=== Why is the ICC profile of my input images not preserved? ===<br />
<br />
Since hugin 0.5 and enblend 2.4 [[colour profile|ICC profiles]] in the input files are transfered to the output panorama. Please update to a current version.<br />
<br />
=== How can I postprocess the image using multiple layers in The Gimp? ===<br />
<br />
Unfortunately, The [[Gimp]] can't read [[PSD]] formatted files generated by [[PTStitcher]], and the multiple [[TIFF]] output it produces is cumbersome to use. There are two possibilities to work around this:<br />
<br />
*Use the [[nona]] stitcher, to output to a multilayer TIFF format.<br />
This will will produce a multi_layer.tif file, that contains all remapped images, cropped to their bounding box. This will save a lot of space, compared to a "traditional" PTStitcher layered output file, where all layers have the full panorama size.<br />
<br />
Unfortunately, The Gimp 1.2 and 1.3 can't load multilayer TIFF files. Please use Gimp 2.0 or later.<br />
<br />
*If you need [[PTStitcher]] features not supported by nona, you can also use [[tif2xcf]], to combine the multiple TIFF output into a multilayer XCF.<br />
Unfortunately this requires a lot of memory because it stores each remapped image in a layer with the size of the final panorama.<br />
<br />
== Installation ==<br />
<br />
=== Where can I download hugin installers ===<br />
<br />
Information on installers for both stable and testing builds of hugin can be found on the [http://panospace.wordpress.com/downloads/ panospace download page].<br />
<br />
=== How can I compile Hugin.app on my OSX machine? ===<br />
<br />
See [[Hugin Compiling OSX]], [[Autopano-sift-C Compiling OSX]] and [[Enblend Compiling OSX]].<br />
<br />
=== How do I compile hugin on my linux machine? ===<br />
<br />
See [[Hugin Compiling Fedora]], [[Hugin Compiling Gentoo]], [[Hugin Compiling OpenSuse]] and [[Hugin Compiling Ubuntu]]<br />
<br />
=== How do I compile hugin on my Windows machine? ===<br />
<br />
See [[Hugin Compiling Windows]]<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_FAQ&diff=11564Hugin FAQ2009-06-26T14:44:56Z<p>Aston: start section on common error messages</p>
<hr />
<div>== Common error messages ==<br />
<br />
=== enblend: no input files specified. ===<br />
<br />
There are no input images relevant to the output 'panorama' so hugin had nothing to do, probably because all the input images are outside the panorama 'frame'. Open the [[Hugin Preview window]] or [[Hugin fast preview window]] to adjust the view and/or crop.<br />
<br />
== Installation ==<br />
<br />
=== How can I compile Hugin.app on my OSX machine? ===<br />
<br />
See [[Hugin_Compiling_OSX|Compiling Hugin on OSX]]<br />
<br />
=== How do I compile hugin on my linux machine? ===<br />
<br />
A great tutorial for Ubuntu users is located here [http://wiki.panotools.org/Hugin_Compiling_ubuntu Compiling Hugin in Ubuntu]. There is also a tutorial located here as well [http://theseblog.free.fr/2007/10/building-hugin-in-ubuntu-feisty-fawn.php work-in-progress explaining how to compile hugin and libpano13] (comments welcome). For ubuntu/debian users, Rob Park had written a good [http://exolucere.ca/articles/compile-hugin-ubuntu Compile Hugin on Ubuntu] document, but it no longer seems to be available.<br />
<br />
=== How do I compile hugin on my Windows machine? ===<br />
<br />
See [[Hugin_Compiling_Windows|Compiling Hugin on Windows]]<br />
<br />
=== make install fails when executing the update-desktop script ===<br />
<br />
If make install fails with the following error message<br />
<br />
*** calling /usr/bin/update-desktop-database<br />
*No directories in update-desktop-database search path could be processed and updated.* <br />
<br />
rerun the ./configure script with --disable-desktop<br />
<br />
=== Compilation of PTWXDlg.cpp failes ===<br />
<br />
If you see this or a similar compilation error<br />
<br />
PTWXDlg.cpp: In function 'void registerPTWXDlgFcn()':<br />
PTWXDlg.cpp:176: error: invalid conversion from 'void (*)(char*,<br />
char*)' to 'void (*)(char*, ...)'<br />
PTWXDlg.cpp:176: error: initializing argument 1 of 'void<br />
PT_setErrorFcn(void (*)(char*, ...))'<br />
make[3]: *** [PTWXDlg.lo] Error 1<br />
<br />
please update to libpano 2.8.4 or later and recompile. Unfortunately the ./configure script of<br />
hugin 0.6.1 only checks for libpano 2.8.1.<br />
<br />
=== hugin crashes during optimisation ===<br />
<br />
If you have installed hugin 0.6 or later using an rpm package, make sure that you have panotools 2.8.3 or later installed. Hugin 0.6 and later will crash if used with an earlier version of panotools.<br />
<br />
=== Autopano-SIFT can not be used from inside hugin (LINUX) ===<br />
<br />
Under some Linux systems (for example Fedora Core), mono programs (Autopano-SIFT is written in C#) are not directly executable. When trying to automatically create control points hugin cannot start autopanog.exe.<br />
Open the Preferences, and use<br />
<br />
mono `which autopanog.exe`<br />
<br />
as the autopano-SIFT program.<br />
<br />
== Control Point creation ==<br />
<br />
=== How do I add control points ===<br />
The [[control points]] editor is quite powerful, but its usage is probably not obvious on the first try. Here are some ways the developers use the Control Point panel:<br />
<br />
1. Selecting control points in 100% zoom.<br />
<br />
This method needs some scrolling, if big images are used. You might want to try the fit to window zoom setting in that case. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: 100%<br />
[X] auto fine tune<br />
[X] auto add<br />
[X] auto estimate<br />
<br />
Click on a prominent feature in the left image. If the image pair already contains control points, [[hugin]] will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The second point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by dragging them to a better position. Press the "f" key to fine tune the point in a small area.<br />
<br />
<br />
2. Selecting control points in fit to window mode.<br />
<br />
I uses this mode if I need to set points on big images. Switch to the Control Points tab, and use the following settings:<br />
<br />
Zoom: fit to window<br />
[X] auto fine tune<br />
[ ] auto add<br />
[X] auto estimate<br />
<br />
Click on left image. The image will be shown in 100% view. Within the detailed view, click on a prominent feature. If the image pair already contains control points, hugin will try to select the point in the other image. If its the first point in this pair, click near the same feature on the right image. The point will be placed and fine tuned automatically. If you are not happy with the placement, both points can be moved by clicking at the desired position. Move the point close to the desired feature and press the "f" key to fine tune the point. When the points are on the same feature, press the right mouse button, or press the "a" key to add the control point pair. It will then be shown in the list below the image.<br />
<br />
=== How do I scroll both images at the same time? ===<br />
<br />
Try pressing the shift key while moving the mouse. The control key or the middle mouse button can be used to scroll only the image under the mouse cursor.<br />
<br />
=== How do I stop Hugin pausing for a moment after every click? ===<br />
<br />
The ''preview window'' updates continuously whenever anything changes, so disable the preview auto-update, close it or make it smaller if you don't need it.<br />
<br />
Otherwise, picking [[control points]] with ''auto fine tune'' selected can involve a lot<br />
of processing. You can reduce this by ''selecting File -> Preferences -> Finetune'' and<br />
lowering the values for ''Patch width'', ''Search area width'' and ''Local search area width''.<br />
This means you can't be so sloppy when clicking to create control points, but the results will<br />
be the same.<br />
<br />
== Common problems when creating a panorama ==<br />
<br />
=== How can I reuse a project as a template? ===<br />
<br />
If you copy a .pto project to a different folder and open it with hugin, you will be prompted for the 'missing' images. You should delete any control points from this template project since they won't be relevant to the new photos.<br />
<br />
Alternatively you can load your images as normal, then ''Apply template''<br />
from the ''File'' menu, this will import image settings and parameters<br />
from a previous project.<br />
<br />
=== How do I straighten a curved horizon? ===<br />
If the panorama looks nice but the horizon is curved, there are two ways to improve the image and straighten the horizon. First, try optimizing the view by selecting "Positions and View" as the optimization mode and run the optimizer afterwards. By clicking "Calculate Field of View" in the "Stitcher" tab and displaying the preview window afterwards you can check if the image has been improved.<br />
<br />
If it is still curved, you have to add vertical guide control points in the "Control Points" tab. Usually two [[vertical control points]] are enough to straighten the horizon nicely. Often edges of buildings, poles or other man made structures provide good vertical lines. To add a vertical control point, switch to the control point editor and select the same image on both sides. Place a control point on the left image on the upper area of the vertical feature. In the right image, select a control point on the lower area of the features, and press the Add button. Once the new point has been added, its type should automatically switch to "vertical line". You might want to switch off the auto-add and auto-estimate options while doing this to avoid naggy dialogs while adding these guide points.<br />
<br />
Two points that are roughly 90 degrees apart provide the best effect.<br />
<br />
See also the related perspective correction tutorials: [http://hugin.sourceforge.net/tutorials/architectural/en.shtml hugin tutorial on perspective correction], [[Perspective correction]], [[Leveling a Finished Panorama]]. While these are concerned with correction of the perspective in one image, the same technique can be used for<br />
leveling a panorama.<br />
<br />
=== Half the panorama is black, my pictures fill only the right half of the output ===<br />
<br />
Hugin uses the first photo as the ''anchor'' image and puts it in the middle by default. This means that if you shot a sequence from left to right, the images will fill the right hand side of the panorama. There are two ways to fix this:<br />
<br />
* Open the '''preview''' window and click the '''center''' button.<br />
* or select the middle photo, hit '''anchor this image for position''' and '''reset''' in the '''images''' tab, then reoptimise.<br />
<br />
=== I get visible bands in the sky and other flat areas, what can I do? ===<br />
<br />
Make sure you are using [[enblend]] to do the final image assembly, this will blend the overlap as much as is possible - Enable enblend by stitching the images '''into a high quality TIFF file''' in the '''stitcher''' tab.<br />
<br />
If you still have problems, then you probably have to correct [[vignetting]] in your images. In the vignetting area of '''camera and lens''' tab, select '''edit parameters...'''. Then select '''division''', '''polynomial''' and '''estimate polynomial''' to calculate a vignetting correction curve for your camera combination - This will be applied to every photo in your project when you click '''OK'''.<br />
<br />
=== My photos never quite line up, what can I do? ===<br />
<br />
It is normal to get little stitching [[parallax]] errors if<br />
the camera moves between photos. The solution is to rotate the camera around<br />
the [[no-parallax point]] using a [[Heads|panoramic head]] or [[philopod]].<br />
<br />
Otherwise you can sometimes improve things by optimising the ''d & e'' parameters<br />
separately - When you optimise '''everything''', unselect '''Inherit''' in<br />
the '''camera and Lens''' panel for 'd & e'.<br />
<br />
If these parallax errors are still large, you need to decide which<br />
parts of the scene that you want to line-up and which parts don't<br />
matter. Select [[control points]] only on objects that you do want to<br />
line-up and which are all about the same distance from the camera.<br />
<br />
The remaining broken lines can then be retouched in a photo editor like the [[gimp]].<br />
The ''shear'' tool is ideal for bending the lines and<br />
[[Mending parallax errors with the shear tool|getting them to line up]].<br />
<br />
== Postprocessing ==<br />
<br />
=== Why is the ICC profile of my input images not preserved? ===<br />
<br />
Since hugin 0.5 and enblend 2.4 [[colour profile|ICC profiles]] in the input files are transfered to the output panorama. Please update to a current version.<br />
<br />
=== How can I postprocess the image using multiple layers in The Gimp? ===<br />
<br />
Unfortunately, The [[Gimp]] can't read [[PSD]] formatted files generated by [[PTStitcher]], and the multiple [[TIFF]] output it produces is cumbersome to use. There are two possibilities to work around this:<br />
<br />
*Use the [[nona]] stitcher, to output to a multilayer TIFF format.<br />
This will will produce a multi_layer.tif file, that contains all remapped images, cropped to their bounding box. This will save a lot of space, compared to a "traditional" PTStitcher layered output file, where all layers have the full panorama size.<br />
<br />
Unfortunately, The Gimp 1.2 and 1.3 can't load multilayer TIFF files. Please use Gimp 2.0 or later.<br />
<br />
*If you need [[PTStitcher]] features not supported by nona, you can also use [[tif2xcf]], to combine the multiple TIFF output into a multilayer XCF.<br />
Unfortunately this requires a lot of memory because it stores each remapped image in a layer with the size of the final panorama.<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Trackers&diff=11563Hugin Trackers2009-06-25T13:53:09Z<p>Aston: categorise</p>
<hr />
<div>== General ==<br />
<br />
The [http://sourceforge.net/tracker/?group_id=77506&atid=550441 Bug Tracker] (BT), the [http://sourceforge.net/tracker/?group_id=77506&atid=550444 Features Request Tracker] (FT), and the [http://sourceforge.net/tracker/?group_id=77506&atid=550443 Patch Tracker] (PT) are the official tools to communicate bugs, feature requests, and proposed changes to the developers. While bug reports, feature requests, and patches are always welcome over any channel, these are the only tools that make sure they will not be forgotten / hidden in the past archives. All users are encourage to make use of these tools. In the following text I explain the basic usage and set some policies with regard to Hugin.<br />
<br />
Moreover, discussion of tracker tickets is welcome on the [http://groups.google.com/group/hugin-ptx/ Mailing List] (ML). This includes (non-exhaustive list):<br />
* requests to test bugs and patches<br />
* requests for opinions on ways to fix bugs and implement new features<br />
* enlarging the base of interested user / tester to encompass a variety of platforms<br />
* insuring follow up on anonymous tickets <br />
<br />
<br />
== Structure of a Ticket ==<br />
<br />
Whether it is to report a bug or to work on it, familiarizing with the structure of a ticket in the tracker is the first step. Look at existing tickets for examples. <br />
<br />
* On top is the summary, the ID, and the last update information. With "Tech & Admin" permission the summary is editable.<br />
* Under the details header is the initial comment, followed by some information about the status of the ticket. The status information is editable with "Tech & Admin" permission.<br />
* Most important, at least initially, is who submitted the ticket. A ticket can be submitted anonymously but it is strongly recommended that users [http://sourceforge.net/account/registration/ register] with SourceForge (it's free and SF has a consistent track record of respectful committment to user's privacy) and [https://sourceforge.net/account/login.php log in] before creating a ticket or commenting on one. If you have [http://openid.net/ OpenID] there is no need to remember another password.<br />
* Next is the comments thread. It may be condensed - click on the + icon on the right to expand it. When working on a ticket it is important to be aware that the "Details" section may not be everything there is to read. The follow ups often contain relevant / critical information. All users can add to the discussion.<br />
* The attached files section lists all files that have been uploaded. This is usually meant for logs and patches. Project files (.pto) and screenshots still fit the weight limits. For full test cases with images this is not practicable - better store them somewhere on the web and publish a link in a comment. If you need such web space, ask on the ML.<br />
* Users with "Tech & Admin" permission can associate a ticket to another one, marking it as a duplicate.<br />
* Last but not least, all changes are listed.<br />
<br />
<br />
== Initial Bug Report ==<br />
<br />
All users are encouraged to report bugs. Please help us improve the quality of the bug reports and the information available to the developers by following these guidelines:<br />
<br />
=== Your System ===<br />
<br />
We need to know as much as possible about your system. Which version? What processor? How much memory? How much disk space is available, particularly temporary space? Are all updates recommended by the system's distributor applied? Have you customized the system? added/replaced libraries?<br />
<br />
If you have access to a second system, please validate the bug before reporting it.<br />
<br />
<br />
=== The Sofware ===<br />
<br />
We also need to know as much as possible about the software used. Which version of Hugin? Where did you install it from? Did you compile Hugin yourself? An easy way to identify your version of Hugin is to look up the About Hugin dialog (Menu Help -> About Hugin) and report the whole version string.<br />
<br />
Hugin depends on third party libraries and tools such as libpano and enblend/enfuse. Unless you have downloaded a Windows installer or a Mac bundle (that are self-contained), we'd need to know the same information for the dependencies. Where and when did you install them from?<br />
<br />
<br />
=== The Application ===<br />
<br />
Often times the nature of your project, particularly the images, will help understand the bug. How many images? What format? Do they have EXIF data? What camera make/model? Is it HDR? Often time, providing the .pto file (can be attached in the BT) is a valuable input to the analysis process. If you have access to web-space, providing the full test case including images (in JPG format and/or resized to reduce storage/bandwidth need) can also help.<br />
<br />
<br />
=== The Bug ===<br />
<br />
What are the steps that need to be undertaken to reproduce the bug? Does it happen consistently all the times, or only sporadically? what is the expected application behavior and how does it differ from the observed application behavior? <br />
<br />
<br />
== Bug Triage ==<br />
<br />
To triage bugs a user need a SourceForge login and "Tech & Admin" permission to the BT. Permission will be liberally given to users who have shown continued, relevant contributions to the debugging process.<br />
<br />
* Log on to the [https://sourceforge.net/tracker/?limit=20&sort=open_date&sortdir=desc&offset=0&group_id=77506&atid=550441&status=1<br />
BT] (the link is already filtered for opened ticket sorted from the most recent one on top).<br />
* Start with the oldest bug that has not been triaged yet. Ideally the new reports are identified by Priority 5, although at the time of writing many old reports still have Priority 5. It is also possible to be alerted to new reports by [https://lists.sourceforge.net/lists/listinfo/hugin-tracker subscribing] the tracker mailing list.<br />
* Read the ticket and make sure you fully understand it. When in doubt, leave it for more experienced users to triage or ask on the ML.<br />
* If you determine that the ticket is a duplicate, mark it as such and close it.<br />
* There are frequently appearing error messages such as "precondition violation", "false --compression", "Mask is entirely black but white image was not identified as redundant", etc... that need entries in the [[hugin FAQ]] - Duplicates should be closed with a link to the FAQ.<br />
* Assign Category, Group, Priority according to the policies in the next sections. <br />
* Add clarifying questions to the bug ticket if applicable. In doing so, compare the currently available information against the requested information listed above in "Reporting a Bug" and the specifics of the report.<br />
* If the ticket was entered anonymously, determine the likelyhood that the developers may need additional feedback. Ask for that feedback on the ML. Eventually set the report to pending status so that if nobody acts on the request it will be closed in two weeks for lack of information.<br />
* When in doubt, ask on the ML.<br />
<br />
== Bug Validation ==<br />
<br />
Every user can validate a bug against their system / software and add a comment to validate the bug. We encourage all users to do so. The more validation information we have, the better. We need to narrow down whether a bug applies to a specific operating system or across the board. And it is also very useful to know if a bug applies to a specific context or if it applies also in different contexts.<br />
<br />
* To validate a specific bug, simply try to reproduce it by following the instructions described in the ticket.<br />
* Add a comment to the ticket reporting your observation.<br />
* Were you able to reproduce the bug?<br />
* It is important to add context to your validation: what operating system? what version of Hugin?<br />
<br />
<br />
== Bug Fixing and Testing ==<br />
<br />
Everybody is encouraged to provide fixes and patches to correct bugs. Only developers can add them to the repository. Write access to the repository will be liverally given to users who need it.<br />
* when a developer fixed a bug, he can ask the ML for testing.<br />
* a fix tested on the developers system only can be set to Pending status.<br />
* when at least one user validates a fix on a different system and there are no reports that the fix does not work, the bug report can be closed.<br />
<br />
<br />
== Triaging Policy ==<br />
<br />
* The more complete a bug report, the more attention it is likely to get.<br />
* Anonymous bug reports are set on Pending status by default, unless the report is complete enough not to need further feedback and/or there is interest from contributors to work on the report.<br />
* When triaging a bug, set it's priority to something different than 5 so that priority 5 reports are known to be untriaged.<br />
<br />
<br />
=== Categories ===<br />
<br />
We use categories to indicate if the bug is platform specific, although some tickets still carry "legacy categories" that are unrelated to the platforms. <br />
<br />
<br />
=== Groups ===<br />
<br />
We use groups to indicate which tool is affected by the bug.<br />
<br />
<br />
=== Priorities ===<br />
<br />
We use priorities to sort out the the tickets.<br />
<br />
* 9: show stopper for the current release<br />
* more than 5: bug affects a large number of use cases.<br />
* 5: new bug that needs to be triaged<br />
* less than 5: bug affects a small number of use cases - rare / specific situation<br />
<br />
<br />
=== Bug Assignement ===<br />
<br />
The tracker enables the assignement of a bug to a person. It is considered rude to assign a bug to somebody else without their prior consent. Developers sometimes assign a bug to themselves to signal they are working on it, but we do not use this feature too often.<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Trackers&diff=11562Hugin Trackers2009-06-25T13:52:16Z<p>Aston: /* Bug Triage */</p>
<hr />
<div>== General ==<br />
<br />
The [http://sourceforge.net/tracker/?group_id=77506&atid=550441 Bug Tracker] (BT), the [http://sourceforge.net/tracker/?group_id=77506&atid=550444 Features Request Tracker] (FT), and the [http://sourceforge.net/tracker/?group_id=77506&atid=550443 Patch Tracker] (PT) are the official tools to communicate bugs, feature requests, and proposed changes to the developers. While bug reports, feature requests, and patches are always welcome over any channel, these are the only tools that make sure they will not be forgotten / hidden in the past archives. All users are encourage to make use of these tools. In the following text I explain the basic usage and set some policies with regard to Hugin.<br />
<br />
Moreover, discussion of tracker tickets is welcome on the [http://groups.google.com/group/hugin-ptx/ Mailing List] (ML). This includes (non-exhaustive list):<br />
* requests to test bugs and patches<br />
* requests for opinions on ways to fix bugs and implement new features<br />
* enlarging the base of interested user / tester to encompass a variety of platforms<br />
* insuring follow up on anonymous tickets <br />
<br />
<br />
== Structure of a Ticket ==<br />
<br />
Whether it is to report a bug or to work on it, familiarizing with the structure of a ticket in the tracker is the first step. Look at existing tickets for examples. <br />
<br />
* On top is the summary, the ID, and the last update information. With "Tech & Admin" permission the summary is editable.<br />
* Under the details header is the initial comment, followed by some information about the status of the ticket. The status information is editable with "Tech & Admin" permission.<br />
* Most important, at least initially, is who submitted the ticket. A ticket can be submitted anonymously but it is strongly recommended that users [http://sourceforge.net/account/registration/ register] with SourceForge (it's free and SF has a consistent track record of respectful committment to user's privacy) and [https://sourceforge.net/account/login.php log in] before creating a ticket or commenting on one. If you have [http://openid.net/ OpenID] there is no need to remember another password.<br />
* Next is the comments thread. It may be condensed - click on the + icon on the right to expand it. When working on a ticket it is important to be aware that the "Details" section may not be everything there is to read. The follow ups often contain relevant / critical information. All users can add to the discussion.<br />
* The attached files section lists all files that have been uploaded. This is usually meant for logs and patches. Project files (.pto) and screenshots still fit the weight limits. For full test cases with images this is not practicable - better store them somewhere on the web and publish a link in a comment. If you need such web space, ask on the ML.<br />
* Users with "Tech & Admin" permission can associate a ticket to another one, marking it as a duplicate.<br />
* Last but not least, all changes are listed.<br />
<br />
<br />
== Initial Bug Report ==<br />
<br />
All users are encouraged to report bugs. Please help us improve the quality of the bug reports and the information available to the developers by following these guidelines:<br />
<br />
=== Your System ===<br />
<br />
We need to know as much as possible about your system. Which version? What processor? How much memory? How much disk space is available, particularly temporary space? Are all updates recommended by the system's distributor applied? Have you customized the system? added/replaced libraries?<br />
<br />
If you have access to a second system, please validate the bug before reporting it.<br />
<br />
<br />
=== The Sofware ===<br />
<br />
We also need to know as much as possible about the software used. Which version of Hugin? Where did you install it from? Did you compile Hugin yourself? An easy way to identify your version of Hugin is to look up the About Hugin dialog (Menu Help -> About Hugin) and report the whole version string.<br />
<br />
Hugin depends on third party libraries and tools such as libpano and enblend/enfuse. Unless you have downloaded a Windows installer or a Mac bundle (that are self-contained), we'd need to know the same information for the dependencies. Where and when did you install them from?<br />
<br />
<br />
=== The Application ===<br />
<br />
Often times the nature of your project, particularly the images, will help understand the bug. How many images? What format? Do they have EXIF data? What camera make/model? Is it HDR? Often time, providing the .pto file (can be attached in the BT) is a valuable input to the analysis process. If you have access to web-space, providing the full test case including images (in JPG format and/or resized to reduce storage/bandwidth need) can also help.<br />
<br />
<br />
=== The Bug ===<br />
<br />
What are the steps that need to be undertaken to reproduce the bug? Does it happen consistently all the times, or only sporadically? what is the expected application behavior and how does it differ from the observed application behavior? <br />
<br />
<br />
== Bug Triage ==<br />
<br />
To triage bugs a user need a SourceForge login and "Tech & Admin" permission to the BT. Permission will be liberally given to users who have shown continued, relevant contributions to the debugging process.<br />
<br />
* Log on to the [https://sourceforge.net/tracker/?limit=20&sort=open_date&sortdir=desc&offset=0&group_id=77506&atid=550441&status=1<br />
BT] (the link is already filtered for opened ticket sorted from the most recent one on top).<br />
* Start with the oldest bug that has not been triaged yet. Ideally the new reports are identified by Priority 5, although at the time of writing many old reports still have Priority 5. It is also possible to be alerted to new reports by [https://lists.sourceforge.net/lists/listinfo/hugin-tracker subscribing] the tracker mailing list.<br />
* Read the ticket and make sure you fully understand it. When in doubt, leave it for more experienced users to triage or ask on the ML.<br />
* If you determine that the ticket is a duplicate, mark it as such and close it.<br />
* There are frequently appearing error messages such as "precondition violation", "false --compression", "Mask is entirely black but white image was not identified as redundant", etc... that need entries in the [[hugin FAQ]] - Duplicates should be closed with a link to the FAQ.<br />
* Assign Category, Group, Priority according to the policies in the next sections. <br />
* Add clarifying questions to the bug ticket if applicable. In doing so, compare the currently available information against the requested information listed above in "Reporting a Bug" and the specifics of the report.<br />
* If the ticket was entered anonymously, determine the likelyhood that the developers may need additional feedback. Ask for that feedback on the ML. Eventually set the report to pending status so that if nobody acts on the request it will be closed in two weeks for lack of information.<br />
* When in doubt, ask on the ML.<br />
<br />
== Bug Validation ==<br />
<br />
Every user can validate a bug against their system / software and add a comment to validate the bug. We encourage all users to do so. The more validation information we have, the better. We need to narrow down whether a bug applies to a specific operating system or across the board. And it is also very useful to know if a bug applies to a specific context or if it applies also in different contexts.<br />
<br />
* To validate a specific bug, simply try to reproduce it by following the instructions described in the ticket.<br />
* Add a comment to the ticket reporting your observation.<br />
* Were you able to reproduce the bug?<br />
* It is important to add context to your validation: what operating system? what version of Hugin?<br />
<br />
<br />
== Bug Fixing and Testing ==<br />
<br />
Everybody is encouraged to provide fixes and patches to correct bugs. Only developers can add them to the repository. Write access to the repository will be liverally given to users who need it.<br />
* when a developer fixed a bug, he can ask the ML for testing.<br />
* a fix tested on the developers system only can be set to Pending status.<br />
* when at least one user validates a fix on a different system and there are no reports that the fix does not work, the bug report can be closed.<br />
<br />
<br />
== Triaging Policy ==<br />
<br />
* The more complete a bug report, the more attention it is likely to get.<br />
* Anonymous bug reports are set on Pending status by default, unless the report is complete enough not to need further feedback and/or there is interest from contributors to work on the report.<br />
* When triaging a bug, set it's priority to something different than 5 so that priority 5 reports are known to be untriaged.<br />
<br />
<br />
=== Categories ===<br />
<br />
We use categories to indicate if the bug is platform specific, although some tickets still carry "legacy categories" that are unrelated to the platforms. <br />
<br />
<br />
=== Groups ===<br />
<br />
We use groups to indicate which tool is affected by the bug.<br />
<br />
<br />
=== Priorities ===<br />
<br />
We use priorities to sort out the the tickets.<br />
<br />
* 9: show stopper for the current release<br />
* more than 5: bug affects a large number of use cases.<br />
* 5: new bug that needs to be triaged<br />
* less than 5: bug affects a small number of use cases - rare / specific situation<br />
<br />
<br />
=== Bug Assignement ===<br />
<br />
The tracker enables the assignement of a bug to a person. It is considered rude to assign a bug to somebody else without their prior consent. Developers sometimes assign a bug to themselves to signal they are working on it, but we do not use this feature too often.</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Compiling_Fedora&diff=11461Hugin Compiling Fedora2009-06-02T11:41:51Z<p>Aston: still true</p>
<hr />
<div>The [[hugin]] and [[enblend]] stable releases are part of default fedora, available via the ''Add/Remove Software'' menu. Note that there is no [[autopano-sift]] in fedora due to patent issues, but [[autopano-sift-C]] can be found in the [http://rpmfusion.org/ RPM Fusion] 3rd party package repository.<br />
<br />
Otherwise, recent-ish hugin snapshots and other panorama-related software can usually be found at the [http://bugbear.postle.net/~bruno/apt/fedora/linux/ fedora panorama repository]. To subscribe just follow this [http://bugbear.postle.net/~bruno/apt/fedora/linux/7/i386/RPMS.panorama/panorama-release-7-1.fc7.noarch.rpm panorama release] link, use the ''Package Installer'' option, and each time you do a ''Software Update'' hugin will be upgraded to the latest snapshot.<br />
<br />
If you want to compile hugin yourself, just follow the instructions in the '''INSTALL_cmake''' file, you will need these development packages (June 2009): libpano13-devel zlib-devel libtiff-devel libjpeg-devel libpng-devel gettext-devel wxGTK-devel boost-devel cmake desktop-file-utils OpenEXR-devel gcc-c++ exiv2-devel glew-devel<br />
<br />
To actually use hugin you also need [[enblend]] 3.2 and perl-Image-ExifTool packages. [[autopano-sift-C]] or [[panomatic]] are useful to automatically generate control points.<br />
<br />
The source RPM package contains an hugin.spec file which is both the build documentation and the script for an automated build (other linux packaging systems work basically the same way).<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Compiling_Fedora&diff=11460Hugin Compiling Fedora2009-06-02T11:40:22Z<p>Aston: livna now replaced by rpmfusion</p>
<hr />
<div>The [[hugin]] and [[enblend]] stable releases are part of default fedora, available via the ''Add/Remove Software'' menu. Note that there is no [[autopano-sift]] in fedora due to patent issues, but [[autopano-sift-C]] can be found in the [http://rpmfusion.org/ RPM Fusion] 3rd party package repository.<br />
<br />
Otherwise, recent-ish hugin snapshots and other panorama-related software can usually be found at the [http://bugbear.postle.net/~bruno/apt/fedora/linux/ fedora panorama repository]. To subscribe just follow this [http://bugbear.postle.net/~bruno/apt/fedora/linux/7/i386/RPMS.panorama/panorama-release-7-1.fc7.noarch.rpm panorama release] link, use the ''Package Installer'' option, and each time you do a ''Software Update'' hugin will be upgraded to the latest snapshot.<br />
<br />
If you want to compile hugin yourself, just follow the instructions in the '''INSTALL_cmake''' file, you will need these development packages (June 2008): libpano13-devel zlib-devel libtiff-devel libjpeg-devel libpng-devel gettext-devel wxGTK-devel boost-devel cmake desktop-file-utils OpenEXR-devel gcc-c++ exiv2-devel glew-devel<br />
<br />
To actually use hugin you also need [[enblend]] 3.2 and perl-Image-ExifTool packages. [[autopano-sift-C]] or [[panomatic]] are useful to automatically generate control points.<br />
<br />
The source RPM package contains an hugin.spec file which is both the build documentation and the script for an automated build (other linux packaging systems work basically the same way).<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Qtvr2img&diff=11439Qtvr2img2009-05-22T13:12:19Z<p>Aston: basic page</p>
<hr />
<div>'''qtvr2img''' is a command-line tool for extracting content from [[QTVR]] panoramas.<br />
<br />
[[Cubic Projection]] panoramas are extracted as six cube-faces in front, right, back, left, up, down order; [[Cylindrical Projection]] panoramas are extracted as a single rectangular image. Output is as [[PNM]] ''portable anymap'' images with the same resolution as the [[JPEG]] tiles in the source file.<br />
<br />
'''qtvr2img''' is shipped with the [[Freepv]] panorama viewer.<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]</div>Astonhttps://wiki.panotools.org/index.php?title=Panorama_scripting_in_a_nutshell&diff=11438Panorama scripting in a nutshell2009-05-20T10:13:01Z<p>Aston: /* Useful Makefile variables */</p>
<hr />
<div>This is a short document describing the various Open Source tools and techniques available for working with panoramas in a non-GUI environment. The examples are based on Linux experience, but most of them should work on OS X or Windows with minor modifications at most.<br />
<br />
This document is also useful for understanding what happens 'under the hood' in [[hugin]] itself and recommended reading for anyone looking to work with the hugin sourcecode.<br />
<br />
= Why would you do that? =<br />
<br />
Creating and manipulating panoramas is something that should obviously be done in a [[GUI front-ends|graphical tool]]. This is true, but perhaps you find that you are spending more time operating a computer than being a photographer. This is an indication that something is wrong - The computer exists to do the boring work and scripting is one way to make this happen.<br />
<br />
= PanoTools 'Scripting' =<br />
<br />
The file format first used in Helmut Dersch's [[Panorama tools]] is often referred to as a 'script', but a 'PanoTools' script is really a data file describing a 'panorama stitching project'.<br />
<br />
Although these original PanoTools are obsolete, the file format is alive and well with several variations used as project files by [[PTGui]], [[PTAssembler]], [[hugin]] and related tools. These files are simple plain-text, sometimes it is useful to modify them directly with a text editor - Further on we will introduce various methods for manipulating them via the 'programming' kind of scripts.<br />
<br />
= Simple command-line stitching =<br />
<br />
Lets start with a basic but common use case: Photographers with quality [[Nodal point adapters|panoramic tripod heads]] can reproduce identical sets of photos every time, in this situation there is no need to create a new stitching project for every panorama, it is enough to use a single project as a template.<br />
<br />
This example takes a pre-existing project called template.pto, created with three photos. It uses [[nona]] for remapping, and [[enblend]] for blending the remapped photos into a finished [[TIFF]] image:<br />
<br />
nona -o out -m TIFF_m template.pto DSC_1234.JPG DSC_1235.JPG DSC_1236.JPG<br />
enblend -o finished.tif out0000.tif out0001.tif out0002.tif<br />
<br />
The first [[nona]] command creates three remapped [[TIFF]] images called out0000.tif, out0001.tif etc... the list of input images can be substituted with any set of identically sized photos. The second [[enblend]] command uses these TIFF files as input and merges them to a file called finished.tif.<br />
<br />
= Creating hugin projects on the command-line =<br />
<br />
The entire panorama creation process can be performed on the command-line, and therefore scripted, doing this involves a series of steps similar to the workflow in a GUI tool.<br />
<br />
== Generating control points ==<br />
<br />
There are a number of tools available for generating [[control points]] from groups of photos, such as [[autopano-sift]], [[autopano-sift-c]], [[panomatic]] and [[match-n-shift]]. Here is an example using autopano-sift-c:<br />
<br />
autopano-sift-c --projection 0 50 project.pto DSC_1234.JPG DSC_1235.JPG DSC_1236.JPG<br />
<br />
This will create a .pto project with [[control points]] (if any) linking the three photos, note that the [[projections|projection]] format (f0, [[Rectilinear Projection|rectilinear]]) of the input photos and approximate horizontal [[Field of View|angle of view]] (v50, 50 degrees) have to be specified.<br />
<br />
== Pruning control points ==<br />
<br />
This still isn't a finished panorama, at the very least this involves [[optimization|optimising]] the camera positions and then rendering the output.<br />
<br />
You could go ahead and [[optimization|optimise]] this project file straight away, but this can be a bit hit and miss. First it is a good idea to clean up the [[control points]]. There are currently two useful tools for cleaning control points: [[Using Celeste with hugin|celeste]] removes points from areas of sky and [[ptoclean]] removes points with large error distances, first [[celeste_standalone]]:<br />
<br />
celeste_standalone -i project.pto -o project.pto<br />
<br />
Then [[ptoclean]]:<br />
<br />
ptoclean -v --output project.pto project.pto<br />
<br />
Note that in both cases we are overwriting the input project.pto file with the cleaned output. If you want you can create intermediate temporary files and keep each step in case you need to backtrack.<br />
<br />
(Another control point cleaner is [[ptscluster]])<br />
<br />
== Optimising positions and geometry ==<br />
<br />
Up to now, the project file simply contains an image list and [[control points]], the images are not yet aligned, you can do this by [[optimization|optimising]] geometric parameters with the [[autooptimiser]] tool:<br />
<br />
autooptimiser -a -l -s -o project.pto project.pto<br />
<br />
Now you could just skip ahead and render the output if photometric [[optimization|optimisation]] isn't required.<br />
<br />
([[PToptimizer]] is an alternative geometrical optimiser)<br />
<br />
== Optimising photometric parameters ==<br />
<br />
Photos have photometric exposure variables which can be [[optimization|optimised]] in much the same way as aligning positions. Doing this can remove brightness, [[white balance]] and [[vignetting]] differences between photos, giving better blending or allowing creation of [[HDR]] images.<br />
<br />
[[vig_optimize]] does the equivalent job for photometric parameters as [[autooptimiser]] does for geometric parameters. It doesn't have an equivalent of the autooptimiser -a 'auto' mode, so you need to indicate in the .pto project which parameters are 'variables', use a tool such as [[ptovariable]]:<br />
<br />
ptovariable --vignetting --response --exposure project.pto<br />
vig_optimize -o project.pto project.pto<br />
<br />
= Stitching hugin projects on the command-line =<br />
<br />
== Rendering images ==<br />
<br />
The [[hugin]] tool for remapping and distorting the photos into the final panorama frame is [[nona]], it uses the .pto project file as a set of instructions:<br />
<br />
nona -m TIFF_m -o project project.pto<br />
<br />
This [[nona]] command creates one remapped [[TIFF]] image for each of the input photos, these will be named project0000.tif, project0001.tif, project0002.tif etc...<br />
<br />
([[PTblender]] is an alternative renderer to [[nona]])<br />
<br />
== Blending ==<br />
<br />
[[nona]] can do rudimentary assembly of the remapped images, but a much better tool for this is [[enblend]], feed it the images, it will pick seam lines and blend the overlapping areas:<br />
<br />
enblend -o project.tif project0000.tif project0001.tif project0002.tif ...<br />
<br />
Finally this produces the stitched panorama: project.tif<br />
<br />
= ''Makefile'' stitching system =<br />
<br />
This simple stitching process works well on the command-line, but it gets increasingly complicated when dealing with [[bracketing|bracketed]] stacks of photos, these are necessary for exposure blending with [[enfuse]] or [[HDR]] creation with [[hugin_hdrmerge]].<br />
<br />
Luckily [[hugin]] understands about stacks and is capable of breaking-up a project into each of the stitching tasks: rendering, assembling stacks and blending. These targets are written to a standard ''Makefile'' formatted file whenever a project is saved or stitched, e.g when you save project.pto using the hugin GUI, project.pto.mk is saved also. Stitching is then performed not by the hugin GUI, but by GNU ''make'' which processes the targets in the ''Makefile'', resulting in the final stitched panorama.<br />
<br />
== Creating ''Makefile''s with pto2mk ==<br />
<br />
This functionality is also available for use with any .pto project with the command-line [[pto2mk]] tool:<br />
<br />
pto2mk -o project.pto.mk -p project project.pto<br />
make -f project.pto.mk<br />
<br />
One of the advantages of using ''make'' on the command-line is that re-running this command will only redo necessary work. If none of the input files have changed, then ''make'' will finish immediately; however if one of the input or intermediate files has changed, say by modifying an [[alpha channel]], then only the tasks necessary to integrate that image into the final panorama will be redone.<br />
<br />
== ''make'' options ==<br />
<br />
''make'' supports multiple targets, by default [[hugin]] creates an 'all', it also creates a 'clean' target that deletes intermediate files. So you can clean up afterwards like so:<br />
<br />
make -f project.pto.mk clean<br />
<br />
Internal variables can be overriden by environment variables using the '-e' flag, so to stitch using the alternative [[nona-mask]] tool instead of [[nona]], use something like this:<br />
<br />
NONA=nona-mask make -e -f project.pto.mk<br />
<br />
Alternatively variables can be simply appended to the end of any ''make'' command, this does exactly the same thing:<br />
<br />
make -f project.pto.mk NONA=nona-mask<br />
<br />
In a shell such as bash, setting the environment will modify internal variables for the rest of the session:<br />
<br />
export ENFUSE='enfuse -l 29'<br />
<br />
(note that this will override any existing useful [[enfuse]] options)<br />
<br />
== Parallel ''make'' ==<br />
<br />
''make'' supports parallel processing for machines with multiple cores/processors with the '-j' parameter, so for a 16 core system this command will stitch using 16 parallel processes:<br />
<br />
make -j 16 -f project.pto.mk NONA='nona -t 1'<br />
<br />
(note that by default [[nona]] uses all available cores, in this case it needs to be limited to one thread so that 16 instances of nona can run at the same time)<br />
<br />
== Stitching queues ==<br />
<br />
Processing a series of projects one after another is simple enough, this command will stitch all the projects in a folder:<br />
<br />
for file in *.pto.mk; do make -f $file; done<br />
<br />
For more advanced command-line stitching, a tool like [http://distmake.sourceforge.net/ distmake] will manage a queue of ''Makefile'' stitching jobs, and even load-balance multiple machines over a network.<br />
<br />
== ''Makefile'' plugins ==<br />
<br />
A ''Makefile'' can be extended with additional targets by creating a second ''Makefile'' that includes the original [[hugin]] .pto.mk ''Makefile''. For instance a plugin ''Makefile'' called 'Makefile.psd.mk' might define a new target called 'ldr_psd' that assembles a multilayer [[PSD]] file for manual blending in a tool such as the [[Gimp]]:<br />
<br />
include $(PTO).mk<br />
ldr_psd : $(LDR_LAYERS) $(LDR_BLENDED)<br />
PTtiff2psd -o $(LDR_REMAPPED_PREFIX_SHELL)_layered.psd \<br />
$(LDR_LAYERS_SHELL) $(LDR_BLENDED_SHELL)<br />
<br />
You can then use this plugin by calling the ldr_psd target and supplying the name of the relevant .pto project:<br />
<br />
make -f Makefile.psd.mk ldr_psd PTO=project.pto<br />
<br />
Hugin installs with an example Makefile.equirect.mk plugin with some common add-on tasks such as creating basic [[QTVR]], [[PanoSalado]] and [[SPiV]] files.<br />
<br />
== Useful ''Makefile'' variables ==<br />
<br />
Each filesystem PATH in this table has a matching PATH_SHELL version with special characters escaped - This is the version that should be used in the 'command' part of each ''Makefile'' rule.<br />
<br />
{|<br />
| $(INPUT_IMAGES) || list of input files<br />
|-<br />
| $(INPUT_IMAGE_1) || first input file<br />
|-<br />
| $(PROJECT_FILE) || .pto project file<br />
|-<br />
| ||<br />
|-<br />
| $(HUGIN_PROJECTION) || output [[projections|projection]] type in panotools numeric format<br />
|-<br />
| $(HUGIN_HFOV) || output horizontal [[Field of View|angle of view]] in degrees<br />
|-<br />
| $(HUGIN_WIDTH) || output width in pixels<br />
|-<br />
| $(HUGIN_HEIGHT) || output height in pixels<br />
|-<br />
| ||<br />
|-<br />
| $(DO_LDR_BLENDED) || set if 'normal' stitching with no exposure blending set<br />
|-<br />
| $(DO_LDR_STACKED_BLENDED) || set if stitching with 'exposure blending' set<br />
|-<br />
| $(DO_HDR_BLENDED) || set if [[HDR]] merging set<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_REMAPPED_PREFIX) || normal blended output prefix<br />
|-<br />
| $(LDR_EXPOSURE_REMAPPED_PREFIX) || exposure blended output prefix<br />
|-<br />
| $(HDR_STACK_REMAPPED_PREFIX) || [[HDR]] merged output prefix<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_BLENDED) || normal blended output file<br />
|-<br />
| $(LDR_STACKED_BLENDED) || exposure blended output file<br />
|-<br />
| $(HDR_BLENDED) || [[HDR]] merged output file<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_LAYERS) || list of normal unblended output files<br />
|-<br />
| $(LDR_STACKS) || list of exposure blended stack files<br />
|-<br />
| $(LDR_EXPOSURE_LAYERS) || list of blended exposure layers<br />
|-<br />
| $(HDR_STACKS) || list of [[HDR]] merged stack files<br />
|}<br />
<br />
= Holding it all together with panostart =<br />
<br />
The .pto.mk ''Makefile'' helps with the stitching at the end of the process, but doesn't help with the bits at the beginning such as: identifying which photos go in which panorama, generating [[control points]], pruning and [[optimization|optimising]].<br />
<br />
[[panostart]] is a prototype tool that does it all. Given a list of photos in a folder, it identifies likely panoramas by comparing [[EXIF]] timestamps and writes a meta-''Makefile'' containing: rules for generating .pto projects with [[match-n-shift]], rules for generating corresponding .pto.mk ''Makefile''s with [[pto2mk]], rules for stitching the projects with ''make'', plus some other rules for creating useful distributable output.<br />
<br />
A typical [[panostart]] command for dealing with a folder full of photos taken with a pocket point-and-shoot camera on auto-exposure might look like this:<br />
<br />
panostart --output Makefile --projection 0 --fov 50 --nostacks --loquacious *.JPG<br />
<br />
Processing this ''Makefile'' is simple:<br />
<br />
make<br />
<br />
Some of the resulting panoramas will have position, cropping and stitching errors. Fix these by editing the relevant .pto projects in [[hugin]] or another tool, when you type ''make'' again on the command-line, only those projects that have changed will be restitched.<br />
<br />
Another advantage of doing things this way is reproducibility: delete all the (enormous) [[TIFF]] output panoramas and all you need to keep permanently are the photos, the meta-''Makefile'' and the associated .pto projects. If you ever need to recreate the TIFF panoramas in the future, just type ''make''. If you know the name of the TIFF file you want, just type 'make project.tif' and only a single panorama will be processed.<br />
<br />
= Panotools::Script for manipulating project files =<br />
<br />
The name is a historical mistake, [[Panotools_Script|Panotools::Script]] is a perl library for working with [[hugin]] .pto projects, though it could be extended in the future to cover any of the related file formats. Many of the command-line tools described in this document are written with this library.<br />
<br />
Here is a trivial script, all it does is open and save a .pto project, it also resets the output ('p' Panorama line) [[Field of View|angle of view]] to 360 degrees (v360), the [[projections|projection]] format to [[equirectangular Projection|equirectangular]] (f2) and the output pixel size to 4096x2048 pixels (w4096 h2048):<br />
<br />
#!/usr/bin/perl<br />
use Panotools::Script;<br />
my $pto = new Panotools::Script;<br />
$pto->Read ($ARGV[0]);<br />
$pto->Panorama->Set (v => 360, f => 2, w => 4096, h = 2048);<br />
$pto->Write ($ARGV[0]);<br />
<br />
Here's slightly more complex script, this iterates over the input images and increments the [[white balance]] making the panorama slightly 'warmer':<br />
<br />
#!/usr/bin/perl<br />
use Panotools::Script;<br />
my $pto = new Panotools::Script;<br />
$pto->Read ($ARGV[0]);<br />
for my $image (@{$pto->Image})<br />
{<br />
my $Er_new = $image->{Er} * 100 / 95; # red value<br />
my $Eb_new = $image->{Eb} * 95 / 100; # blue value<br />
$image->Set (Er => $Er_new, Eb => $Eb_new);<br />
}<br />
$pto->Write ($ARGV[0]);<br />
<br />
= Full list of command-line tools =<br />
<br />
== Control point generation ==<br />
<br />
* [[autopano-sift-c]] - All in one keypoint generator and matcher<br />
* [[match-n-shift]] - All in one wrapper around [[align_image_stack]] and [[autopano-sift-c]]<br />
* [[panomatic]] - All in one alternative to [[autopano-sift-c]]<br />
* [[align_image_stack]] - Generates [[control points]] for stacked photos<br />
<br />
* generatekeys - Keypoint generator<br />
* matchpoint - Keypoint generator<br />
* autopano - Keypoint matcher, part of [[autopano-sift-c]] and not to be confused with autopano<br />
<br />
== Project file modification ==<br />
<br />
* ptoset - Change global parameters and project options<br />
* [[ptovariable]] - Set typical [[optimization|optimisation]] variables<br />
* ptsed - Set any project parameter, convert .pto into PanoTools format<br />
* [[ptosort]] - Sort [[control points]] or images, remove duplicate control points<br />
* ptopath - Remove file paths in project files<br />
* [[transform-pano]] - [[Roll]], [[pitch]] and [[yaw]] rotation of .pto projects<br />
* ptocentre - Rotate projects to put images in panorama centre<br />
<br />
* [[ptomerge]] - Join two or more projects<br />
* [[ptosplit]] - Extract subsets of images from a project into a new project<br />
<br />
== Control point pruning ==<br />
<br />
* ptscluster - Clean 'bad' [[control points]] based on distances and position<br />
* [[celeste_standalone]] - Clean sky [[control points]]<br />
* [[ptoclean]] - Clean 'bad' [[control points]] based on standard deviation error<br />
<br />
== Optimisation ==<br />
<br />
* [[autooptimiser]] - [[optimization|Optimise]] geometry of .pto projects<br />
* [[PToptimizer]] - [[optimization|Optimize]] geometry of PanoTools format projects<br />
* [[vig_optimize]] - [[optimization|Optimise]] photometric parameters of .pto projects<br />
<br />
== Rendering ==<br />
<br />
* [[nona]] - Default [[hugin]] rendering engine<br />
* [[nona-mask]] - Wrapper around [[nona]] for using external bitmap masks<br />
* [[PTmender]] - Render PanoTools format projects<br />
<br />
* [[PTAInterpolate]] - Create intermediate images from PanoTools projects<br />
<br />
== Blending ==<br />
<br />
* [[enblend]] - Merge partially overlapping images with multiresolution splines<br />
* [[enfuse]] - Merge overlapping images with exposure fusion<br />
* PTroller - Merge partially overlapping images with no seaming<br />
* PTmasker - Compute stitching masks for input by PTroller<br />
* enblend-mask - Wrapper around [[enblend]] for using external bitmap masks<br />
* [[hugin_hdrmerge]] - Merge [[bracketing|bracketed]] images for [[HDR]] generation<br />
* enblend-svg - Wrapper around [[enblend]] for specifying input images via SVG files<br />
<br />
* process-masks - Allow 'positive' masking in external masks for [[enblend]]<br />
* tif2svg - Assemble multiple [[TIFF]] images into SVG files for enblend-svg<br />
* [[PTblender]] - Correct colour and brightness of overlapping images<br />
<br />
== Misc ==<br />
<br />
* [[panostart]] - All-in-one panorama workflow via ''Makefile''s<br />
* [[pto2mk]] - Create platform specific ''Makefile'' for stitching a project<br />
<br />
== Chromatic aberration ==<br />
<br />
* [[fulla]] - Correct lens distortion and [[chromatic aberration]]<br />
* [[tca_correct]] - Calculate [[chromatic aberration]] in a photo<br />
<br />
== Querying ==<br />
<br />
* ptograph - Draw undirected graphs of projects<br />
* ptoget - Query any project parameter<br />
* ptoinfo - Generate a report on a project file<br />
* PTinfo - Display info about a panotools generated [[TIFF]] file<br />
* [[panoinfo]] - Display information about installed [[libpano13]] library<br />
<br />
== TIFF files ==<br />
<br />
* PTtiff2psd - Join multiple [[TIFF]] images into a multilayer [[PSD]] file<br />
* PTtiffdump - Compare two TIFF files<br />
* PTcrop - Remove unwanted empty space in [[TIFF]] files and replace with offsets<br />
* PTuncrop - Replace offsets in [[TIFF]] files with empty pixels<br />
<br />
== Output formats ==<br />
<br />
* [[qtvr2img]] - Extract six cubefaces from a cubic [[QTVR]]<br />
* cubic2erect - Render six cubefaces into a single [[equirectangular Projection|equirectangular]] image<br />
* qtvr2erect - Render a cubic [[QTVR]] into a single [[equirectangular Projection|equirectangular]] image<br />
* jpeg2qtvr - Assemble six [[JPEG]] cubefaces into a cubic [[QTVR]]<br />
* [[erect2qtvr]] - Render a single [[equirectangular Projection|equirectangular]] image into a cubic [[QTVR]]<br />
<br />
* erect2cubic - Create a .pto project for extracting cube faces from an [[equirectangular Projection|equirectangular]] image<br />
* erect2planet - Create a .pto project for extracting a 'little planet' from an [[equirectangular Projection|equirectangular]] image<br />
* erect2mercator - Create a .pto project for extracting a mercator view from an [[equirectangular Projection|equirectangular]] image<br />
<br />
== Older tools ==<br />
<br />
Helmut Dersch's [[PTOptimizer]] and [[PTStitcher]] were the original command-line tools. These are not really recommendable any more as they require an older, buggier version of the [[libpano12]] library, they are closed source so don't work on modern systems such as OS X or 64bit Linux, and are lacking in features compared to modern replacements such as [[autooptimiser]] and [[nona]].<br />
<br />
= Useful Image processing tools =<br />
<br />
* [[ImageMagick]] - Many utilities for converting, manipulating and resizing images<br />
* GraphicsMagick - A fork of ImageMagick with many improvements<br />
* libtiff - Supplied with useful tools such as tiffcp for joining and recompression, and tifficc for adding ICC colour profiles<br />
* [[exiftool]] - All purpose reading, setting and copying of [[EXIF]] data<br />
* exiv2 - [[EXIF]] manipulation, useful for setting the file modification date from the EXIF date<br />
* jpegtran - Lossless rotation of [[JPEG]] images<br />
* ufraw-batch - Command-line [[RAW]] processing<br />
* [[dcraw]] - Command-line [[RAW]] processing<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Tutorial:Specialised]]<br />
<br />
--[[User:Bruno|Bruno]] 21:23, 2 May 2009 (UTC)</div>Astonhttps://wiki.panotools.org/index.php?title=Panorama_scripting_in_a_nutshell&diff=11411Panorama scripting in a nutshell2009-05-05T13:34:15Z<p>Aston: /* Makefile plugins */</p>
<hr />
<div>This is a short document describing the various Open Source tools and techniques available for working with panoramas in a non-GUI environment. The examples are based on Linux experience, but most of them should work on OS X or Windows with minor modifications at most.<br />
<br />
This document is also useful for understanding what happens 'under the hood' in [[hugin]] itself and recommended reading for anyone looking to work with the hugin sourcecode.<br />
<br />
= Why would you do that? =<br />
<br />
Creating and manipulating panoramas is something that should obviously be done in a [[GUI front-ends|graphical tool]]. This is true, but perhaps you find that you are spending more time operating a computer than being a photographer. This is an indication that something is wrong - The computer exists to do the boring work and scripting is one way to make this happen.<br />
<br />
= PanoTools 'Scripting' =<br />
<br />
The file format first used in Helmut Dersch's [[Panorama tools]] is often referred to as a 'script', but a 'PanoTools' script is really a data file describing a 'panorama stitching project'.<br />
<br />
Although these original PanoTools are obsolete, the file format is alive and well with several variations used as project files by [[PTGui]], [[PTAssembler]], [[hugin]] and related tools. These files are simple plain-text, sometimes it is useful to modify them directly with a text editor - Further on we will introduce various methods for manipulating them via the 'programming' kind of scripts.<br />
<br />
= Simple command-line stitching =<br />
<br />
Lets start with a basic but common use case: Photographers with quality [[Nodal point adapters|panoramic tripod heads]] can reproduce identical sets of photos every time, in this situation there is no need to create a new stitching project for every panorama, it is enough to use a single project as a template.<br />
<br />
This example takes a pre-existing project called template.pto, created with three photos. It uses [[nona]] for remapping, and [[enblend]] for blending the remapped photos into a finished [[TIFF]] image:<br />
<br />
nona -o out -m TIFF_m template.pto DSC_1234.JPG DSC_1235.JPG DSC_1236.JPG<br />
enblend -o finished.tif out0000.tif out0001.tif out0002.tif<br />
<br />
The first [[nona]] command creates three remapped [[TIFF]] images called out0000.tif, out0001.tif etc... the list of input images can be substituted with any set of identically sized photos. The second [[enblend]] command uses these TIFF files as input and merges them to a file called finished.tif.<br />
<br />
= Creating hugin projects on the command-line =<br />
<br />
The entire panorama creation process can be performed on the command-line, and therefore scripted, doing this involves a series of steps similar to the workflow in a GUI tool.<br />
<br />
== Generating control points ==<br />
<br />
There are a number of tools available for generating [[control points]] from groups of photos, such as [[autopano-sift]], [[autopano-sift-c]], [[panomatic]] and [[match-n-shift]]. Here is an example using autopano-sift-c:<br />
<br />
autopano-sift-c --projection 0 50 project.pto DSC_1234.JPG DSC_1235.JPG DSC_1236.JPG<br />
<br />
This will create a .pto project with [[control points]] (if any) linking the three photos, note that the [[projections|projection]] format (f0, [[Rectilinear Projection|rectilinear]]) of the input photos and approximate horizontal [[Field of View|angle of view]] (v50, 50 degrees) have to be specified.<br />
<br />
== Pruning control points ==<br />
<br />
This still isn't a finished panorama, at the very least this involves [[optimization|optimising]] the camera positions and then rendering the output.<br />
<br />
You could go ahead and [[optimization|optimise]] this project file straight away, but this can be a bit hit and miss. First it is a good idea to clean up the [[control points]]. There are currently two useful tools for cleaning control points: [[Using Celeste with hugin|celeste]] removes points from areas of sky and [[ptoclean]] removes points with large error distances, first [[celeste_standalone]]:<br />
<br />
celeste_standalone -i project.pto -o project.pto<br />
<br />
Then [[ptoclean]]:<br />
<br />
ptoclean -v --output project.pto project.pto<br />
<br />
Note that in both cases we are overwriting the input project.pto file with the cleaned output. If you want you can create intermediate temporary files and keep each step in case you need to backtrack.<br />
<br />
(Another control point cleaner is [[ptscluster]])<br />
<br />
== Optimising positions and geometry ==<br />
<br />
Up to now, the project file simply contains an image list and [[control points]], the images are not yet aligned, you can do this by [[optimization|optimising]] geometric parameters with the [[autooptimiser]] tool:<br />
<br />
autooptimiser -a -l -s -o project.pto project.pto<br />
<br />
Now you could just skip ahead and render the output if photometric [[optimization|optimisation]] isn't required.<br />
<br />
([[PToptimizer]] is an alternative geometrical optimiser)<br />
<br />
== Optimising photometric parameters ==<br />
<br />
Photos have photometric exposure variables which can be [[optimization|optimised]] in much the same way as aligning positions. Doing this can remove brightness, [[white balance]] and [[vignetting]] differences between photos, giving better blending or allowing creation of [[HDR]] images.<br />
<br />
[[vig_optimize]] does the equivalent job for photometric parameters as [[autooptimiser]] does for geometric parameters. It doesn't have an equivalent of the autooptimiser -a 'auto' mode, so you need to indicate in the .pto project which parameters are 'variables', use a tool such as [[ptovariable]]:<br />
<br />
ptovariable --vignetting --response --exposure project.pto<br />
vig_optimize -o project.pto project.pto<br />
<br />
= Stitching hugin projects on the command-line =<br />
<br />
== Rendering images ==<br />
<br />
The [[hugin]] tool for remapping and distorting the photos into the final panorama frame is [[nona]], it uses the .pto project file as a set of instructions:<br />
<br />
nona -m TIFF_m -o project project.pto<br />
<br />
This [[nona]] command creates one remapped [[TIFF]] image for each of the input photos, these will be named project0000.tif, project0001.tif, project0002.tif etc...<br />
<br />
([[PTblender]] is an alternative renderer to [[nona]])<br />
<br />
== Blending ==<br />
<br />
[[nona]] can do rudimentary assembly of the remapped images, but a much better tool for this is [[enblend]], feed it the images, it will pick seam lines and blend the overlapping areas:<br />
<br />
enblend -o project.tif project0000.tif project0001.tif project0002.tif ...<br />
<br />
Finally this produces the stitched panorama: project.tif<br />
<br />
= ''Makefile'' stitching system =<br />
<br />
This simple stitching process works well on the command-line, but it gets increasingly complicated when dealing with [[bracketing|bracketed]] stacks of photos, these are necessary for exposure blending with [[enfuse]] or [[HDR]] creation with [[hugin_hdrmerge]].<br />
<br />
Luckily [[hugin]] understands about stacks and is capable of breaking-up a project into each of the stitching tasks: rendering, assembling stacks and blending. These targets are written to a standard ''Makefile'' formatted file whenever a project is saved or stitched, e.g when you save project.pto using the hugin GUI, project.pto.mk is saved also. Stitching is then performed not by the hugin GUI, but by GNU ''make'' which processes the targets in the ''Makefile'', resulting in the final stitched panorama.<br />
<br />
== Creating ''Makefile''s with pto2mk ==<br />
<br />
This functionality is also available for use with any .pto project with the command-line [[pto2mk]] tool:<br />
<br />
pto2mk -o project.pto.mk -p project project.pto<br />
make -f project.pto.mk<br />
<br />
One of the advantages of using ''make'' on the command-line is that re-running this command will only redo necessary work. If none of the input files have changed, then ''make'' will finish immediately; however if one of the input or intermediate files has changed, say by modifying an [[alpha channel]], then only the tasks necessary to integrate that image into the final panorama will be redone.<br />
<br />
== ''make'' options ==<br />
<br />
''make'' supports multiple targets, by default [[hugin]] creates an 'all', it also creates a 'clean' target that deletes intermediate files. So you can clean up afterwards like so:<br />
<br />
make -f project.pto.mk clean<br />
<br />
Internal variables can be overriden by environment variables using the '-e' flag, so to stitch using the alternative [[nona-mask]] tool instead of [[nona]], use something like this:<br />
<br />
NONA=nona-mask make -e -f project.pto.mk<br />
<br />
Alternatively variables can be simply appended to the end of any ''make'' command, this does exactly the same thing:<br />
<br />
make -f project.pto.mk NONA=nona-mask<br />
<br />
In a shell such as bash, setting the environment will modify internal variables for the rest of the session:<br />
<br />
export ENFUSE='enfuse -l 29'<br />
<br />
(note that this will override any existing useful [[enfuse]] options)<br />
<br />
== Parallel ''make'' ==<br />
<br />
''make'' supports parallel processing for machines with multiple cores/processors with the '-j' parameter, so for a 16 core system this command will stitch using 16 parallel processes:<br />
<br />
make -j 16 -f project.pto.mk NONA='nona -t 1'<br />
<br />
(note that by default [[nona]] uses all available cores, in this case it needs to be limited to one thread so that 16 instances of nona can run at the same time)<br />
<br />
== Stitching queues ==<br />
<br />
Processing a series of projects one after another is simple enough, this command will stitch all the projects in a folder:<br />
<br />
for file in *.pto.mk; do make -f $file; done<br />
<br />
For more advanced command-line stitching, a tool like [http://distmake.sourceforge.net/ distmake] will manage a queue of ''Makefile'' stitching jobs, and even load-balance multiple machines over a network.<br />
<br />
== ''Makefile'' plugins ==<br />
<br />
A ''Makefile'' can be extended with additional targets by creating a second ''Makefile'' that includes the original [[hugin]] .pto.mk ''Makefile''. For instance a plugin ''Makefile'' called 'Makefile.psd.mk' might define a new target called 'ldr_psd' that assembles a multilayer [[PSD]] file for manual blending in a tool such as the [[Gimp]]:<br />
<br />
include $(PTO).mk<br />
ldr_psd : $(LDR_LAYERS) $(LDR_BLENDED)<br />
PTtiff2psd -o $(LDR_REMAPPED_PREFIX_SHELL)_layered.psd \<br />
$(LDR_LAYERS_SHELL) $(LDR_BLENDED_SHELL)<br />
<br />
You can then use this plugin by calling the ldr_psd target and supplying the name of the relevant .pto project:<br />
<br />
make -f Makefile.psd.mk ldr_psd PTO=project.pto<br />
<br />
Hugin installs with an example Makefile.equirect.mk plugin with some common add-on tasks such as creating basic [[QTVR]], [[PanoSalado]] and [[SPiV]] files.<br />
<br />
== Useful ''Makefile'' variables ==<br />
<br />
Each filesystem PATH in this table has a matching PATH_SHELL version with special characters escaped - This is the version that should be used in the 'command' part of each ''Makefile'' rule.<br />
<br />
{|<br />
| $(INPUT_IMAGES) || list of input files<br />
|-<br />
| $(INPUT_IMAGE_1) || first input file<br />
|-<br />
| $(PROJECT_FILE) || .pto project file<br />
|-<br />
| ||<br />
|-<br />
| $(HUGIN_PROJECTION) || output [[projections|projection]] type in panotools numeric format<br />
|-<br />
| $(HUGIN_HFOV) || output horizontal [[Field of View|angle of view]] in degrees<br />
|-<br />
| $(HUGIN_WIDTH) || output width in pixels<br />
|-<br />
| $(HUGIN_HEIGHT) || output height in pixels<br />
|-<br />
| ||<br />
|-<br />
| $(DO_LDR_BLENDED) || set if 'normal' stitching with no exposure blending set<br />
|-<br />
| $(DO_LDR_STACKED_BLENDED) || set if stitching with 'exposure blending' set<br />
|-<br />
| $(DO_HDR_BLENDED) || set if [[HDR]] merging set<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_REMAPPED_PREFIX) || normal blended output prefix<br />
|-<br />
| $(LDR_EXPOSURE_REMAPPED_PREFIX) || exposure blended output prefix<br />
|-<br />
| $(HDR_STACK_REMAPPED_PREFIX) || [[HDR]] merged output prefix<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_BLENDED) || normal blended output file<br />
|-<br />
| $(LDR_STACKED_BLENDED) || exposure blended output file<br />
|-<br />
| $(HDR_BLENDED) || [[HDR]] merged output file<br />
|-<br />
| ||<br />
|-<br />
| $(LDR_LAYERS) || list of normal unblended output files<br />
|-<br />
| $(LDR_STACKS) || list of exposure blended stack files<br />
|-<br />
| $(HDR_STACKS) || list of [[HDR]] merged stack files<br />
|}<br />
<br />
= Holding it all together with panostart =<br />
<br />
The .pto.mk ''Makefile'' helps with the stitching at the end of the process, but doesn't help with the bits at the beginning such as: identifying which photos go in which panorama, generating [[control points]], pruning and [[optimization|optimising]].<br />
<br />
[[panostart]] is a prototype tool that does it all. Given a list of photos in a folder, it identifies likely panoramas by comparing [[EXIF]] timestamps and writes a meta-''Makefile'' containing: rules for generating .pto projects with [[match-n-shift]], rules for generating corresponding .pto.mk ''Makefile''s with [[pto2mk]], rules for stitching the projects with ''make'', plus some other rules for creating useful distributable output.<br />
<br />
A typical [[panostart]] command for dealing with a folder full of photos taken with a pocket point-and-shoot camera on auto-exposure might look like this:<br />
<br />
panostart --output Makefile --projection 0 --fov 50 --nostacks --loquacious *.JPG<br />
<br />
Processing this ''Makefile'' is simple:<br />
<br />
make<br />
<br />
Some of the resulting panoramas will have position, cropping and stitching errors. Fix these by editing the relevant .pto projects in [[hugin]] or another tool, when you type ''make'' again on the command-line, only those projects that have changed will be restitched.<br />
<br />
Another advantage of doing things this way is reproducibility: delete all the (enormous) [[TIFF]] output panoramas and all you need to keep permanently are the photos, the meta-''Makefile'' and the associated .pto projects. If you ever need to recreate the TIFF panoramas in the future, just type ''make''. If you know the name of the TIFF file you want, just type 'make project.tif' and only a single panorama will be processed.<br />
<br />
= Panotools::Script for manipulating project files =<br />
<br />
The name is a historical mistake, [[Panotools_Script|Panotools::Script]] is a perl library for working with [[hugin]] .pto projects, though it could be extended in the future to cover any of the related file formats. Many of the command-line tools described in this document are written with this library.<br />
<br />
Here is a trivial script, all it does is open and save a .pto project, it also resets the output ('p' Panorama line) [[Field of View|angle of view]] to 360 degrees (v360), the [[projections|projection]] format to [[equirectangular Projection|equirectangular]] (f2) and the output pixel size to 4096x2048 pixels (w4096 h2048):<br />
<br />
#!/usr/bin/perl<br />
use Panotools::Script;<br />
my $pto = new Panotools::Script;<br />
$pto->Read ($ARGV[0]);<br />
$pto->Panorama->Set (v => 360, f => 2, w => 4096, h = 2048);<br />
$pto->Write ($ARGV[0]);<br />
<br />
Here's slightly more complex script, this iterates over the input images and increments the [[white balance]] making the panorama slightly 'warmer':<br />
<br />
#!/usr/bin/perl<br />
use Panotools::Script;<br />
my $pto = new Panotools::Script;<br />
$pto->Read ($ARGV[0]);<br />
for my $image (@{$pto->Image})<br />
{<br />
my $Er_new = $image->{Er} * 100 / 95; # red value<br />
my $Eb_new = $image->{Eb} * 95 / 100; # blue value<br />
$image->Set (Er => $Er_new, Eb => $Eb_new);<br />
}<br />
$pto->Write ($ARGV[0]);<br />
<br />
= Full list of command-line tools =<br />
<br />
== Control point generation ==<br />
<br />
* [[autopano-sift-c]] - All in one keypoint generator and matcher<br />
* [[match-n-shift]] - All in one wrapper around [[align_image_stack]] and [[autopano-sift-c]]<br />
* [[panomatic]] - All in one alternative to [[autopano-sift-c]]<br />
* [[align_image_stack]] - Generates [[control points]] for stacked photos<br />
<br />
* generatekeys - Keypoint generator<br />
* matchpoint - Keypoint generator<br />
* autopano - Keypoint matcher, part of [[autopano-sift-c]] and not to be confused with autopano<br />
<br />
== Project file modification ==<br />
<br />
* ptoset - Change global parameters and project options<br />
* [[ptovariable]] - Set typical [[optimization|optimisation]] variables<br />
* ptsed - Set any project parameter, convert .pto into PanoTools format<br />
* [[ptosort]] - Sort [[control points]] or images, remove duplicate control points<br />
* ptopath - Remove file paths in project files<br />
* [[transform-pano]] - [[Roll]], [[pitch]] and [[yaw]] rotation of .pto projects<br />
* ptocentre - Rotate projects to put images in panorama centre<br />
<br />
* [[ptomerge]] - Join two or more projects<br />
* [[ptosplit]] - Extract subsets of images from a project into a new project<br />
<br />
== Control point pruning ==<br />
<br />
* ptscluster - Clean 'bad' [[control points]] based on distances and position<br />
* [[celeste_standalone]] - Clean sky [[control points]]<br />
* [[ptoclean]] - Clean 'bad' [[control points]] based on standard deviation error<br />
<br />
== Optimisation ==<br />
<br />
* [[autooptimiser]] - [[optimization|Optimise]] geometry of .pto projects<br />
* [[PToptimizer]] - [[optimization|Optimize]] geometry of PanoTools format projects<br />
* [[vig_optimize]] - [[optimization|Optimise]] photometric parameters of .pto projects<br />
<br />
== Rendering ==<br />
<br />
* [[nona]] - Default [[hugin]] rendering engine<br />
* [[nona-mask]] - Wrapper around [[nona]] for using external bitmap masks<br />
* [[PTmender]] - Render PanoTools format projects<br />
<br />
* [[PTAInterpolate]] - Create intermediate images from PanoTools projects<br />
<br />
== Blending ==<br />
<br />
* [[enblend]] - Merge partially overlapping images with multiresolution splines<br />
* [[enfuse]] - Merge overlapping images with exposure fusion<br />
* PTroller - Merge partially overlapping images with no seaming<br />
* PTmasker - Compute stitching masks for input by PTroller<br />
* enblend-mask - Wrapper around [[enblend]] for using external bitmap masks<br />
* [[hugin_hdrmerge]] - Merge [[bracketing|bracketed]] images for [[HDR]] generation<br />
* enblend-svg - Wrapper around [[enblend]] for specifying input images via SVG files<br />
<br />
* process-masks - Allow 'positive' masking in external masks for [[enblend]]<br />
* tif2svg - Assemble multiple [[TIFF]] images into SVG files for enblend-svg<br />
* [[PTblender]] - Correct colour and brightness of overlapping images<br />
<br />
== Misc ==<br />
<br />
* [[panostart]] - All-in-one panorama workflow via ''Makefile''s<br />
* [[pto2mk]] - Create platform specific ''Makefile'' for stitching a project<br />
<br />
== Chromatic aberration ==<br />
<br />
* [[fulla]] - Correct lens distortion and [[chromatic aberration]]<br />
* [[tca_correct]] - Calculate [[chromatic aberration]] in a photo<br />
<br />
== Querying ==<br />
<br />
* ptograph - Draw undirected graphs of projects<br />
* ptoget - Query any project parameter<br />
* ptoinfo - Generate a report on a project file<br />
* PTinfo - Display info about a panotools generated [[TIFF]] file<br />
* [[panoinfo]] - Display information about installed [[libpano13]] library<br />
<br />
== TIFF files ==<br />
<br />
* PTtiff2psd - Join multiple [[TIFF]] images into a multilayer [[PSD]] file<br />
* PTtiffdump - Compare two TIFF files<br />
* PTcrop - Remove unwanted empty space in [[TIFF]] files and replace with offsets<br />
* PTuncrop - Replace offsets in [[TIFF]] files with empty pixels<br />
<br />
== Output formats ==<br />
<br />
* [[qtvr2img]] - Extract six cubefaces from a cubic [[QTVR]]<br />
* cubic2erect - Render six cubefaces into a single [[equirectangular Projection|equirectangular]] image<br />
* qtvr2erect - Render a cubic [[QTVR]] into a single [[equirectangular Projection|equirectangular]] image<br />
* jpeg2qtvr - Assemble six [[JPEG]] cubefaces into a cubic [[QTVR]]<br />
* [[erect2qtvr]] - Render a single [[equirectangular Projection|equirectangular]] image into a cubic [[QTVR]]<br />
<br />
* erect2cubic - Create a .pto project for extracting cube faces from an [[equirectangular Projection|equirectangular]] image<br />
* erect2planet - Create a .pto project for extracting a 'little planet' from an [[equirectangular Projection|equirectangular]] image<br />
* erect2mercator - Create a .pto project for extracting a mercator view from an [[equirectangular Projection|equirectangular]] image<br />
<br />
== Older tools ==<br />
<br />
Helmut Dersch's [[PTOptimizer]] and [[PTStitcher]] were the original command-line tools. These are not really recommendable any more as they require an older, buggier version of the [[libpano12]] library, they are closed source so don't work on modern systems such as OS X or 64bit Linux, and are lacking in features compared to modern replacements such as [[autooptimiser]] and [[nona]].<br />
<br />
= Useful Image processing tools =<br />
<br />
* [[ImageMagick]] - Many utilities for converting, manipulating and resizing images<br />
* GraphicsMagick - A fork of ImageMagick with many improvements<br />
* libtiff - Supplied with useful tools such as tiffcp for joining and recompression, and tifficc for adding ICC colour profiles<br />
* [[exiftool]] - All purpose reading, setting and copying of [[EXIF]] data<br />
* exiv2 - [[EXIF]] manipulation, useful for setting the file modification date from the EXIF date<br />
* jpegtran - Lossless rotation of [[JPEG]] images<br />
* ufraw-batch - Command-line [[RAW]] processing<br />
* [[dcraw]] - Command-line [[RAW]] processing<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Tutorial:Specialised]]<br />
<br />
--[[User:Bruno|Bruno]] 21:23, 2 May 2009 (UTC)</div>Astonhttps://wiki.panotools.org/index.php?title=Vig_optimize&diff=11395Vig optimize2009-04-22T09:40:33Z<p>Aston: calrify</p>
<hr />
<div>With the 0.7.0 [[hugin]] release, photometric parameters such as exposure (EV), [[vignetting]], [[white balance]] and [[camera response curve]] can be optimised in a similar way to [[lens distortion]]. These photometric parameters can be edited in the [[hugin Camera and Lens tab]] or calculated automatically in the [[hugin Exposure tab]].<br />
<br />
For this to work, photos first have to be aligned with correct relative positions and lens parameters. hugin will compare randomly selected groups of pixels from matching areas in each of the overlapping photos. Exposure and response curve can be calculated with any kind of overlap, however vignetting calculations require partial overlap, ideally around 50%.<br />
<br />
As well as the GUI process of optimisation/calculation in the [[hugin Exposure tab]], photometric calculation can also be performed on the command-line with the '''vig_optimize''' tool. This functionally is configured via 'v' ''variable'' lines in the .pto project file in a similar way to the [[autooptimiser]] tool:<br />
<br />
* The [[camera response curve]] is simplified using the [[EMoR]] sensor model which reduces the variation to five numbers, these are the '''Ra''', '''Rb''', '''Rc''', '''Rd''' & '''Re''' image (i) parameters (the default values of 0.0 are equivalent to an 'average' generic sensor).<br />
* The [[vignetting]] model is represented by a polynomial with four parameters: '''Va''' (this is always 1.0 and doesn't need to be optimised) and '''Vb''', '''Vc''' & '''Vd''' (which default to 0.0 - equivalent to no vignetting). The vignetting centre can also be different from the geometrical centre, this is specified by '''Vx''' & '''Vy''' (both default to 0.0).<br />
* Exposure (EV) is represented by a single value '''Ev''' (defaults 0.0, equivalent to no-change).<br />
* The [[white balance]] is represented by multipliers for the red and blue channels '''Er''' and '''Eb''' (the defaults of 1.0 are equivalent to no-change).<br />
<br />
A typical 'v' ''variable'' line configuration would look like this, i.e. optimise camera response curve and vignetting for image ''0'' and exposure for images ''1'', ''2'', ''3'' and ''4'':<br />
<br />
v Ra0 Rb0 Rc0 Rd0 Re0 Vb0 Vc0 Vd0<br />
v Ev1 Ev2 Ev3 Ev4<br />
<br />
(vignetting centre and white balance are left unchanged)<br />
<br />
The .pto project itself can then be optimised with '''vig_optimize''' on the command-line like so:<br />
<br />
vig_optimize -o myproject.pto myproject.pto<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin&diff=11378Hugin2009-04-15T14:48:45Z<p>Aston: /* Hugin components */</p>
<hr />
<div>'''Hugin''' {{Glossary|is an opensource graphical user interface (GUI) for [[Panorama tools]]|1}}.<br />
<br />
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:<br />
<br />
* [[autopano-sift]], [[autopano-sift-C]], [[panomatic]] or [[autopano]] for automatic creation of [[control points]].<br />
* [[nona]] for remapping input images and rendering output images.<br />
* [[enblend]] and [[enfuse]] for seamless blending of output images.<br />
<br />
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]].<br />
A PTStitcher replacement, called [[nona]] has been developed, supporting its most important features.<br />
<br />
Among the many flexible Hugin workflow options, it is possible to correct [[Exposure correction|exposure]], [[Vignetting]] and [[White balance]] between photos; generate [[HDR]] or [[Exposure blending|exposure blended]] output from [[bracketing|bracketed]] photos; or use [[16bit]] and [[HDR]] input data natively.<br />
<br />
== Hugin components ==<br />
<br />
The following tools are part of the hugin suite:<br />
<br />
* [[hugin]] the gui front end.<br />
* [[nona]] a command-line replacement for [[PTStitcher]].<br />
* [[fulla]] correction of [[barrel distortion]], [[chromatic aberration]] and [[vignetting]].<br />
* [[nona_gui]] a version of [[nona]] with simple GUI progress dialogs, similar to the windows version of [[PTStitcher]].<br />
* [[autooptimiser]] a tool with the same interface as [[PTOptimizer]] except using pairwise optimization which doesn't require any manual pre-placement.<br />
* [[align_image_stack]] a tool to automate the process to [[align a stack of photos]].<br />
* [[tca_correct]] a tool to automatically generate [[chromatic aberration]] correction parameters for use with [[fulla]].<br />
* [[MatchPoint|matchpoint]] feature identification.<br />
* [[pto2mk]] generation of Makefiles for command-line stitching.<br />
* [[vig_optimize]] command line tool to estimate photometric parameters.<br />
* [[hugin_hdrmerge]] merges multiple exposures to [[HDR]] using Khan anti-ghosting algorithm<br />
* [[hugin_stitch_project]] a GUI tool to stitch a single hugin .pto project.<br />
* [[celeste_standalone]] removes cloud-like control points from project files.<br />
* [[Hugin Batch Processor|PTBatcherGUI]] a GUI queue manager for stitching multiple hugin projects.<br />
* [[PTBatcher]] command-line access to the [[hugin Batch Processor]] stitching queue.<br />
* [[panoglview]] OpenGL panorama viewer stored in sourceforge SVN alongside [[hugin]] which must be built separately.<br />
* [[autopano-sift-C]] version of [[autopano-sift]] written in C, also needs to be built separately.<br />
<br />
More information, documentation and tutorials are available on the project website.<br />
<br />
== User interface ==<br />
<br />
* [[Hugin Main window]]<br />
* [[Hugin Assistant tab]]<br />
* [[Hugin Images tab]]<br />
* [[Hugin Camera and Lens tab]]<br />
* [[Hugin Crop tab]]<br />
* [[Hugin Control Points tab]]<br />
* [[Hugin Optimizer tab]]<br />
* [[Hugin Exposure tab]]<br />
* [[Hugin Stitcher tab]]<br />
* [[Hugin Batch Processor]]<br />
* [[Hugin Preferences]]<br />
* [[Hugin Preview window]]<br />
* [[Hugin Fast Preview window]]<br />
* [[Hugin Control Points table]]<br />
* [[Hugin Keyboard shortcuts]]<br />
<br />
== Development ==<br />
<br />
Hugin is Open Source, and like every community-developed software 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. Find more about the [[Development of Open Source tools|development process]].<br />
<br />
<br />
== See also ==<br />
* [[hugin FAQ]] Frequently asked questions about hugin<br />
<br />
== External links ==<br />
* [http://hugin.sourceforge.net hugin homepage] for Screenshots, Tutorials, Documentation and Links.<br />
* [http://sourceforge.net/projects/hugin hugin sourceforge project] for Downloads, Bug database and Feature requests.<br />
* [http://hugin.svn.sourceforge.net/viewvc/hugin/ sourceforge SVN] to browse the hugin sourcecode.<br />
* [http://groups.google.com/group/hugin-ptx hugin-ptx GoogleGroup] to contribute to development and peer support.<br />
<br />
== Supported operating systems ==<br />
* [[windows software|Windows]]<br />
* [[Unix software|Linux and Unix]]<br />
* [[Mac software|Mac OS X]]<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Pto2mk&diff=11377Pto2mk2009-04-15T14:33:25Z<p>Aston: basic page</p>
<hr />
<div>[[hugin]] is effectively an editor of .pto ''project files'', the actual stitching of the panorama is performed by a number of other tools such as [[nona]], [[enblend]], [[enfuse]], [[hugin_hdrmerge]] and [[exiftool]]. The advantage of this is that the hugin GUI can be closed during stitching, saving memory, or reused to work on the next project - Stitching can also be paused, deferred or shifted to another machine, even 'headless' servers can be used.<br />
<br />
The stitching process is not necessarily linear, some operations can be performed in any order and even in parallel, with lots of intermediary files that need to be cleaned-up afterwards. So the process of managing this is handled by [[w:make (software)]] a robust and lightweight scriptable tool.<br />
<br />
All this is concealed from the user when using the [[hugin]] GUI, [[hugin_stitch_project]] or the [[hugin Batch Processor]] to stitch a project. However the process can also be controlled on the command-line with the '''pto2mk''' tool.<br />
<br />
First create a ''Makefile'' containing all the rules necessary to stitch the project:<br />
<br />
pto2mk -o myproject.pto.mk -p myproject myproject.pto<br />
<br />
Then run the stitching process and clean-up afterwards like so:<br />
<br />
make -f myproject.pto.mk all clean<br />
<br />
== make options ==<br />
<br />
''make'' supports a large number of options, variables can be overridden by appending them to the command:<br />
<br />
make -f myproject.pto.mk ENBLEND='enblend -l 29' ENFUSE='enfuse -l 29'<br />
<br />
''make'' is capable of identifying rules than can be performed in parallel, so for a 16 core system this command will stitch using 16 parallel processes:<br />
<br />
make -j 16 -f myproject.pto.mk NONA='nona -t 1'<br />
<br />
For more advanced command-line stitching, a tool like [http://sourceforge.net/projects/distmake/ distmake] will manage a queue of ''Makefile'' stitching jobs, and even load-balance multiple machines over a network.<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Images_tab&diff=11376Hugin Images tab2009-04-15T12:12:55Z<p>Aston: /* Control points */</p>
<hr />
<div>The '''Images tab''' is used to manage the images in a [[hugin]] project. Additionally the positions of the images in the final panorama can be edited here.<br />
<br />
= Adding images =<br />
<br />
Images can either be added with the '''Add individual images...''' and '''Add time series of images...''' button or via drag and drop. '''Add time series of images...''' adds all images with a similar file modification time as the selected image; if the the project is empty then a file dialogue opens to allow you to pick this initial file.<br />
<br />
= Control points =<br />
<br />
Individual [[control points]] can be created and edited in the [[Hugin Control Points tab]], here in the '''images tab''' they can be manipulated together.<br />
<br />
Automatic creation of [[control points]] can be done by pressing the '''Create Ctrl Points''' button (if you select just some images, then control points will only be found for those selected). [[hugin]] will then launch [[autopano]] or [[autopano-sift]] and add the detected control points to the project. The [[Hugin Preferences]] determine which of these ''autopano'' programs should be used and set further autopano options. '''Remove Points''' does exactly what its name suggests, it removes control points between the selected images, or all control points if no image is selected.<br />
<br />
Often a project has many control points attached to clouds in the sky, this is usually unwanted as clouds move between photos. Clicking '''Run Celeste''' will attempt to identify 'sky' control points using the [[Using Celeste with hugin|celeste]] tool and delete them.<br />
<br />
= Image orientation =<br />
<br />
In the '''Image Orientation''' section, the position of the selected images in the final panorama can be specified by [[yaw]], [[pitch]] and [[roll]] angle (in degrees). The '''Reset''' button will reset all angles to zero. This is useful if the optimizer could not determine the image orientation well and got stuck with a suboptimal result. It is possible to select multiple images at the same time. Changes in orientation will be applied to all selected images<br />
<br />
Select '''Anchor this image for position''' to indicate that a particular image shouldn't move when<br />
optimising with the [[hugin Optimizer tab]]. Only one image can be the ''anchor'', and by default this<br />
is the first image in the project.<br />
<br />
= Exposure =<br />
<br />
Selecting '''Anchor this image for exposure''' will indicate that a particular image should be used as<br />
an unchanging reference ''anchor'' when optimising '''Exposure''' or '''White balance''' in the<br />
[[hugin Exposure tab]]. Usually this should be the image with the least under or over-exposure or<br />
the image with the most typical '''White balance'''.<br />
<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Hugin_Preferences&diff=11375Hugin Preferences2009-04-15T12:12:49Z<p>Aston: /* Celeste */</p>
<hr />
<div>= General =<br />
<br />
== Resource usage ==<br />
<br />
To speed things up [[hugin]] keeps a copy in memory of as many input photos as possible. With very large projects, this would use all your system memory, so set '''Image cache memory''' to a value below your available free RAM. The default of 200MB should be ok for a system with 512MB of RAM.<br />
<br />
The [[hugin Preview window]] is multi-threaded so can use more than one CPU/core if required. Set '''Number of CPUs''' to how many CPUs you wish to use.<br />
<br />
== User interface ==<br />
<br />
Usually, [[hugin]] will use the current locale to determine the language of buttons, menus etc...<br />
Set the '''Language''' if you need to switch languages temporarily or if you are using a platform<br />
such as Windows95 that doesn't support localised software. hugin won't change language<br />
immediately, you will need to stop and restart it.<br />
<br />
== File options ==<br />
<br />
Some [[hugin]] actions generate large temporary files, change the '''Tempdir''' to<br />
specify an alternative location for writing these files. One reason for setting this<br />
independently from the operating system would be to use a RAM disk to speed up<br />
stitching.<br />
<br />
<br />
<br />
= Assistant =<br />
<br />
The [[Hugin Assistant tab]] automates the entire panorama creation process, these<br />
settings allow you to customise the assistant.<br />
<br />
== Image loading ==<br />
<br />
Select '''Automatically align images after loading''' to run the second '''Align...'''<br />
step immediately after loading the images.<br />
<br />
== Auto align ==<br />
<br />
Auto align uses [[autopano-sift]] or [[autopano]] to generate [[control points]]<br />
between pairs of images, set '''Number of Ctrl Points per overlap''' to control<br />
the number of control points. Note that although most pictures can be stitched<br />
with just three or four control points, automatically generated points tend not<br />
to be very evenly distributed, so this number should be set to ten or more<br />
<br />
The size of the output '''Panorama Image Size''' is usually set in the<br />
[[Hugin Stitcher tab]] where it is also possible to '''Calculate Optimal Size'''<br />
based on the sizes of the input images. The '''Auto align''' process<br />
does something similar, though here you can set a smaller output as a percentage.<br />
Generally setting a percentage of 70% leads to no great loss of quality due to<br />
the way a camera [[CCD]] samples data.<br />
<br />
{{clr}}<br />
<br />
= Control Points Editor =<br />
<br />
== HDR and 16bit display mode ==<br />
<br />
[[hugin]] supports both [[HDR]] and [[16bit]] imaging. These image formats<br />
contain a lot more brightness and colour information than can be displayed<br />
on a standard computer monitor, so hugin only shows a rough representation<br />
of these pictures.<br />
<br />
16bit data can have ''linear'' or ''corrected'' [[gamma]]. Linear images<br />
appear very dark on many monitors, so set the '''Curve''' to '''gamma 2.2'''.<br />
<br />
For HDR data, try setting the '''Curve'''<br />
to '''logarithmic'''.<br />
<br />
Changes to the '''HDR and 16bit display mode''' require restarting hugin to<br />
take effect.<br />
<br />
== Finetune ==<br />
<br />
[[hugin]] helps position [[control points]] to within a fraction of a pixel distance automatically:<br />
<br />
* When '''auto fine-tune''' is selected in the [[hugin Control Points tab]] while picking control points.<br />
* When clicking '''Fine-tune''' in the [[hugin Control Points tab]]<br />
* When picking '''Fine-tune all Points''' in the [[hugin Main window]] '''Edit''' menu.<br />
<br />
* '''Patch width''', the size of the square of pixels taken from the left photo to match with the right photo when picking [[control points]], reduce if this is taking a long time on your system.<br />
* '''Search area width''', the percentage area of the right photo that is searched when picking '''control points''', reduce if this is taking a long time on your system.<br />
* '''Local search area width''', the region of the right photo searched when you click '''Fine-tune''' in the [[hugin Control Points tab]] or '''Fine-tune all Points''' in the [[hugin Main window]] '''Edit''' menu.<br />
* '''Correlation Threshold'''. For each '''Fine-tune''', [[hugin]] calculates the quality of the '''control points''' match, raise this threshold to reject dubious matches.<br />
* '''Peak Curvature Threshold''', Currently unused.<br />
<br />
== Rotation search ==<br />
<br />
Enable this if your photos:<br />
<br />
* have a very wide angle [[Field of View]] or [[fisheye Projection]].<br />
* are tilted up or down, [[control points]] near the [[zenith]] or [[nadir]] may need to have full 360 degree rotation search<br />
<br />
{{clr}}<br />
<br />
= Autopano =<br />
<br />
[[hugin]] uses an external tool for automatically creating [[control points]] for a set of images either when:<br />
<br />
* clicking '''2. Align...''' in the [[hugin Assistant tab]].<br />
* or clicking '''Create control points''' in the [[hugin Images tab]].<br />
<br />
Set the pull down menu to use the default configuration for one of these external tools:<br />
<br />
* [[Autopano]] (by A. Jenny), closed source, available for Linux i386 and Windows 32bit.<br />
* [[autopano-sift|Autopano-SIFT]] (by S. Nowozin), open source, available for Linux, Windows and OS X.<br />
<br />
Parameters for these tools can be customised or even switched to another similar tool (such as [[autopano-sift-C]]) in the remaining section. Typical tweaks might be to:<br />
<br />
* Set ''--noransac'' for [[autopano-sift]] when using non-[[rectilinear Projection]] input images.<br />
* Set ''--size'' for [[autopano-sift]] which by default downsizes images to 700 pixels before matching.<br />
<br />
= Enblend =<br />
<br />
In the final stitching process [[nona]] reprojects and distorts images to fit, [[enblend]] takes these<br />
images as individual [[TIFF]] files and merges them using sophisticated seam positioning and blending into<br />
a single finished TIFF file.<br />
<br />
The '''Use alternative Enblend program''' option allows you to use other tools with a similar interface<br />
such as [[smartblend]] or [[enblend-mask]].<br />
<br />
enblend supports a range of '''Additional arguments''', for example you may want to set:<br />
<br />
* '''-a''' Pre-assemble non-overlapping images to speed up blending. This is generally useful, but will slow blending in rare cases.<br />
* '''-l number''' Number of levels to use (1 to 29), larger numbers result in wider seams. E.g. setting 1 will result in a 2 pixel wide blend, 8 will result in a 256 pixel wide blend and you are extremely unlikely to want a blend level as high as 16.<br />
* '''-z''' Use LZW compression. The [[TIFF]] file format has a 2GiB limit (or 4GiB or 8GiB, depending on who you ask) so you will find this useful for large panoramas.<br />
* '''-b kilobytes''' Image cache block size (default=2MiB)<br />
* '''-c''' Use CIECAM02 to blend colors. Your input images need to have embedded [[Colour profile|colour profiles]] for this to work.<br />
* '''-m megabytes''' Use this much memory before going to disk (default=1GiB). Increase if you have a lot of memory on your system.<br />
* '''--fine-mask''' Enables detailed mask generation.<br />
* '''--no-optimize''' Turn off mask optimization.<br />
<br />
Note that setting '''Additional arguments''' here will only effect new projects, to change [[enblend]] and [[enfuse]] settings for the current project use the [[hugin Stitcher tab]].<br />
<br />
= Enfuse =<br />
<br />
If '''Exposure Blending''' is selected in the [[hugin Stitcher tab]] then [[enfuse]] will be used to merge bracketed exposures during stitching.<br />
<br />
= Celeste =<br />
<br />
Often a project has many control points attached to clouds in the sky, this is usually unwanted as clouds move between photos. [[Using Celeste with hugin|celeste]] will attempt to identify 'sky' control points and delete them. <br />
<br />
{{clr}}<br />
<br />
__NOTOC__<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Celeste_standalone&diff=11374Celeste standalone2009-04-15T12:11:42Z<p>Aston: basic page</p>
<hr />
<div>Control point generators are not very good at distinguishing between static objects, such as buildings, and objects that change quickly such as waves, foliage, clouds and people. This causes alignment problems, especially with clouds that can easily move several pixels between shots.<br />
<br />
'''Celeste''' is a new tool in [[hugin]] that has been trained using [[w:Support_vector_machine]] techniques to identify clouds in photos and remove control points from these areas. This functionality is available in the [[Hugin Images tab]] and described in the [[Using Celeste with hugin]] tutorial.<br />
<br />
'''celeste_standalone''' is a command-line tool with all the same functionality as Celeste in [[hugin]]. It has many options, but at its simplest can be used to just 'clean' an existing project file:<br />
<br />
celeste_standalone -i project.pto -o project.pto<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Hugin]]</div>Astonhttps://wiki.panotools.org/index.php?title=Using_Celeste_with_hugin&diff=11373Using Celeste with hugin2009-04-15T11:42:50Z<p>Aston: categorized</p>
<hr />
<div>Celeste is program used to remove cloud-like control points and can be run from within Hugin or from the command line. It was developed by Tim Nugent during Google's Summer of Code 2008.<br />
<br />
The problem is this: photo stitching software relies on objects within different images remaining in the same place. Control points are then used to match corresponding positons in each photo. However, panoramas are often captured over a number of minutes. During this time frame, non-static features such as clouds, water, and other objects (usually influenced by wind) may move significantly thus creating problems for automatic alignment tools. Should a control point be added to a cloud in photo A, the same cloud may have moved by the time photo B is taken, so the corresponding control point on the same cloud in photo B will actually be in the wrong position.<br />
<br />
To implement a solution to this problem, a classification algorithm called a Support Vector Machine was used. SVMs are binary classifiers, so the objective is to use one to make a simple call: is this control point on a cloud, or not. The SVM uses textural and colour information around the control point to make this judgement, based on what it has been trained to recognise. The training process involves providing labeled example of each category (cloud/non-cloud) so the SVM can learn to discrminate between them.<br />
<br />
There are a few ways of running Celeste; I’ll show you how to do so via the control point editor panel first.<br />
<br />
[[Image:Celeste_cpeditor_pre.jpg]]<br />
<br />
<br />
Select a pair of images. For these two in the example, there are 15 control points connecting the two images, 6 of which are on clouds - we want to get rid of these. Hit the ‘Run Celeste’ button and wait a few seconds. A message box should pop up saying how many control points have been removed:<br />
<br />
[[Image:Celeste_done.jpg]]<br />
<br />
Click OK then have another look at the control points. Of the 6 on clouds, 5 have been removed. In this example none of the non-cloud control points have been removed:<br />
<br />
[[Image:Celeste_cpeditor_post.jpg]]<br />
<br />
The only cloud control point remaining is actually on an airline exhaust trail (which, being a fairly straight line, is not very cloud-like). So we do pretty well here - 15/16 control points correctly classified is about 93% accuracy. This is a good example; under stringent 10-fold cross validation, Celeste was 82% accurate.<br />
<br />
You can also run Celeste from the images panel. Simply select the images that you want to run Celeste on (or select all of them) and hit the ‘Run Celeste’ button again. Exactly the same thing should happen - a message will pop up saying how many control points have been removed:<br />
<br />
[[Image:Celeste_images_panel.jpg]]<br />
<br />
There’s one more way of running it - right at the start on the assistant panel. After control points have been generated, Celeste will scan all the images and remove cloud-like control points from the whole set. To run Celeste this way open up the preferences panel and activate the ‘Automatically run Celeste..’ option. Then hit ‘Align’ on the assistant panel, and Celeste will run after control point generation:<br />
<br />
[[Image:Celeste_preferences.jpg]]<br />
<br />
And that’s it! There are a few other options on the preferences tab; to alter the sensitivity you can adjust the threshold value. The SVM will generate a score for each control point, where greater than 0.5 indicates a cloud. If you want to remove more control point reduce the threshold (try 0.4 to begin with), and raise it (e.g. 0.6) if you want to remove fewer. If there are lots of control points close to the image border, you may have more luck using the small filter size. In most cases you won’t need to adjust this though.<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Tutorial:Specialised]]</div>Astonhttps://wiki.panotools.org/index.php?title=Tca_correct&diff=11191Tca correct2009-03-31T16:21:15Z<p>Aston: typos</p>
<hr />
<div>'''tca_correct''' is a command-line tool shipped with [[hugin]] that can be used to automatically calculate lens [[TCA|chromatic aberration]] correction parameters. Ideal sample photos would have a lot of contrast over the entire image area, little saturated colour and no blown highlights.<br />
<br />
== Using with fulla ==<br />
<br />
[[fulla]] is a command-line tool for correcting [[lens distortion]], [[vignetting]] and [[TCA]] (chromatic aberration). It is capable of applying the full panotools polynomial to the red and blue channels, thereby correcting any transverse chromatic aberration.<br />
<br />
First calculate some TCA correction parameters for a sample image, notice that I'm only going to bother optimising ''b'' and ''v'' parameters in the [[lens correction model]], you might get better results with the full ''abcv'' set of parameters:<br />
<br />
tca_correct -o bv DSC_3194.ppm<br />
<br />
This outputs some fulla parameters like so:<br />
<br />
-r 0.0000000:0.0001197:0.0000000:0.9997630 -b 0.0000000:-0.0001142:0.0000000:1.0001841<br />
<br />
You can now use these with fulla when converting photos from this lens:<br />
<br />
fulla -r 0.0:0.0001197:0.0:0.9997630 -b 0.0:-0.0001142:0.0:1.0001841 -o corrected.tif DSC_3194.ppm<br />
<br />
== Using with dcraw ==<br />
<br />
[[dcraw]] is a command-line [[RAW]] converter with the ability to apply scaling of red/blue channels at the Bayer interpolation stage. Simple scaling is not as sophisticated as the panotools polynomial used in [[fulla]] but is good enough for nearly all purposes. Start by extracting a test image from a RAW file:<br />
<br />
dcraw DSC_3194.NEF<br />
<br />
Then run '''tca_correct''' on this PPM image, but tell it to only optimise ''v'' [[field of view]] for the red and blue channels:<br />
<br />
tca_correct -o v DSC_3194.ppm<br />
<br />
After a while some [[fulla]] correction parameters will be outputted:<br />
<br />
-r 0.0000000:0.0000000:0.0000000:1.0005943 -b 0.0000000:0.0000000:0.0000000:1.0008306<br />
<br />
The two useful numbers (1.0005943 and 1.0008306) are the inverse of the numbers required by dcraw, so get a calculator and calculate the reciprocal of each:<br />
<br />
1 / 1.0005943 = 0.999406<br />
1 / 1.0008306 = 0.999170<br />
<br />
Now when converting RAW files from this lens you can use the dcraw -C parameter to correct [[TCA]]:<br />
<br />
dcraw -C 0.999406 0.999170 [OPTIONS...] DSC_3194.NEF<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Hugin]]</div>Aston