I found a gaussian pyramid implementation in a MOPS paper (feature detection). They use sampling rate $s=2$ and $\sigma=1$ - i.e. to generate a new level of the pyramid, the current level is smoothed with Gaussian blur of that sigma and then subsampled. The same parameters are used to build each new level.

However, I need to use smaller sampling rates, e.g. $s=1.5$, to get more pyramid levels (non-integer sampling rates would be achieved by interpolation).

How to choose appropriate sigma, knowing the sampling rate?

My first guess is to use $\sigma=\sqrt{s/2}$, since the variance of the gaussian filter is half the sampling rate (radius) and sigma (standard deviation) is square root of that quantity. But I am not sure if that's correct.

In another words: Given a sampling rate, I need to pick gaussian blur sigma preventing aliasing.

  • $\begingroup$ Why more pyramid levels? $\endgroup$ – geometrikal May 24 '16 at 23:50
  • $\begingroup$ @geometrikal Because the feature detector is very sensitive to scale change so I need many scales to make it effectively scale-invariant. It would be better to use something like SIFT, which find maxima in both space and scale, but for now I need something simple. $\endgroup$ – Libor May 26 '16 at 7:38

I've spent a bit of time searching for an answer to this as well.

I suspect since the Gaussian kernel has infinite support there will always be a little bit of aliasing, as there will always be frequencies passed that are greater than 0.25 of the sampling rate. That is, in the upper half of the spectrum.

So one would choose $\sigma$ to keep the amount of energy in the aliased bands to an acceptable level. Using $\sigma = 0.25 f_s$ would give 68%, $2\sigma = 0.25 f_s$ would give 95%, and so on.

From wikipedia:

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.