[Insight-users] enhancing plate like structures (by modifying itkHessianSmoothed3DToVesselnessMeasureImageFilter)
Dr. Roman Grothausmann
grothausmann.roman at mh-hannover.de
Fri Sep 7 10:41:14 EDT 2012
Dear Luca,
Thanks for looking into this. It seems that the reason I got exactly the
same results for dim 1 or 2 was related to an older ITK installation
(3.16) on a machine that has a lot of RAM. When I tried it on a PC with
itk 3.20.1 with a smaller dataset I got different results for dim 1 or 2
which look as expected.
Now I have to play around with the parameters a bit. I'll use
vmtkobjectenhancement for this.
Again, many thanks for looking into this and Your contribution
Roman
On 06/09/12 12:50, Luca Antiga wrote:
> Dear Roman,
> I ran the itkHessianToObjectnessMeasureImageFilter with m=0, 1, 2
> and the following parameters:
> sigma 1.0
> alpha 0.5
> beta 0.5
> gamma 5.0
> on a test image. It looks to me that the filter behaves as expected.
>
> You can find the input image and the corresponding results here:
> https://dl.dropbox.com/u/6585423/object_enhancement.zip
>
> To get to this quicker I used the version in vmtk, which is analogous
> to that in Code/Review. The vmtk script is
>
> vmtkobjectenhancement -ifile foo.mha -ofile foo_0.mha -dimension 0
> vmtkobjectenhancement -ifile foo.mha -ofile foo_1.mha -dimension 1
> vmtkobjectenhancement -ifile foo.mha -ofile foo_2.mha -dimension 2
>
> Hope this helps
>
>
> Luca
>
>
>
> On Sep 5, 2012, at 6:03 PM, Dr. Roman Grothausmann wrote:
>
>> Dear all,
>>
>>
>> From http://hdl.handle.net/1926/576 page 3, paragraph after eq. 11 I understand that itkHessianToObjectnessMeasureImageFilter only can enhance structure of dimension m=0, 1 or n-1. In case n=3, m=2=n-1 (my case) this would be just what I need but my tests yielded identical results for m= 1 or 2 (same md5sum for both outputs:-( ). Based on table 1, p 133 of (A. F. Frangi et. al Multiscale vessel enhancement filtering, 1998) I would expect that to enhance plate-like structures the weighting function would have to be changed in such a way that when the three eigenvalues full fill l1~l2<<l3 (instead of l1<<l2~l3 for vessels), Ra->inf and Rb->0. Accordingly, the weighing function e.g eq. 1 in http://hdl.handle.net/1926/576 enhances structures for which Ra~1 and Rb~0.
>>
>> Using eq. 10 and 11 (http://hdl.handle.net/1926/576) for m=n-1: Ra is not defined and Rb=l2/l3~0. However, I would think that exchanging l1 and l3 and using Rb=l2*l1/l3 in the weighing function would again lead to Ra~1 and Rb~0. I've to check if for some reason my code-modifications caused something different.
>>
>> Many thanks for all Your help and suggestions.
>> Roman
>>
>> On 05/09/12 15:01, Luca Antiga wrote:
>>> Dear Roman and all, the itkHessianToObjectnessMeasureImageFilter in
>>> ITK Review should allow you to select the target object
>>> dimensionality (blob vs line vs plate) by calling SetObjectDimension
>>> (0 vs 1 vs 2, respectively; as a note, the filter with dimensionality
>>> 1 corresponds to Frangi's vesselness). One aspect you should be very
>>> careful about is the scale (or the scale range if you use this filter
>>> through itkMultiScaleHessianBasedMeasureImageFilter) expressed in
>>> physical units. You can get an example of the use of the filter here
>>> http://hdl.handle.net/1926/576 Hope this helps
>>>
>>> Luca
>>>
>>>
>>> On Sep 5, 2012, at 2:41 PM, Ho Cheung wrote:
>>>
>>>> Hi Dr. Grothausmann,
>>>>
>>>> The measure in ITK appears to be based on Sato
>>>> (http://www.spl.harvard.edu/archive/spl-pre2007/pages/papers/yoshi/node3.html#SECTION00021000000000000000)
>>>> and I don't see an easy way to modify it so that it detects plate
>>>> like structures instead of line like structures.
>>>>
>>>> If speed is not a major concern for you, may I suggest you
>>>> implement a similar measure? Frangi's original vesselness
>>>> enhancement formula
>>>> (http://www.dtic.upf.edu/~afrangi/articles/miccai1998.pdf) can be
>>>> easily modified for what you need and is based on Eigenvalues like
>>>> Sato.
>>>>
>>>> According to equations 10, 11, 12, 13 in Frangi's paper and my
>>>> interpretation of what the measures do, what you need is high Ra,
>>>> Rb, and S values, so the formula becomes:
>>>>
>>>> V = [1 - exp(-Ra^2/2a^2)][1 - exp(-Rb^2/2b^2)][1 - exp(-S^2/2c62)]
>>>>
>>>> Hope, this helps,
>>>>
>>>> Ho Cheung Research Assistant Bio-Image Analytics Laboratory -
>>>> University of Houston (832) 215-6347
>>>>
>>>>
>>>>
>>>> On Sep 5, 2012, at 3:36 AM, Dr. Roman
>>>> Grothausmann<grothausmann.roman at mh-hannover.de> wrote:
>>>>
>>>>> Dear mailing list members, dear Luca,
>>>>>
>>>>>
>>>>> Recently I was trying to enhance vascular structures from airways
>>>>> with the vessel enhancement filters from ITK (objectness and
>>>>> vessel enhancement). The problem is that these vessels are not
>>>>> filled in the tomograms our imaging technique yields. Only the
>>>>> airway walls are imaged, which corresponds to an uneven 2D
>>>>> surface. Since it is only a 3D not an ND problem, I tried to
>>>>> modify itkHessianSmoothed3DToVesselnessMeasureImageFilter to
>>>>> enhance not vessels (1D) structures but plates/walls. Therefore I
>>>>> exchanged lambda 1 and 3 in the weighting function. Sadly, I
>>>>> could not get the filter to enhance the airway walls. Have I
>>>>> missed anything or would enhancing plateness this way only work
>>>>> for not-curved planes?
>>>>>
>>>>>
>>>>> Here the important part of the diff of my changes:
>>>>>
>>>>> diff -au
>>>>> itk/IJ-Vessel_Enhancement_Diffusion.1/itkHessianSmoothed3DToVesselnessMeasureImageFilter.txx
>>>>> itk/plateness3D_01/itkHessianSmoothed3DToPlatenessMeasureImageFilter.txx
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>> + ////swap Lambda1 and Lambda3 to enhance "plateness"
>>>>> + double swap_tmp= Lambda1; + Lambda3= Lambda1; +
>>>>> Lambda1= swap_tmp; + ///swapping done + double Lambda1Abs =
>>>>> vnl_math_abs( Lambda1 ); double Lambda2Abs = vnl_math_abs(
>>>>> Lambda2 ); double Lambda3Abs = vnl_math_abs( Lambda3 ); @@
>>>>> -162,14 +168,13 @@ double vesMeasure_3 = ( 1 - vcl_exp( -1.0 *
>>>>> (( vnl_math_sqr( S )) / ( 2.0 * ( GammaSqr)))));
>>>>>
>>>>> - double vesMeasure_4 = - vcl_exp ( -1.0 * ( 2.0 *
>>>>> vnl_math_sqr( m_C )) / - (
>>>>> Lambda2Abs * (Lambda3Sqr))); + double vesMeasure_4 = 1;
>>>>> ////plateness for now not smoothed + //double vesMeasure_4
>>>>> = vcl_exp ( -1.0 * ( 2.0 * vnl_math_sqr( m_C )) / ( Lambda2Abs *
>>>>> (Lambda3Sqr))); ////check if this makes sense for plateness
>>>>>
>>>>>
>>>>> Many thanks for any help or hints. Roman
>>>>>
>>>>> -- Dr. Roman Grothausmann
>>>>>
>>>>> Tomographie und Digitale Bildverarbeitung Tomography and Digital
>>>>> Image Analysis
>>>>>
>>>>> Institut für Funktionelle und Angewandte Anatomie, OE 4120
>>>>> Medizinische Hochschule Hannover Carl-Neuberg-Str. 1 30625
>>>>> Hannover
>>>>>
>>>>> Tel. +49 511 532-9574 _____________________________________
>>>>> 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.php
>>>>>
>>>>> 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
>>>>
>>>
>>
>> --
>> Dr. Roman Grothausmann
>>
>> Tomographie und Digitale Bildverarbeitung
>> Tomography and Digital Image Analysis
>>
>> Institut für Funktionelle und Angewandte Anatomie, OE 4120
>> Medizinische Hochschule Hannover
>> Carl-Neuberg-Str. 1
>> 30625 Hannover
>>
>> Tel. +49 511 532-9574
>
--
Dr. Roman Grothausmann
Tomographie und Digitale Bildverarbeitung
Tomography and Digital Image Analysis
Institut für Funktionelle und Angewandte Anatomie, OE 4120
Medizinische Hochschule Hannover
Carl-Neuberg-Str. 1
30625 Hannover
Tel. +49 511 532-9574
More information about the Insight-users
mailing list