----<br>As Chris mentioned, the filter Hessian3DToVesselnessMeasureImageFilter is a direct translation of the &quot;3D Line filter using Hessian Matrix&quot; from <a href="http://splweb.bwh.harvard.edu:8000/pages/papers/yoshi/node3.html#SECTION00021000000000000000">
http://splweb.bwh.harvard.edu:8000/pages/papers/yoshi/node3.html#SECTION00021000000000000000</a> .<br><br>It is intended for the extraction of tubular structures (blood vessels, bronchi..)<br><br>----<br><br>If you find the performance of the line filter unsatisfactory, you might want to look at the following application:
<br>&nbsp; <a href="http://itk.org/HTML/Curve3DExtraction.htm">http://itk.org/HTML/Curve3DExtraction.htm</a><br><br>This application is partly a superset of what you&#39;d do with the VesselenessMeasureImage Filter. It plots the each pixel in eigen space and then allows you to play with the region in eigen space where you&#39;d find tubular structures&nbsp; and discard noise by decreasing the depth of the frustum, away from the origin.
<br><br>Rephrased, both the vesseleness and the above application do the same upto a certain point :<br>&nbsp; ie both do<br>Scalar Image -&gt; Image with 3D Hessian matrix at each pixel -&gt; Eigen Values at each pixel .<br><br>
Tubular structures are pixels with a two large (negative) eigen values and a near zero eigen value. <br>&nbsp;- The vesselness filter (with some filtering) picks those pixels out for you.<br>&nbsp;- The Curves3DExtractor application will allow you to position a frustum in eigen space to interactively pick those out.
<br><br>----<br><br>HTH<br>-karthik<br><br><div><span class="gmail_quote">On 1/18/07, <b class="gmail_sendername">Chris McIntosh</b> &lt;<a href="mailto:cmcintos.sfu@gmail.com">cmcintos.sfu@gmail.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello,<br><br>To my knowledge the itk::Hessian3DToVesselnessMeasureImageFilter&lt; TPixel &gt;
<br>class will compute the Hessian, which can then be input to the<br>Hessian3DToVesselnessMeasureImageFilter in the ./Code/Basic filters.<br><br>It appears from its header file that it defaultly sets the output image type
<br>to: &quot;Image&lt; SymmetricSecondRankTensor&lt; ITK_TYPENAME<br>&lt;itkWin32Header_8h.html#a0&gt; NumericTraits&lt; ITK_TYPENAME<br>TInputImage::PixelType&gt;::RealType,<br>::itk::GetImageDimension&lt;TInputImage&gt;::ImageDimension &gt;,
<br>::itk::GetImageDimension&lt;TInputImage&gt;::ImageDimension &gt;&quot;<br><br>which is what&#39;s needed for the Hessian3DToVesselenssMeasureImageFilter<br><br><a href="http://www.itk.org/Doxygen/html/itkHessianRecursiveGaussianImageFilter_8h-source.html">
http://www.itk.org/Doxygen/html/itkHessianRecursiveGaussianImageFilter_8h-source.html</a><br><a href="http://www.itk.org/Doxygen/html/classitk_1_1Hessian3DToVesselnessMeasureImageFilter.html">http://www.itk.org/Doxygen/html/classitk_1_1Hessian3DToVesselnessMeasureImageFilter.html
</a><br><br><br>So in theory you need only do something *like* this: (note I have not<br>compiled or tested this)<br><br>typedef itk::HessianRecursiveGaussianImageFilter&lt; TInputImage &gt; hrgType;<br>typedef itk::Hessian3DToVesselnessMeasureImageFilter&lt; TypeOutputPixel&gt;
<br>hvmType;<br><br>hrgType::Pointer hessian = hrgType::New();<br>hessian-&gt;SetInput(reader-&gt;GetOutput()); //Pipe the reader into the<br>hessian filter<br>hessian-&gt;SetSigma(5.0);// Will find vessels of radius 5<br>
<br>hvmType::Poiner vesselFilter = hvmType::New();<br>vesselFilter-&gt;SetInput(hessian-&gt;GetOutput()); //Set the hessian as the<br>input to the vessel filter<br>vesselFilter-&gt;SetAlpha1(0.5);//<br>vesselFilter-&gt;SetAlpha2(
2.0);//<br><a href="http://splweb.bwh.harvard.edu:8000/pages/papers/yoshi/node3.html#SECTION00021000000000000000">http://splweb.bwh.harvard.edu:8000/pages/papers/yoshi/node3.html#SECTION00021000000000000000</a><br><br>writer-&gt;SetInput(vesselFilter-&gt;GetOutput());
<br>writer-&gt;Update();<br><br>For more details check the included ITK example in:<br>InsightToolkit-2.6.0-src/Examples/Filtering/VesselnessMeasureImageFilter.cxx<br><br>HTH,<br><br>Chris<br><br><br>؟¹µ؟اط wrote:<br><br>&gt; Hi all.
<br>&gt;<br>&gt; I am trying to compute 3D hessian matrix for vessel enhancement.<br>&gt;<br>&gt; I found some functions that are supposed to be useful for my goal.<br>&gt;<br>&gt; This is Hessian3DToVesselnessMeasureImageFilter in the ./Code/Basic
<br>&gt; filters.<br>&gt;<br>&gt; But, I don&#39;t know how to use it.<br>&gt;<br>&gt; Please show the way and Help me out.<br>&gt;<br>&gt; I&#39;m looking forward to your reply.<br>&gt;<br>&gt; Thank you.<br>&gt;<br>&gt;------------------------------------------------------------------------
<br>&gt;<br>&gt;_______________________________________________<br>&gt;Insight-users mailing list<br>&gt;<a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br>&gt;<a href="http://www.itk.org/mailman/listinfo/insight-users">
http://www.itk.org/mailman/listinfo/insight-users</a><br>&gt;<br>&gt;<br>_______________________________________________<br>Insight-users mailing list<br><a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br>
<a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a><br></blockquote></div><br><br>