PanoTools mailing list archive

Mailinglist:PanoTools
Sender:JD Smith
Date/Time:2004-Nov-29 06:54:13
Subject:Re: My attempt to eliminate vignetting effect

Thread:


PanoTools: Re: My attempt to eliminate vignetting effect JD Smith 2004-Nov-29 06:54:13
On Thu, 25 Nov 2004 04:16:22 -0700, neugierigru wrote:
> I have uploaded description of my method to the
> http://mivasden.nm.ru/vignetting/
> This really works (sure, why not) but I have the suggestion for the
> experienced programmers - may be this method can be implemented in the
> PanoTools? Together with transforming the images they can be adjusted in
> brightness as well, and this would be nice because of less images
> transformations.
> I think it is possible to determine the necessary adjustment level
> because all needed information can be extracted from the original images
> form overlapping areas.
> Sorry for my English.

This sounds like an interesting technique which could be incorporated
into panotools/enblend.  Essentially, what you're doing (in a very
clever manual way), is estimating some radial function which, when
divided (or multiplied) into each image, removes mis-matches in
overlapping segments.  Enblend assumes nothing about the spatial shape
of any mismatches among the images it blends.  It *only* assumes that
structures with low spatial power can accomodate blending over large
distances, and structures with high spatial power must be blended over
very small distances.  If enblend (or another pre-blending tool) knew
that the departure of images from their correct value was radially
symmetric, it could be much more clever about the type of correction
it makes, and attempt to estimate at least roughly the form of the
radial function which best corrects the images.

The problems will come from mis-registration, which can result in
large spurious differences, e.g. a moving tree limb.  Enblend is
already well setup to handle this.  By making the further good
assumption that the effect of vignetting is relatively smooth radially
(no kinks or steps), one or more of the low spatial power pyramid
images could be used to estimate a function to pre-divide all images
by before the more traditional blending is performed.  In addition to
allowing the shape of the image to vary, permitting a single absolute
scaling constant to allow the entire correction function to "breathe"
up and down will neatly accomodate image-to-image exposure changes as
well.

The big technical hurdle will be that currently enblend knows nothing
about the original, pre-transformation image coordinate system.  The
approximately radial vignetting fall-off occurs in the original image,
not the post PanoTools transformed coordinate system.  Either enblend
would have to be fed that information, and understand the mapping of a
radial profile to the final equirectangular/cylindrical/
etc. coordinate system, or, probably more preferrably, hugin/PanoTools
would have to incorporate the Gaussian blur pyramid and the fitting
function or optimization for determining the best radial vignetting
profile to use.

Another, cheaper option would be for hugin/etc. to fit a surface of
image value ratio vs. the two radial distances, heavily trimming
outliers to eliminate spurious mismatches (moving limbs), to find the
best fitting function:

Z(r1,r2)=f(r1)/f(r2)

where the radial vignetting correction function is:

f(r)=a_0*(1 + a_1 r + a_2 r^2 + a_3 r^3)

Note that you can't estimate f(r) directly using overlapping images in
a panorama, but you can do so indirectly through Z(r1,r2).  The
fundamental thing is that f(r)/a_0 is exactly the same in all images
(if not then you might as well go back to normal enblend).  Actually
applying this function during the blend would best be left for
enblend, where images can be worked with in floating point.

Thoughts?

JD



------------------------ Yahoo! Groups Sponsor --------------------~--> 
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/.Cr1lB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/PanoTools/

<*> To unsubscribe from this group, send an email to:
    #removed#

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 





Next thread:

Previous thread:

back to search page