[Insight-users] Hessian format for SymmetricEigenAnalysisImageFilter

Iván Macía imacia at vicomtech.org
Mon Jan 4 06:15:24 EST 2010


Hi Oleksandr,

 

I missed this post some time ago. Have you compared by any chance these
results to those of the Discrete Gaussian equivalents so we can also check
their coherency?

http://www.itk.org/Doxygen316/html/classitk_1_1DiscreteGaussianDerivativeIma
geFilter.html (and related classes)

http://www.itk.org/Doxygen316/html/classitk_1_1DiscreteHessianGaussianImageF
unction.html

 

Do you have those Gaussian datasets / programs available?

 

Regards

 

Iván

 

 

 

De: insight-users-bounces at itk.org [mailto:insight-users-bounces at itk.org] En
nombre de Oleksandr Dzyubak
Enviado el: martes, 15 de diciembre de 2009 1:31
Para: Luis Ibanez
CC: insight-users at itk.org
Asunto: Re: [Insight-users] Hessian format for
SymmetricEigenAnalysisImageFilter

 


Hi Luis,

Looks like I am terribly missing something here...

OK. For my testings I built objects with Gaussian profiles.
These are simple: Gaussian lines with various sigmas extruded 
into Z-direction thus I got "Gaussian planes".
Objects: 3D Gaussian planes with Sigma=1,2,3,4,5,10 and intensities I=100.

Now I use RecursiveGaussians and HessianRecursiveGaussian from the ITK stock
library
and calculate the second order derivative across the Gaussian profiles:
 Hxx -- Hessian x-components, Gxx - Gaussian second order derivative,
and GxGx - Gaussian second order derivative taken sequentially as Gx(Gx) 
using Gaussian first order derivative.

Of course, all that was done with "NormalizeAcrossScale" ON and OFF.
Afterwards the maximum of absolute values were measured.
The results I summarized in the table below.

Sigma    ITK_Hxx_OFF    ITK_Gxx_OFF    ITK_Hxx_ON    ITK_Gxx_ON
ITK_GxGx_OFF    ITK_GxGx_ON

1                 35.77                 35.77                   35.77
35.77                   19.47               19.47
2                  8.92                   8.92                    71.33
71.33                     4.87               19.47
3                   3.96                  3.96                  106.95
106.95                    2.16                19.47
4                   2.23                  2.23                  142.56
142.56                    1.22                19.47
5                   1.43                  1.43                  178.18
178.18                    0.78                19.47
10                 0.36                  0.36                   356.29
356.29                    0.19                19.47


As you can see from the table, Hxx is always equal to Gxx for both
"NormalizeAcrossScale" ON and OFF.
Ok. No surprises here. So far so good. 
Should not be the values Scale indipendent though?

Well, now lets take the second order derivative sequentially using Gx(Gx).
Now there is a dramatic difference here.
a) GxGx values do not match Gxx and Hxx anymore.
b) "ITK_GxGx_ON" version apparently demonstrates Scale Space invariance as
it should be.


Luis, I would highly appreciate any comments on that.

Best regards,

Alex



On Fri, Dec 11, 2009 at 7:39 PM, Luis Ibanez <luis.ibanez at kitware.com>
wrote:

Hi Alex,


The order for the Hessian follows the same
pattern of the class

  Insight/Code/Common/
         itkSymmetricSecondRankTensor.h

The elements store only the upper right triangle
of the actual matrix.

For example, in 3D you get
the following pattern

               0  1  2
                   3  4
                       5

All that to say:

  Yes,
  the order that you are using is correct:

               Dxx  Dxy    Dxz
                        Dyy   Dyz
                                 Dzz


BTW:
You may want to use (or at least look) the filter:

  Insight/Code/BasicFilters/
       itkHessianRecursiveGaussianImageFilter.h



    Regards,


            Luis


---------------------------------------------------------------

On Fri, Dec 11, 2009 at 12:33 PM, Oleksandr Dzyubak <adzyubak at gmail.com>
wrote:
>
> Dear users,
>
> After I built the individual Hessian components,
> in what order should I fill them up to further feed
> into the SymmetricEigenAnalysisImageFilter?
>
> At the moment I am using the order below.
>
> H[0] = Dxx
> H[1] = Dxy
> H[2] = Dxz
> H[3] = Dyy
> H[4] = Dyz
> H[5] = Dzz
>
> Is this correct order?
>
> Thanks,
>
> Alex
>
>

> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20100104/2766beb7/attachment-0001.htm>


More information about the Insight-users mailing list