Am 01.03.21 um 14:10 schrieb Monkey:

>  > and it's use of image pyramids relies on a variant of image pyramids
> based on b-splines.
>
>  > To me, the implementation of the Burt/Adelson Algorithm is a
> major breakthrough.
>
> Is there a simple way to explain how this/these differ from a standard
> Laplacian pyramid?

My code uses a different pyramid generation scheme for the gaussian pyramids. The laplacian pyramids are not made explicit but calculated on-the-fly by functor composition - the result is the same, the difference between a scaled-up 'top' level and the unmodified 'bottom level' at every stage - but the process is less memory-hungry and uses vspline's fast multithreaded SIMD code to do the operation in one go.

Standard gaussian pyramids have a set of samples at each level. To get the next smaller level ('reduce' stage), a digital low-pass filter is applied - usually a small-kernel FIR filter - and the result is decimated, discarding every other sample. Everything works along the initial sampling grid, every pyramid stage is precisely half as large as the previous. The 'expand' stage uses the same FIR filter for upscaling from a grid filled with zeros where only every other sample is filled in from the 'top' level.

My pyramid technique has a b-spline at each level. This is a continuous function, and low-pass-filtering is done by modifications of the b-spline evaluation function; the resulting (continuous) low-pass signal can then be sampled at arbitrary positions. This method is grid-free: you can choose decimation steps different from two, and you're free to place the samples which the smaller-level spline is built from in off-grid positions. I use this in pv to get a set of splines which have the same boundary behavior, so by slotting in a simple shift+scale, I can evaluate them with the same coordinates at every level, which simplifies the code a great deal. The 'expand' stage of the pyramid uses simple b-spline evaluation, which is good for upscaling a signal.

pv offers the parameter 'pyramid_scaling_step' which allows you to build 'steeper' or 'shallower' pyramids scaling each level with an arbitrary real factor - 2.0 by default, but sensible values go down to, say, 1.1. you can simply try it out and see if it makes any difference - the effect is subtle and hard to spot unless you know what to look for, if you're interested I can say more about it.

Employing my spline-based pyramid technique to implement an equivalent of the 'classic' Burt and Adelson (B&A) approach is experimental, but with the latest pv commits I provide a working implementation so it can be evaluated and experimented with, to see where it's advantages and disadvantages are, and to figure out where my initial choices in mimicking the B&A algorithm can be improved. It may well turn out to be inferior to the classic approach - the intention in pv is to produce 'decent' stitches and expoure fusions for the currently displayed view - if I can get the quality up to a level which approaches the standard technique, this would be great, but I'm not making such claims yet.

To sum it up: The main difference to 'classic' pyramids and B&A in the current pv code is the off-grid evaluation for up- and downsampling, arbitrary scaling factor from one pyramid level to the next, use of a small binomial FIR filter (.25, .5, .25) for low-pass filtering, and use of b-spline evaluation for upsampling.

I hope this answers your question - the B&A algorithm and image pyramids are quite involved stuff, and it's hard to explain the differences 'simply' because the algorithm in itself is not simple.

Kay

--
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
--- You received this message because you are subscribed to the Google Groups "hugin and other free panoramic software" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/hugin-ptx/4aa29bee-1563-3ea0-4080-5d091a838e4a%40yahoo.com.
  • [hugin-ptx] Im... 'kfj' via hugin and other free panoramic software
    • Re: [hugi... Harry van der Wolf
      • Re: [... 'Kay F. Jahnke' via hugin and other free panoramic software
        • R... Monkey
          • ... T. Modes
            • ... 'Kay F. Jahnke' via hugin and other free panoramic software
          • ... 'Kay F. Jahnke' via hugin and other free panoramic software
        • R... Harry van der Wolf
          • ... 'Kay F. Jahnke' via hugin and other free panoramic software
            • ... Harry van der Wolf
              • ... 'Kay F. Jahnke' via hugin and other free panoramic software
                • ... yuv
                • ... 'Kay F. Jahnke' via hugin and other free panoramic software
                • ... yuv
                • ... Monkey
                • ... 'Kay F. Jahnke' via hugin and other free panoramic software
                • ... Harry van der Wolf

Reply via email to