[Insight-users] Fuzzy connectedness 3D

Luis Ibanez luis.ibanez@kitware.com
Wed May 19 20:02:29 EDT 2004


Hi Alex,

Please do the following:

1) Use the program

     Insight/Examples/IO
       DicomSeriesReadImageWriter.cxx

    in order to read your DICOM series
    and write the same image in a format
    such as : Analyze, MetaImage or VTK.
    Their respective extensions are:
    .hdr, .mhd and .vtk


2) Run the program

     InsightApplications/
               RegionGrowingSegmentation


3)  Load the image that you generated
     in step (1).


4)  Select the option of smoothing using
     CurvatureFlow.  Apply 5 iterations with
     a time step of 0.125 (the default value)
     In a CT image of size 512 x 512 x35 this
     takes about 10 seconds.


5)  Click on the button "Homogeneous Image".
     When the image viewer appears, move to
     an slice showing the heart and click
     on the heart. The positions of this
     pixel will show up in the "Seed Point"
     frame in the GUI.


6)  Since your image is in CT, the heart
     shows in Hounsfield units in the range
     [1000:1100].

7)  On the bottom right of the GUI you will
     see the button for "FuzzyConnected"
     Set Mean      = 1050 (middle value from (6))
     Set Variance  =  100
     Set Threshold =  0.5

     Click on the "Display" button on the
     right side of "Fuzzy Connected".

     In the same CT image of size 512x512x35
     pixels. This process took 4 minutes.
     This is in a Pentium 4, at 2.4Ghz. and
     1GByte of RAM.


8)  During the process, memory consumption
     reached the 800Mb, which makes me wonder
     if this is swapping memory in your system.
     That will definitely explain why it is
     taking hours to run in your system.  Can
     you please verify if there is any swapping
     going on while you run the application ?

     How much memory do you have in your system ?

     BTW, what kind of system do you have ?


----

IMPORTANT: Note that FuzzyConnectedness is not
a pure region growing algorithm in the sense
that it is not adding pixels progressively.
Instead, it computes an Affinity map for the
*entire* image.  The consequence of this is
that if the hearth happens to occupy a reduced
portion of your CT scan, you are still paying
for the computation of the Affinity map in the
entire CT.

You will find useful to first extract the region
of interest around the heart and provide this
a input to the SimpleFuzzyConnectedness image
filter.



    Regards,



       Luis



-------------------
Alex Houston wrote:
> Hi luis,
>  
> I didn't have any problem reading the dicom series CT images. I used 
> part of code from DicomSeriesReadImageWrite.cxx and checked output as 
> .img file.
>  
> I have CT series of chest region and trying to segment the heart region.
>  
> I did compile in debug mode ( as I need to track some parts of code). I 
> did that in release mode too but timming didn't improve.
>  
> About providing the mean/variance I used confidenceConnectedFilter, I 
> have also tried hardcoding the values of mean/variance but the time to 
> run remained the same.
>  
> I saw one demo which has input as RAW files, I am have whole directory 
> with dicom images. It doesn't accept the directory as input.
>  
> Thanks for your help
>  
> A. Houston
>  
>  
> 
> 
> */Luis Ibanez <luis.ibanez@kitware.com>/* wrote:
> 
> 
>     Hi Alex,
> 
>     There shouldn't be any problem for reading your
>     data set from a group of DICOM slices and passing
>     it to the FuzzyConnectedness filter.
> 
>     The 2 hours that you are experiencing for a
>     512 x 512 x 70 is excesive.
> 
>     Using this filter for extracting the ventricles
>     from one of the BrainWeb images (181 x 200 x 180 )
>     takes about 1 minute in a Pentium 4, at 2.4Ghz.
> 
>     What anatomical structure are you trying to
>     segment from your CT data ?
> 
> 
>     Some questions:
> 
>     1) Did you compile your code for Release ?
>     (e.g. -O3 in gcc, or /Release in VisualStudio).
> 
>     2) How are you providing the estimation of the
>     Mean value to the filter ?
> 
>     3) How are you providing the estimation of the
>     Variance to the filter ?
> 
> 
> 
>     You may want to experiment first with the demo
>     application
> 
>     InsightApplications/
>     RegionGrowingSegmentaiton
> 
> 
>     where the FuzzyConnectendes filter is on the GUI.
>     Note that you must provide Variance, not standard
>     deviation. Therefore typical values for an MRI are
>     in the range of 100s while values in a CT may be
>     in the range of 1e4 to 1e6.
> 
> 
>     Regards,
> 
> 
>     Luis
> 
> 





More information about the Insight-users mailing list