I want to segment 3D cone beam CT images and haven't found good methods to solve my questions. The volume of 3D CBCT image is consisted of many 2D slice images.
it depends for what you are looking for in the image. In general level set snakes(Geometric deformable model) and meanshift segmentation, graph cut(semi automatic segmentation) and watersheed are promising in CT segmentation. There are several types of Geometric deformable model, I used Chan and vese before and give me a good result. I am not sure if you can use GVF in CT segmentation; I have not seen this before.
I do not believe that there is a development on Matlab for segment 3D CBCT but you can take a look in the file exchange site of Matlab central web.
I can recommend you the libraries VTK ( Visualization Toolkit) and ITK (Insight Segmentation and Registration Toolkit) which have several methods developed to work with medical data. I have used VTK for 3D reconstruction from stereo data and works very well, I has not working with 3D segmentation using these libraries but according the manuals these methods exist.
I agree that ITK+VTK may give you a better start, you can consider using SimpleITK to ease the development (pure ITK has a long learning curve) and SimpleITK can help you to concentrate in the problem rather than in the development
I tried to segment bones in CT before using Geometric deformable model and I like to give a notice that Chan and vese implementation in ITK not working fine.
when you install the libraries come with a lot of examples. In particular ITK have a directory with several examples of segmentation that you can use for starting with the programming in ITK.
Also, you can wacht the next link http://www.itk.org/ITK/resources/applications.html which have application using ITK there is code source avaible of the different demos.
Moreover let me search something else related to 3D segmentation using VTK+ITK
I found this link http://www.mevislab.de/mevislab/features/ which is a library that use ITK+VTK for medical applications and the features overview are:
- Basic image processing algorithms and advanced medical imaging modules
- Full featured, flexible 2D/3D visualization and interaction tools
- High performance for large datasets
- Modular, expandable C++ image processing library
- Graphical programming of complex, hierarchical module networks
- Object-oriented GUI definition and scripting
- Full scripting functionality using Python and JavaScript
- DICOM support and PACS integration
- Intuitive user interface
- Integrated movie and screenshot generation for demonstration purposes
- Generic integration of the Insight Toolkit (ITK) and the Visualization Toolkit (VTK)
- Cross-platform support for Windows, Linux, and MacOS X
Just to chime in. you may consider using 3dslicer or Seg3d. We often use both and you can export the segmentation into matlab. www.idoimaging.com is useful for different versions of software to perform this taks.
I don't know what you segment in cross section. In my opinion, you may segment their data as base of linear attenuation coefficient (LIAC). To assume you want only LIAC of bone from your cross section ,and then you can take all slice of reconstruction images.
First you need to properly read your 3D CBCT medical Images and apply some image pre-processing. You need to register your 3D CBCT images in a second file directory and write some Matlab Code reading each consecutive image in a series and prepare a 4D image-vector array in which you can memory allocate your 2D CBCT images. The next step is to Visualize your 2D CBCT images in a 3D Visualization structure and check-evaluate by eye inspection how good and gualititave is your 3D CBCT Medical Image Recontruction performs. The next step is to apply 2D Image Segmentation on each 2D Medical Image (prefer to first test a simple segmentation to understand the flow of image processing and analysis). Once you apply your Image Segmentation on each 2D CBCT image based on iterative index; you need to prepare a new 4D image-vector array for your segmented results and store them with a new image registration. You can Visualize your 3D CBCT Reconstruction in a unified with the image background or as an independent segmented regions. In any case you need to validate your 3D CBCT Image Reconstruction with 3D Evaluation and Quality Metrics, and use appropriate 3D Image Reconstruction algorithms that will map lines-edges, color, features, key-points from one i image-layer to the next i+1 image-layer. Image pre-processing such as noise filtering, normalization, and image affinement with calibration play a crucial role in your 3D Image Reconstruction algorithm's results. Each voxel-pixel can be reconstructed based on your 3D Image Reconstruction model and algorithm.