[Insight-users] Creating 3d mesh from image slice set

Luis Ibanez luis.ibanez at kitware.com
Tue Oct 19 10:40:57 EDT 2004


Hi Stefan,


0) Performing segmentation of 3D images slice-by-slice
    is a *primitive* method. It was justified in the ages
    when you couldn't load a full dataset in memory, or
    when no good algorithms for 3D images where available.

    With ITK you are free from those constraints. Almost
    all segmentation and registration methods in ITK are
    applicable to *N-Dimensional* images. You can run these
    methods directly on your 3D volume. There is no need
    for you to continue using slice-by-slice segmentation
    and post-processing the resulting 2D contours.


1) You can read your entire DICOM set of slices into an
    ITK volume (3D image) by following the example code in:

            Insight/Examples/IO/
                     DicomSeriesReadImageWrite.cxx

    then, you can run on it any of the segmentation methods
    described in the ITK Software Guide. You instantiate
    those filter for 3D images. You shouldn't do anymore
    2D-slice processing.


2) If you use a segmentation method based on Deformable Models,
    then, the output of your *3D* segmentation is directly an
    itkMesh class.  See for example the application contributed
    by Leila Bagdahi at

          InsightApplications/DeformableModelSimplexMesh

    in this application a deformable model is represented as an
    itkSimplexMesh, and continuously converted to a vtkPolyData
    for visualization.


    If you use a segmentation method that produces an image as
    output, for example:

              - any of the Level Sets
              - Watersheds
              - Region growing filters

    Then you can use VTK in order to extract a contour from it.
    For a minimum example illustrating how to use ITK+VTK in order
    display an input image along with the contour resulting from an
    ITK segmentation method, please look at the source code in

          InsightApplications/Auxiliary/vtk/
                        itkReadITKImageShowVTK.cxx
                        itkReadITKImageSegmentShowVTK.cxx



3) Connecting 2D contours in order to form a 3D surface is a
    ill-posed problem. Fortunately for you, it is a problem
    that you don't need to solve. Just don't do slice-by-slice
    segmentation. Use 3D native methods as described above.




Please let us know if you have further questions,



    Thanks



      Luis



-------------------
Langhammer wrote:

> Hi Luis,
> 
> after reading and testing some examples from the ITKSoftwareGuide.pdf
> i stuck on a general understanding problem of itk.
> 
> I can read slice sets of DICOM images for example and use alot of filters
> to make the contours inside the 2d slices (ITK:images) more visible.
> 
> 1.
> Now i like to pull out the contours of each slice set to save it in an 
> itk:mesh
> vector container and display only the contour polygons above each slice 
> image via openGL.
> Which itk function i have to use for  the extraction ?
> The result of my contour recognition have to look like this: 
> http://www.mrc-cbu.cam.ac.uk/Imaging/Common/regthresh2.jpg
> 
> 2.
> If this step is done i like to auto-connect my contour polygons across 
> the slice layers
> in my itk:mesh.
> The result of this part could be a unstructured surface mesh.
> 
> 3.
> The third question i got is how create a surface/volume mesh with itk in 
> the way i described above.
> 
> 
> 
> Thank you
> 
> Stefan Langhammer
> 
> _______________________________________________
> 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