[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