[Insight-developers] GaussianFilter::NormalizeAcrossScale not good for scale space analysis

Bradley Lowekamp blowekamp at mail.nih.gov
Wed Nov 24 12:29:54 EST 2010


Luis,

Yes comparing the actual results to the theoretical one is the way to go.

I added a test to my topic branch which does this:
https://github.com/blowekamp/ITK/commit/fea94cfc99775abf8ee3f04169051bd8ee348b23

I closely followed section 13.1 in Lindeberg's book, where he illustrates the maximum of the normalized derivative is invariant to the scale. Specifically, the maximum value a normalize derivative of a Gaussian of a sin function is the independent of the frequency of that sin function as it achieves the same value. This property is critical for not preferring the size of one object over another during scale-space analysis, that is if I have a molecular disc or a planet, the normalized laplacian should be the same! This also implies that the smoothed or 0-order Gaussian does not get scaled.

I utilized the image:

f(x) = sin( w*x), where w is some frequency value.

It then follows that the scale-space representation is:

L(x; t) = e^(-w^2 * t / 2)*sin( w * x ), where t = sigma^2

Lindeburg goes on to show for any order derivative of any frequency, where in scale-space the maximum value occurs, and what that value is. The test I constructed verifies this theoretical result.

I am unsure what the expected values for you proposed impulse function would be, because it does not have a sufficiently sampled size. 


Brad

On Nov 23, 2010, at 12:24 PM, Luis Ibanez wrote:

> On Tue, Nov 23, 2010 at 11:21 AM, Bradley Lowekamp <blowekamp at mail.nih.gov> wrote:
> 
> My "n" refers to the order of the derivative not the dimension. This will perform exactly what is required for N-Dimensions of separated n-order derivatives.
> 
> 
>> 
>> So, by applying the current normalization, (if only
>> one Sigma per dimension) you end up with a 
>> Sigma^N normalization.
> 
> 
> We are talking about different Ns.
> 
> 
> 
> That clarifies my misunderstanding.
> 
> Can I suggest that we use "K" instead
> of "N" for the order for the derivative ?
> 
> 
> Scaling by:
> 
>                      Sigma^ K
> 
> where K is the order of the derivative,
> makes sense.
> 
> 
> I would suggest that we test this by 
> using an input image with an impulse
> 
> E.g. a image with all pixels set to zero,
> and a single pixel in the center, set to
> a nominal value (1000.0 for example ?).
> 
> In that way we should be able to verify
> the correct numerical behavior for every
> combination.
> 
> I'll take a closer look at your branch in 
> github.
> 
> 
>      Thanks
> 
> 
>           Luis
> 

========================================================
Bradley Lowekamp  
Lockheed Martin Contractor for
Office of High Performance Computing and Communications
National Library of Medicine 
blowekamp at mail.nih.gov


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20101124/fb5c6543/attachment.htm>


More information about the Insight-developers mailing list