[Insight-users] Measuring tumor diameter

Neuner Markus neuner.markus at gmx.net
Thu Dec 11 13:48:46 EST 2008


Hi Andriy,

now i understand what you need.

My idea would be:
- compute the direction of highest variability (1st eigenvector of PCA)
- Now you can resample the volume so that this direction is orented in 
the direction of the z-axis
- Project the Volume along the z-axis (itk::ProjectionImageFilter< 
TInputImage, TOutputImage, TAccumulator > 
<http://www.itk.org/Doxygen310/html/classitk_1_1ProjectionImageFilter.html>)
  BUT: you need to implement a new accumulator that just counts +1 for 
each projected voxel, or you use the itk::SumProjectionImageFilter< 
TInputImage, TOutputImage > 
<http://www.itk.org/Doxygen310/html/classitk_1_1SumProjectionImageFilter.html> 
if all voxels that define the tumor region are "1".
- This results in a "thickness" image, and the highest value may be what 
you are looking for.
Maybe you repeat this for the other two eigenvectors.
- Then multiply each pixelvalue with the spacing (if anisotropic) and 
pick the biggest value.

Another approach would be to:
- Extract the surface voxels (outlining) or transform it into a surface 
representation (triangulation) to obtain points on the surface
- Compute a distance matrix (distance between each point)
- Start with the Points that have the highest distance and check if they 
can be connected by a straight line.
  This can be done with a loop, a direction vector (with a defined 
length or stepsize). You check if a point is inside the tumor at 
samplingpoints.
  The point is moved through the directionvector and a check is 
performed if it is inside the tumor.
  If the two points with the highest distance can be connected with a 
straight line you have found the biggest diameter, otherwise go on and 
check the next ones.

A nice addon would be to constrain the angle of the line with the help 
of a surface normal.


Greets, Markus





Andriy Fedorov wrote:
> Marcus,
>
> I have been thinking along these lines too.
>
> The problem I can see is that the bounding sphere diameter will not be
> the same as the maximum shape diameter. I can understand why the
> method you suggest works in collision detection, but in tumor
> measurement we need precision.
>
> Going back to my counter-examples, if you think of a T-shaped contour
> in 2D, the max diameter will be the length of the longer segment in T.
> If you imagine a sphere with all points inside, its radius will exceed
> the max diameter.... The method you suggest will give some estimate,
> but not *the* maximum diameter.
>
> Fedorov
>
>
>
> On Thu, Dec 11, 2008 at 12:10 PM, Neuner Markus <neuner.markus at gmx.net> wrote:
>   
>> Hi,
>>
>> I would sggest an approch that is called:  "Bounding Sphere"
>> and is commonly used in graphics to calculate bounding spheres that are
>> independent of object rotations.
>>
>> Several methods exist to compute a bounding spere and some good examples of
>> how to compute and implement this is outlined in the book "Real-Time
>> Collision Detection" from Christer Ericson.
>>
>> One good method is to use the direction of maximum spread from a PCA
>> (primary component analysis) of all "contour points".
>> Then you pick points farhest away along this direction (1st eigenvector).
>> This is done by projection (Dot-Product) of the points onto the direction
>> vector and you increase the diameter of a shpere until all points are
>> inside.
>>
>> I dont know if PCA is implemented in ITK to compute the covariancematrix,
>> eigenvectors and eigenvalues of a point set.
>>
>>
>> Regards, Markus
>>
>>
>> Andriy Fedorov wrote:
>>     
>>> On Thu, Dec 11, 2008 at 10:17 AM, Somer, Edward <edward.somer at kcl.ac.uk>
>>> wrote:
>>>
>>>       
>>>> Having segmented the tumour I'd try a 3D-distance transform to find the
>>>> interior pixel furthest from any edge of the mask. Isn't the maximum
>>>> diameter then twice the value of the distance transform at this point?
>>>>
>>>>
>>>>         
>>> This will not work, unfortunately. Here's a counterexample.
>>>
>>> Imagine I-like shape of some thickness in 2d. Then the maximum
>>> distance from distance transform will be half the thickness of the
>>> shape. However, the diameter will be equal to the *length* of this
>>> shape. So in this case you are getting non-maximum diameter with the
>>> approach you suggest.
>>>
>>>
>>>
>>>       
>>>> Perhaps I'm missing something,
>>>>
>>>> Ed
>>>>
>>>> Andriy Fedorov wrote:
>>>>
>>>>         
>>>>> Luis,
>>>>>
>>>>> I am actually looking for an automatic tool.
>>>>>
>>>>> The approach I am currently considering is this:
>>>>>
>>>>> 1) go through the axial slices, find the one with the largest area
>>>>> 2) extract that slice contour
>>>>> 3) go through all possible combinations of the contour points, find
>>>>> the pair of most distant points, and take this as a diameter
>>>>> 4) follow the line between the points in the previous step, and
>>>>> subtract the parts of the line that are outside the contour (this is
>>>>> how the tumor measurements are actually taken). This may change the
>>>>> measured diameter.
>>>>> 5) repeat steps 3 and 4 until the maximum is found after taking into
>>>>> account diameter parts outside the countour
>>>>>
>>>>> The problem of course is that this procedure will be quadratic to the
>>>>> number of contour points, and I am looking for ways to speed this up,
>>>>> or find an existing implementation, or find a better way to find the
>>>>> farthest point. I thought about kd-tree to optimize point location,
>>>>> but I am not sure how to use it for farthest point.
>>>>>
>>>>> Any comments are welcome
>>>>>
>>>>> Andriy Fedorov
>>>>>
>>>>>
>>>>> On Thu, Dec 11, 2008 at 9:47 AM, Luis Ibanez <luis.ibanez at kitware.com>
>>>>> wrote:
>>>>>
>>>>>
>>>>>           
>>>>>> Hi Andi,
>>>>>>
>>>>>>
>>>>>> Are you looking for an automatic tool ?
>>>>>> or for an interactive method ?
>>>>>>
>>>>>> In VTK you will find 3D Widgets designed
>>>>>> for taking measurements in-plane.
>>>>>>
>>>>>>
>>>>>>  Regards,
>>>>>>
>>>>>>
>>>>>>   Luis
>>>>>>
>>>>>>
>>>>>> ------------------------
>>>>>> Andriy Fedorov wrote:
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> Hi,
>>>>>>>
>>>>>>> I need to measure the longest diameter of a 3D tumor segmentation. I
>>>>>>> was wondering, if anybody is aware of any existing tools for this
>>>>>>> purpose? If not, are there tools to quickly measure the diameter of a
>>>>>>> 2D projection of the segmentation?
>>>>>>>
>>>>>>> I just wanted to have the community opinion before starting to
>>>>>>> implement something myself.
>>>>>>>
>>>>>>> Andriy Fedorov
>>>>>>> _______________________________________________
>>>>>>> Insight-users mailing list
>>>>>>> Insight-users at itk.org
>>>>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>> _______________________________________________
>>>>> Insight-users mailing list
>>>>> Insight-users at itk.org
>>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>>>
>>>>>
>>>>>           
>>>> --
>>>> Edward Somer, PhD.
>>>> Senior PET Methodologist
>>>> The PET Imaging Centre St Thomas' Hospital
>>>> London, UK
>>>> SE1 7EH
>>>>
>>>> work tel: +44 (0) 20 7188 1497
>>>> work fax: +44 (0) 20 7620 0790
>>>> e-mail: Edward.Somer at kcl.ac.uk / Edward.Somer at googlemail.com
>>>>
>>>>
>>>>
>>>>
>>>>         
>>> _______________________________________________
>>> Insight-users mailing list
>>> Insight-users at itk.org
>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>>
>>>       
>
>   


More information about the Insight-users mailing list