<br>Hi Luis,<br><br>Looks like I am terribly missing something here...<br><br>OK. For my testings I built objects with Gaussian profiles.<br>These are simple: Gaussian lines with various sigmas extruded <br>into Z-direction thus I got &quot;Gaussian planes&quot;.<br>
Objects: 3D Gaussian planes with Sigma=1,2,3,4,5,10 and intensities I=100.<br><br>Now I use RecursiveGaussians and HessianRecursiveGaussian from the ITK stock library<br>and calculate the second order derivative across the Gaussian profiles:<br>
 Hxx -- Hessian x-components, Gxx - Gaussian second order derivative,<br>and GxGx - Gaussian second order derivative taken sequentially as Gx(Gx) <br>using Gaussian first order derivative.<br><br>Of course, all that was done with &quot;NormalizeAcrossScale&quot; ON and OFF.<br>
Afterwards the maximum of absolute values were measured.<br>The results I summarized in the table below.<br><br>Sigma    ITK_Hxx_OFF    ITK_Gxx_OFF    ITK_Hxx_ON    ITK_Gxx_ON    ITK_GxGx_OFF    ITK_GxGx_ON<br><br>1                 35.77                 35.77                   35.77           35.77                   19.47               19.47<br>
2                  8.92                   8.92                    71.33          71.33                     4.87               19.47<br>3                   3.96                  3.96                  106.95         106.95                    2.16                19.47<br>
4                   2.23                  2.23                  142.56         142.56                    1.22                19.47<br>5                   1.43                  1.43                  178.18         178.18                    0.78                19.47<br>
10                 0.36                  0.36                   356.29        356.29                    0.19                19.47<br><br><br>As you can see from the table, Hxx is always equal to Gxx for both  &quot;NormalizeAcrossScale&quot; ON and OFF.<br>
Ok. No surprises here. So far so good. <br>Should not be the values Scale indipendent though?<br><br>Well, now lets take the second order derivative sequentially using Gx(Gx).<br>Now there is a dramatic difference here.<br>
a) GxGx values do not match Gxx and Hxx anymore.<br>b) &quot;ITK_GxGx_ON&quot; version apparently demonstrates Scale Space invariance as it should be.<br><br><br>Luis, I would highly appreciate any comments on that.<br><br>
Best regards,<br><br>Alex<br><br><br><div class="gmail_quote">On Fri, Dec 11, 2009 at 7:39 PM, Luis Ibanez <span dir="ltr">&lt;<a href="mailto:luis.ibanez@kitware.com">luis.ibanez@kitware.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Alex,<br>
<br>
<br>
The order for the Hessian follows the same<br>
pattern of the class<br>
<br>
   Insight/Code/Common/<br>
          itkSymmetricSecondRankTensor.h<br>
<br>
The elements store only the upper right triangle<br>
of the actual matrix.<br>
<br>
For example, in 3D you get<br>
the following pattern<br>
<br>
                0  1  2<br>
                    3  4<br>
                        5<br>
<br>
All that to say:<br>
<br>
   Yes,<br>
   the order that you are using is correct:<br>
<br>
                Dxx  Dxy    Dxz<br>
                         Dyy   Dyz<br>
                                  Dzz<br>
<br>
<br>
BTW:<br>
You may want to use (or at least look) the filter:<br>
<br>
   Insight/Code/BasicFilters/<br>
        itkHessianRecursiveGaussianImageFilter.h<br>
<br>
<br>
<br>
     Regards,<br>
<br>
<br>
             Luis<br>
<br>
<br>
---------------------------------------------------------------<br>
<div><div></div><div class="h5">On Fri, Dec 11, 2009 at 12:33 PM, Oleksandr Dzyubak &lt;<a href="mailto:adzyubak@gmail.com">adzyubak@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; Dear users,<br>
&gt;<br>
&gt; After I built the individual Hessian components,<br>
&gt; in what order should I fill them up to further feed<br>
&gt; into the SymmetricEigenAnalysisImageFilter?<br>
&gt;<br>
&gt; At the moment I am using the order below.<br>
&gt;<br>
&gt; H[0] = Dxx<br>
&gt; H[1] = Dxy<br>
&gt; H[2] = Dxz<br>
&gt; H[3] = Dyy<br>
&gt; H[4] = Dyz<br>
&gt; H[5] = Dzz<br>
&gt;<br>
&gt; Is this correct order?<br>
&gt;<br>
&gt; Thanks,<br>
&gt;<br>
&gt; Alex<br>
&gt;<br>
&gt;<br>
</div></div><div><div></div><div class="h5">&gt; _____________________________________<br>
&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;<br>
&gt; Visit other Kitware open-source projects at<br>
&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;<br>
&gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt; <a href="http://www.kitware.com/products/protraining.html" target="_blank">http://www.kitware.com/products/protraining.html</a><br>
&gt;<br>
&gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;<br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;<br>
</div></div></blockquote></div><br>