AW: [Insight-users] GradientRecursiveGaussianImageFilter

Luis Ibanez luis . ibanez at kitware . com
Mon, 29 Sep 2003 10:01:00 -0400


Hi Zein,

The option

       SetNormalizeAcrossScale

in the GradientRecursiveGaussian filter is not
intented to produce vectors of magnitude == 1.
What it does is to include (or not) a "sigma"
value in the normalization factor of the Gaussian
kernel. This extra sigma allows to compare the
results of filtering among different scales and
it is typicaly needed in Scale-Space analysis.
This is explained in the SoftwareGuide,
    http://www . itk . org/ItkSoftwareGuide . pdf
Section 6.5 pdf-page 172.

You can easily write a normalization filter using
the UnaryFunctorImageFilter.  Or you could use an
ImageAdaptor as explained in the SoftwareGuide.
    http://www . itk . org/ItkSoftwareGuide . pdf
Chapter 12, pdf-page 521-532

In particular look at section 12.4, pdf-page 528.



Regards,


    Luis



--------------
salah wrote:
> Hi Luis,
> 
> Can I force the filter to produce normalized graiendt 
> vectors (sqrt (sum of squares) = 1 ) ?
> Does the method "SetNormalizeAcrossScale" have to do 
> with this matter?
> 
> Thanks,
> 
> Zein
> 
> 
> 
>>-----Ursprüngliche Nachricht-----
>>Von: Luis Ibanez [mailto:luis . ibanez at kitware . com]
>>Gesendet: Sonntag, 28. September 2003 17:04
>>An: salah
>>Cc: ITK Users
>>Betreff: Re: [Insight-users] GradientRecursiveGaussianImageFilter
>>
>>
>>
>>Hi Zein
>>
>>1) Yes, the output of the GradientRecursiveGaussian filter
>>    is an image of vectors representing the gradient of the
>>    intensity values in the image. (covariant vectors to be
>>    precise).
>>
>>http://www . itk . org/Insight/Doxygen/html/classitk_1_1GradientRe
>>cursiveGaussianImageFilter.html
>>
>>
>>2) Yes, this filter take the spacing into account. The gradient
>>    is reported as the variation of intensity per unit of spacing.
>>    e.g.   graylevel / millimeters.
>>
>>   This means that if we have two images A and B with the same
>>   intensity pattern, and image A has double the spacing of
>>   image B, then the gradients computed from A will have half the
>>   value of the equivalent gradients computed from B.
>>
>>   That's the reason why the gradient must be represented by
>>   itk::CovariantVectors instead of itk::Vectors.
>>
>>
>>
>>Regards,
>>
>>
>>
>>   Luis
>>
>>
>>
>>
>>------------------
>>
>>salah wrote:
>>
>>>Hello all,
>>> 
>>>The output of the GradientRecursiveGaussianImageFilter is a vector
>>>image that represents the gradient of the input image. Is this true?
>>> 
>>>Does this filter take image spacings into account? In other 
>>
>>words, are
>>
>>>the gradient values measured in pixel units or real distance units?
>>> 
>>>Many thanks,
>>>Zein
>>>
>>
>>
>>
>>
>>