Difference between revisions of "2010 Winter Project Week ProstateSeg"

From NAMIC Wiki
Jump to: navigation, search
Line 50: Line 50:
 
***make isotropic (z direction)
 
***make isotropic (z direction)
 
***register
 
***register
ShapeBased\_reg\src\imageRegByPointSet\c\affine\CMakeLists.txt: pairwise image registration (there are many supporting files in ShapeBased\_reg\src; the result is one executable)
+
****ShapeBased\_reg\src\imageRegByPointSet\c\affine\ => 1 executable
input: two images from ShapeBased\_reg\trainingShapes
+
*****pairwise image registration (there are many supporting files in ShapeBased\_reg\src; the result is one executable)
output: transformed moving image in uchar nrrd image format
+
*****input: two images from ShapeBased\_reg\trainingShapes
make anisotropic *** maybe this step could be skipped (to have an atlas with isotropic images)
+
*****output: transformed moving image in uchar nrrd image format
results are copied to ShapeBased\_reg\alignTrainingShapes
+
***make anisotropic:
 
+
****maybe this step could be skipped (to have an atlas with isotropic images)
alignTrainingShapesNonIso.bash: faster but not that accurate
+
***results are copied to ShapeBased\_reg\alignTrainingShapes
 
+
**alignTrainingShapesNonIso.bash: faster but not that accurate
Convert from binary to level set
+
*Convert from binary to level set
ShapeBased\_reg\alignTrainingShapes\toSFLS\ => 1 executable
+
*ShapeBased\_reg\alignTrainingShapes\toSFLS\ => 1 executable
Input: nrrd binary image
+
**Input: nrrd binary image
Output: level set description
+
**Output: level set description
For each binary image a level set image is generated and saved to ShapeBased\_reg\alignTrainingShapes\toSFLS
+
**For each binary image a level set image is generated and saved to ShapeBased\_reg\alignTrainingShapes\toSFLS
Learning using PCA
+
*Learning using PCA
ProstateSeg\ShapeBased\_reg\alignTrainingShapes\toSFLS\learn => 1 executable
+
**ProstateSeg\ShapeBased\_reg\alignTrainingShapes\toSFLS\learn => 1 executable
Input: shapeList.txt list of all level set files
+
**Input: shapeList.txt list of all level set files
Output: mean shape and i-th eigen shape (multiplied by the eigen value),  
+
**Output: mean shape and i-th eigen shape (multiplied by the eigen value),  
Execution time is about 1 minute, repeated for each eigen shape
+
**Execution time is about 1 minute, repeated for each eigen shape
Images are flipped, but the images to be segmented (or the training shapes) could be flipped instead.
+
*Images are flipped, but the images to be segmented (or the training shapes) could be flipped instead.
Segmentation
+
===Segmentation===
ProstateSeg\ShapeBased\version20091203 => 1 executable (wholeseg)
+
*ProstateSeg\ShapeBased\version20091203 => 1 executable (wholeseg)
Input: image to be segmented, and two points (at the left and right side of the prostate, on a center axial slice in IJK space)
+
**Input: image to be segmented, and two points (at the left and right side of the prostate, on a center axial slice in IJK space)
 
+
**Output: ?
./r/wholeSeg ./data/p1-s1-701_T1W.nrrd a1.nrrd 90 126 13 165 124 13
 
unu 2op lte a1.nrrd 2 | unu convert -t uchar -o b1.nrrd # 2 instead of 0 to inclose more
 

Revision as of 16:59, 6 January 2010

Home < 2010 Winter Project Week ProstateSeg


Key Investigators

  • Andras Lasso, Gabor Fichtinger (Queen's University)
  • Yi Gao, Allen Tannenbaum (Georgia Tech)
  • Andriy Fedorov (BWH)

Objective

Implement a Slicer module from the shape-based prostate segmentation algorithm developed by Yi Gao et al.

Approach, Plan

Implement as a command-line module that can be downloaded and installed as a Slicer extension. Add automatic testing.

Progress

The algorithm can be compiled using CMake on both linux and windows, test data are available.

References

  • Yi Gao, Romeil Sandhu, Gabor Fichtinger, Allen Tannenbaum, A Coupled Global Registration and Segmentation Framework with Application to the Magnetic Resonance Prostate Imagery, IEEE Trans Med Imaging (in review)


Notes

Training

  • Registration
    • alignTrainingShapes.bash (execution time is about 30min)
      • make isotropic (z direction)
      • register
        • ShapeBased\_reg\src\imageRegByPointSet\c\affine\ => 1 executable
          • pairwise image registration (there are many supporting files in ShapeBased\_reg\src; the result is one executable)
          • input: two images from ShapeBased\_reg\trainingShapes
          • output: transformed moving image in uchar nrrd image format
      • make anisotropic:
        • maybe this step could be skipped (to have an atlas with isotropic images)
      • results are copied to ShapeBased\_reg\alignTrainingShapes
    • alignTrainingShapesNonIso.bash: faster but not that accurate
  • Convert from binary to level set
  • ShapeBased\_reg\alignTrainingShapes\toSFLS\ => 1 executable
    • Input: nrrd binary image
    • Output: level set description
    • For each binary image a level set image is generated and saved to ShapeBased\_reg\alignTrainingShapes\toSFLS
  • Learning using PCA
    • ProstateSeg\ShapeBased\_reg\alignTrainingShapes\toSFLS\learn => 1 executable
    • Input: shapeList.txt list of all level set files
    • Output: mean shape and i-th eigen shape (multiplied by the eigen value),
    • Execution time is about 1 minute, repeated for each eigen shape
  • Images are flipped, but the images to be segmented (or the training shapes) could be flipped instead.

Segmentation

  • ProstateSeg\ShapeBased\version20091203 => 1 executable (wholeseg)
    • Input: image to be segmented, and two points (at the left and right side of the prostate, on a center axial slice in IJK space)
    • Output: ?