[Insight-users] Curve2DExtraction example

Luis Ibanez luis.ibanez@kitware.com
Fri, 27 Sep 2002 09:55:32 -0400


Hi Jarek

Some adjustments were done to this example recently.
(early this week), you may want to make sure that you
are using a recent update.


About your questions:


1) The image used in the example cannont be released
    since it was acquired only for research purposes.
    Patient consent is required for releasing medical
    images in the public domain.    Sorry about that.

    BTW is somebody is aware of a site where angiograpic
    images are publicly availabe, we will be glad to
    add a link to it from the ITK home page / Data.


2) The value of sigma used in the example was 4.0
    The rule of thumb is that sigma should be about
    the same size in pixels of the vessels diameter.

    The extraction is then tunned to a certain scale.

    An easy way to verify if you are in the right
    scale is to take a look at the image displayed
    by the "Max Eigen Value" button.

    The vessels you are interested on should appear
    as bright lines.  If they have a double border,
    that means your sigma is too small. If they are
    washed out or attenuated, that means the sigma
    is too large.

3) The recent changes in the example were precisely
    related with the normalization of the parameter
    space. This facilitates to use the same set of
    Spatial Function parameters for a large set of
    images. (fine tunning will always be needed,
    but at least you has a good starting point).

    The parameters set up by default are just good
    for this image:

    - Angle Z      = 20
    - Aperture X   = 12
    - Aperture Y   =  3

    - Apex Coordinates
      x =  0.4
      y =  0.0
      z =  1.0

    - Top Plane    = 0.1
    - Bottom plane =   2


In theory, the points that you want to select from
the cluster are the ones that are in Y==0, The aperture Y
defines a tolerance around this value. Larger aperture Y
values will accept more pixels that are not exactly at
the medial line of the vessel.

The Apex coordinates should be close to the top of the
cluster. You will notice that the cluster has a symmetry
with respect to the XZ plane. The points on the top
are those with high intensities in the smoothed image
(the one that can be displayed by clicking on the
"Smooth XY" button). There are a large number of
points in the very top of the cluster. you don't want
to accept them. This is what the "top plane" is for.
it will define a distance from the top, to start
accepting points.

The points at the bottom of the cluster are the darkest
points on the image and are usually not related to vessels,
The Bottom plane is used to reject them.

The Angle Z shoule be tunned to make the pyramid be
aligned with the frontal ridge of the cluster.
The Aperture X will define a tolerance for points
above and below the ridge.


If you have a good graphic card, it should be pretty
easy to interact with the parametric space.
( Many thanks to the video game market  :-)  )


---

If you feel adventurous, you may also modify the code
in order to replace the pyramid by a Spherical
spatial function.  This is helpful for getting
familiar with the spatial distribution of pixels
in the parametric space and what pixels they are
associated with on the image.

It should be enough to go to

    Insight/Examples/Curve2DExtraction

and in the file

    ceExtractorConsoleBase.h

lines 41 and 42

replace

    // # define SPHERE_FUNCTION
    #define FRUSTUM_FUNCTION

with

    # define SPHERE_FUNCTION
    // #define FRUSTUM_FUNCTION


and recompile.


This is particularly interested if you are looking for
something different than vessels and you get a very
different spatial distribution on the parametric space.

Exploring with a sphere is a good way of getting a
felling about how the image pixels get mappend in the
parametric space.



-----


Please let us know if you have further questions.


Thanks


    Luis






====================================================

Jarek Sacha wrote:

> I am trying to repeat the example Curve2DExtraction shown on ITK webpage
> (http://www.itk.org/HTML/Curve2DExtraction.htm). I am able to compile and
> run the example applications, have the following questions though:
> 
> 1. Where I can find the image shown in the example?
> 
> 2. What is value of sigma used in the example?
> 
> 3. What are the parameters of the spatial function used in the example?
> 
> Thanks,
> 
> Jarek
> 
> __________________________________________________
> Do you Yahoo!?
> New DSL Internet Access from SBC & Yahoo!
> http://sbc.yahoo.com
> _______________________________________________
> Insight-users mailing list
> Insight-users@public.kitware.com
> http://public.kitware.com/mailman/listinfo/insight-users
> 
>