+1 most of the time, but not all the time.
> As an addition to what Gerry said about hand-held images: You can use
> align_image_stack to perfectly align your bracketed photos before fusing
> them. The better fusing gui's come with align_image_stack and do support
> that.
my wish is to eventually have a "composing GUI" to deal with the
"sequence of images" - whatever that sequence is.
constrains and actions are boxes of different sizes, that the user can
drag and drop on the working surface; and that smart logic can auto-create.
actions are things like:
- determine CP
- add masks
- blend / fuse
- optimize position in space
- manual edit of individual parameters
- remap
- forks (to have mutliple processing, e.g. for different outputs from
the same project)
constraints are things like:
- defining which images belong to a bracket and what type of bracket it is
- which images share the same set of parameters
- areas/mask of an image not to be considered for CP generation
- areas/mask fo an image that *must* be preserved or *must* be hidden
a GUI to move around and connect the boxes with a little bit of logic to
make sense of the connections (e.g. don't blend a single image or don't
enfuse images with same EV) sort of like a syntax checker before a
controller engine starts the different tools in the appropriate order
and with the appropriate parameters.
Ideally the interface between the GUI and the controller engine would be
an XML file, although if the GUI understands the Makefile format it
could create a Makefile directly, but that would make the Makefile part
of the project and I am not sure how it will affect the projects in
terms of portability to a different box? rather go safe, describe it in
an XML and have an XML to MakeFile thing...
Yuv
I'm getting highlight banding artifacts when fusing (to 16-bit
TIFF) before making the panorama. See e.g. the top left corner
of http://static.panoramio.com/photos/original/10143416.jpg
--
Markku Kolkka
markku...@iki.fi
There are a number of pros and cons.
IF the bracketed shots were taken using a (good) tripod,
the images can be fused prior to stitching.
However, this makes subsequent use of exposure optimisation
in hugin "questionable", since the numerical basis of the optimisation
is destroyed by the (clever and generally desirable) things enfuse does.
The other possibility is that fusing is on a PER shot basis, and may
create edge conditions between successive shots in the panorama
that might cause difficulties for enblend.
However, post-fusing requires the shots to be aligned.
One way round this is to create a hugin project of the
"middle" exposure in the bracket set, and then use this
as a template for the more extreme exposures. This avoids
the difficulties of placing control points on the extreme
exposures at the ends of the bracketing. This only works
for tripod-taken sets.
Finally, pre fusing IS computationally efficient; if you repeatedly
"tweak" your panorama project, having all the fusing done as a pre-stage
is clearly efficient. Further, fusing a bracketed set of
stitched panoramas is a massively RAM intensive activity, whereas
fusing the shots separately might well fit in RAM.
BugBear (pre fuser, on balance)
i have a series of image stacks i'd like to stitch and fuse, so stack1_0
.. stack 1_6 until stack7_6. the thing is, the images are pretty dark,
so automatic control point generation does a very bad job using all the
images. align_image_stack however manages to align my stacks pretty well
(they are shot with a bad tripod, so a little alignment is needed)
but everything align_image_stack can give me is a complete .hdr, (which
is, as far as i know, bad input to enfuse) a set of remapped images
(which i don't need as i want to remap them later, aligned in total) or
a pto file that holds information about the image offsets.
seems that the latest is just what i need, but then, is there a method
of merging these pto files together in a way that the images will "stick
together"?
to get proper results, atm i only see one solution:
- take the brightest set of images, generate control points, align them
- starting from the brightest image, use align_image_stack to align each
whole stack to a .pto file
- manually add up the translations calculated by align_image_stack to
all further images and insert them into the big .pto from the beginning
- run enfuse and enblend.
definitely not the best way. are there scripts oder other tricks that
will help?
thanks,
Benjamin
Yes, you could use ptomerge (from Panotools::Script) to join all the
projects created by align_image_stack with a project created by
autopano-sift-c or panomatic.
>to get proper results, atm i only see one solution:
>
>- take the brightest set of images, generate control points, align them
>- starting from the brightest image, use align_image_stack to align each
>whole stack to a .pto file
>- manually add up the translations calculated by align_image_stack to
>all further images and insert them into the big .pto from the beginning
This is exactly what the match-n-shift --stacks option does (also
from Panotools::Script).
i.e. something like this in the hugin preferences should do what you
want:
AutopanoExe=match-n-shift
Args=-b -a -f %f -v %v -c -p %p -o %o %i
--
Bruno
Are you fully satisfied with align_image_stack? I have noticed some
complaints as well as much praise in the lists.
Not being a user of
it myself, but interested in image alignment problems as a developer,
I wonder if you or others could suggest what are its main
limitations?
I imagine a fine-aligner using correlation (as opposed
to control points) might be a helpful addition to align_image_stack.
Or does it already do that?
Regards, Tom
>Are you fully satisfied with align_image_stack? I have noticed some
>complaints as well as much praise in the lists. Not being a user of
>it myself, but interested in image alignment problems as a developer,
>I wonder if you or others could suggest what are its main
>limitations?
As far as I'm concerned this is largely a solved problem. hugin
doesn't yet have the ability to hard-link the positions of photos in
a stack, but align_image_stack does a good job of doing this linking
with control points - With the added advantage of dealing with
slight misalignments, up to and including my sloppy hand-held
bracketing.
The disadvantage is that align_image_stack takes some amount of time
and that the control-points it generates slow down the optimiser.
However, there is probably an order-of-magnitude speed increase
available in the hugin workflow, but I'm sure it isn't here.
Otherwise there are two important hugin options that we don't yet
have that will be relatively simple to add with some extra Makefile
rules:
1. enfusing stacks as the first step before remapping with nona.
2. enfusing exposure layers as the last step after blending with
enfuse.
For (1) to work sensibly, it should only happen when the photos are
known to be exactly aligned, James is working on a GUI and backend
to allow specifying and optimising this (or rather unspecifying, as
stacks are easy to detect by looking at EXIF data, the distinction
is whether or not they are exact stacks or not).
>I imagine a fine-aligner using correlation (as opposed to control
>points) might be a helpful addition to align_image_stack. Or does
>it already do that?
align_image_stack uses the same pixel correlation as the hugin
fine-tune, which is why it is much faster than a control point
matcher.
Have you tried match-n-shift where all this is implemented? Though
James has convinced me that most of this logic should be in hugin
itself rather than in a separate control-point generator.
--
Bruno
i wrote some scripts to ease the extraction of different levels of 8-bit
pngs from 14-bit raws, then creating ptos for each stack, i think
panotools-script could be enhanced with scripts like these (mine are
definitely not for other eyes, because of the code quality ;))
>> This is exactly what the match-n-shift --stacks option does (also
>> from Panotools::Script).
>>
>> i.e. something like this in the hugin preferences should do what you
>> want:
>>
>> AutopanoExe=match-n-shift
>> Args=-b -a -f %f -v %v -c -p %p -o %o %
i will also give that a try, last time i built hugin was without
match-n-shift, so next time my cpu is idle i will try it...
thank again,
Benjamin
I imagine that last word should be "enblend" :-)
BugBear
Yes, or "confuse".
--
Bruno
It generates control points because it uses the hugin optimiser to
do the alignment (which is also why it accepts projection and field
of view parameters).
>Is this done in such a way as to allow some warping as well as simple
>shifting in the final alignment step?
The alignment uses the usual roll, pitch, yaw and fov distortion.
>That is, are the CP's based only or mainly on local shifts?
No idea, the image is divided up into a grid and a feature detector
tries to place an even distribution of points over the image area.
In practice, with the -p option it behaves like a control point
generator that only works with stacked photos, but which produces
very few 'bad' points and which works very well with large exposure
differences.
--
Bruno
This description is correct. Note that align_image_stack was really
written more like a proof of concept and is not really well optimized.
Actually, the implementation of the normalized cross correlation in
hugin is very basic and thus quite slow. Replacing it with a properly
optimized version (I believe opencv has a nicely optimized correlator)
would make both align_image_stack and the fine tune functionality much
faster.
ciao
Pablo
Bruno Postle wrote
regards
Joachim