Re: downsampling methods

Posted by Stephan Saalfeld on
URL: http://imagej.273.s1.nabble.com/downsampling-methods-tp3690444p3690449.html

Dear Gluender,

> as far as I can see your statement appears unfounded with respect to
> signal theory.
>
> Perhaps you refer to the "finite signal" involved with the discrete
> Fourier-Transformation, however I didn't speak of
> Fourier-Transformation but of the kind of band-limiting that must
> precede any subsampling.
>

The term downsampling is may be ambiguous.  If you understand
downsampling as subsampling, that is picking a single value from some
function, then, sure, the respective frequencies from that function have
to be removed to make Nyquist happy (or in more correct terms: to not
collect bogus values).

In the context of image processing, downsampling usually refers to
collecting the integral of that function which is in any case a
Gaussian.

Best,
Stephan


> >On Mon, 2009-11-16 at 11:52 +0100, Gluender wrote:
> >>  Just a note:
> >>
> >>  Downsampling at least in theory definitely requires a _real_ bandlimit.
> >>
> >>  That said, Gaussian lowpass filtering surely is not optimum because
> >>  per definition it doesn't really zero frequency components above the
> >>  Nyquist limit.
> >>
> >
> >This is correct for functions that are created through a spectral
> >generator which we assume is the case for an image when transferring it
> >to the frequency domain from it's intensity samples but in fact is not.
> >For an image captured with a camera it is just better to re-sample by
> >diffusion, that is through the focus of a Gaussian.
> >
> >Best,
> >Stephan
> >
> >>  >Hi Aviva,
> >>  >
> >>  >you should try Gaussian downsampling:
> >>  >
> >>  >In Fiji, there is a Javascript in PLugins->Examples->downsample
> >>  >explained at
> >>  >
> >>  >http://pacific.mpi-cbg.de/wiki/index.php/Downsample
> >>  >
> >>  >the same Javascript is at the ImageJ website
> >>  >
> >>  >http://rsb.info.nih.gov/ij/macros/js/Downsample.js
> >>  >
> >>  >or, alternatively a public API method in the packages of mpicbg_.jar
> >>  >that are part of Fiji, such that you can call it for a nopen Image, say,
> >>  >from Plugins->Scripting->BeanshellInterpreter:
> >>  >
> >>  >import ij.*;
> >>  >import mpicbg.ij.util.Filter;
> >>  >new ImagePlus( "downsampled", Filter.scale( IJ.getImage().getProcessor(),
> >>  >0.2f ) ).show();
> >>  >
> >>  >Lanczos being just an approximation of a bandpass filter in the
> >>  >frequency domain, you could also try to do the downsampling directly
> >>  >through that bandpass-filter, ImageJ has the respective functions.
> >>  >Depends very much on what you want.  For most cases, the Gaussian thing
> >>  >is just optimal.
> >>  >
> >>  >Best,
> >>  >Stephan
> >>  >
> >>  >
> >>  >
> >>  >On Mon, 2009-11-16 at 08:07 +0200, Aviva Vaknin wrote:
> >>  >>  Hello all!
> >>  >>
> >>  >>  I have implemented a Lanczos8 kernel convolution to downsample images
> >>  >>  which works well for 30-40 iterations.
> >>  >>
> >>  >>  After that ringing artifacts enter, even if I reduce a
> >>1600x1200 image one
> >>  >>  pixel
> >>  >>  each iteration.
> >>  >>
> >>  >>  Should this be occurring ? Is there a way around it ?
> >>  >>  Is there a better down sampling method for this type of problem ?
> >>  >>
> >>  >>  thanks,
> >>  >>  aviva
> >>
> >  > Best
>
> Best