Difference between revisions of "Projects:RegistrationLibrary:RegLib C44"

From NAMIC Wiki
Jump to: navigation, search
(Created page with 'Back to ARRA main page <br> Back to Registration main page <br> [[Projects:RegistrationDocumentation:UseCaseInv…')
 
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
(7 intermediate revisions by one other user not shown)
Line 17: Line 17:
  
 
=== Modules ===
 
=== Modules ===
*'''Slicer 3.6.3 recommended modules:  [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit BRAINSFit]
+
*'''Slicer 3.6.3 recommended modules:  [https://www.slicer.org/wiki/Modules:BRAINSFit BRAINSFit]
  
 
===Objective / Background ===
 
===Objective / Background ===
 
This dataset contains CT of the visible human male and female pelvis. This serves as a test example for exploring non-rigid registration for inter-subject comparison from CT.
 
This dataset contains CT of the visible human male and female pelvis. This serves as a test example for exploring non-rigid registration for inter-subject comparison from CT.
 +
 +
===Download ===
 +
*Data
 +
**[[Media:RegLib_C44_Data.zip‎|'''RegLib_C44_Data''': Example Dataset <small> (CT images, Presets, Solution, zip file 171 MB) </small>]]
 +
*Presets
 +
**[[Media:RegLib_C44_Presets.mrml‎|'''RegLib_C44_Presets.mrml''': registration parameter presets<small> (.mrml text file 16 kB) </small>]]
  
 
=== Keywords ===
 
=== Keywords ===
Line 29: Line 35:
 
*fixed:  CT , 0.6 x 0.6 x 0.40 mm voxel size, axial; 292 x 292 x 91 unsigned short image
 
*fixed:  CT , 0.6 x 0.6 x 0.40 mm voxel size, axial; 292 x 292 x 91 unsigned short image
 
*moving: CT , 0.6 x 0.6 x 0.40 mm voxel size, axial; 512 x 512 x 107 unsigned short image
 
*moving: CT , 0.6 x 0.6 x 0.40 mm voxel size, axial; 512 x 512 x 107 unsigned short image
 +
=== Overall Strategy  ===
 +
#Open case scene file or import image data: RegLib_C44_SlicerScene.mrml
 +
#Overall strategy will be
 +
##use ''vhm'' as fixed, ''vhf'' as moving volume
 +
##because we're interested in the pelvic bone structure differences, we create a mask that will focus the registration on the skeletal region only.
 +
##perform affine alignment
 +
##using above affine alignment as starting point, perform low-level BSpline alignment
 +
##To study the deformation only, extract the BSpline deformation from the transform, i.e. remove the affine portion. This can be done in a text editor, or by first resampling the ''vhf'' volume with the Affine before computing the BSpline.
 +
##Visualize the deformation by applying the pure BSpline to a [[Projects:RegistrationDocumentation:UseCaseInventory:Auxiliary|'''auxiliary grid image''']]
 +
#Change colormap of deformed grid (e.g. hot), window and level to view the gridlines of interest, and overlay on the grayscale images
 +
 
=== Procedure / Pipeline ===
 
=== Procedure / Pipeline ===
#Open case scene file or import image data: RegLib_C28_SlicerScene1.mrml
+
#Mask generation
#Place T10intact and T10defect in back- and foreground respectively.
+
##Go to the [https://www.slicer.org/wiki/Modules:Editor-Documentation-3.6 Editor module]
#Scroll through sagittal view and note the inverted axis orientation
+
##"Master Volume": select ''vhm''
#Flip axis
+
##A new labelmap "vhm-label" will be created
##Go to the [http://www.slicer.org/slicerWiki/index.php/Modules:Data-Documentation-3.6 Data module]
+
##Select "vhm" to be visible in the slice viewer
###right-click on the ''Scene'' node and select "Insert Transform Node" from the menu
+
##Select the ''Threshold'' tool from the editor toolbar
###select the newly created transform node, then in the ''MRML Node Inspector'' below, rename it to "Xf0_AxialFlip"
+
##Adjust the lower threshold (slider bar) until most of the bone is highlighted, e.g. somewhere around an intensity value of 80. Leave the upper threshold unchanged at the max.
###select the "T10intact" node and drag it inside/on top of the "Xf0_AxialFlip" node
+
##Click Apply
###ensure you have T10intact selected for background and the fade slider set on background (B) so you can see changes happening.
+
##Morphologically clean the segmentation:
##Go to the [http://www.slicer.org/slicerWiki/index.php/Modules:Transforms-Documentation-3.6 Transforms module]
+
##Run a [https://www.slicer.org/wiki/Modules:MedianFilter-Documentation-3.6 Median Filter] with a 3x3x3 neighborhood to remove speckle noise
###Select "Xf0_AxialFlip" from the ''Transform Node'' menu
+
##Return to the [https://www.slicer.org/wiki/Modules:Editor-Documentation-3.6 Editor module] and use the ''Change Island'' tool to remove the segmentation of the arms.
###In the 4x4 matrix displayed, click in the field containing the "1.0000" in row 3 and column 3.  
+
##Apply 2-3 rounds of morphological dilation to expand the region to include surrounding area.
###hit Return key to activate editing
+
##Rename the labelmap to "vhm_mask" or similar. You will find a "vhm_mask_dil" in the example dataset for comparison
###change the number to -1. Hit Enter.
+
##Repeat the above segmentation procedure for "vhf"
###you should see the image flip in the sagittal and coronal slice views
+
#Registration:
#Crop Volumes
+
##''''Presets''': for either of the registrations below, you can select the "BRAINSFit_...." presets from the parameter set menu instead of setting the parameters manually.
##Go to the [http://www.slicer.org/slicerWiki/index.php/Modules:CropVolume-Documentation-3.6 Crop Volume module]
+
#Affine Registration
##select "T10intact" as ''Input Volume''; select "Create new MRML ROI Node" in the ''ROI'' menu, select "create new volume" in the ''Output Volume" menu
+
##Go to the [https://www.slicer.org/wiki/Modules:BRAINSFit BRAINSfit module]
##you should see a small blue rectangle in all 3 views. Click in the views to expand the region to contain only the L4 vertebra (body and processes)
+
##select the following parameters:  
##when finished, click on ''Do ROI resample''
+
###''Fixed Image Volume'': vhm ''Moving'': vhf
##go to back to the [http://www.slicer.org/slicerWiki/index.php/Modules:Data-Documentation-3.6 Data module] and change the name of the new "SubVolume" to "T10intact_crop"
+
###check boxes for ''Include Rigd registr. phase'' , ''Include ScaleVersor3D'', ''include Affine''
##delete the ROI nodes (right click: delete node)
 
##repeat the same for the "T10defect" image
 
#Registration
 
##Go to the [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit BRAINSfit module]
 
###''''Presets''': select the "BRAINSFit_Affine" from the parameter set menu. See [[Projects:RegistrationDocumentation:ParameterPresetsTutorial|here for a guide]] on how to Load/Save Registration Parameter Presets]]
 
###otherwise select the following parameters:  
 
###''Fixed Image Volume'': :T10intact_crop ; ''Moving'': T10defect_crop
 
###check boxes for "Moments align", ''Include Rigd registr. phase'' , ''Include ScaleVersor3D'', ''include Affine''
 
 
###''Slicer Linear Transform'': select "create new transform", rename to "Xf1_Affine" or similar
 
###''Slicer Linear Transform'': select "create new transform", rename to "Xf1_Affine" or similar
 
###leave rest at defaults. Click ''Apply''
 
###leave rest at defaults. Click ''Apply''
 
###registration should take ~ 10 secs.
 
###registration should take ~ 10 secs.
###use fade slider to verify alignment; compare with result snapshots shown below.
+
###use fade slider to verify alignment; compare with result snapshots shown below. Alignment will not be perfect but should be better than before.
 +
#BSpline Registration
 +
##Go to the [https://www.slicer.org/wiki/Modules:BRAINSFit BRAINSfit module]
 +
##select the following parameters:
 +
###''Fixed Image Volume'': vhm ''Moving'': vhf
 +
##Registration phases: from ''Initialize with previously generated transform', select "Xf2_..." node created before.
 +
##Registration phases: check boxes for  ''Include BSpline registration phase''
 +
##Output: Slicer BSpline transform: create new, rename to "Xf2_BSpline_msk" or similar
 +
##Output Image Volume:  create new, rename to "vhf_Xf2"; ''Pixel Type'': "short"
 +
##Registration Parameters: increase ''Number Of Samples'' to 200,000; ''Number of Grid Subdivisions'': 7,7,7
 +
##Control Of Mask Processing Tab: check ''ROI'' box, for ''Input Fixed Mask'' and ''Input Moving Mask'' select the two dilated labelmaps from above
 +
##Leave all other settings at default
 +
##click apply
  
 
=== Registration Results===
 
=== Registration Results===
 
[[Image:RegLib_C44_unregistered.gif|400px|original unregistered]] unregistered <br>
 
[[Image:RegLib_C44_unregistered.gif|400px|original unregistered]] unregistered <br>
[[Image:RegLib_C44_affine.gif|400px|registered (after flipping axis and cropping volume)]] registered <br>
+
[[Image:RegLib_C44_affine.gif|400px|registered (affine)]] registered (affine)]<br>
[[Image:RegLib_C44_registered_Xf2.gif|400px|registered (after flipping axis and cropping volume)]] registered <br>
+
[[Image:RegLib_C44_registered_Xf2.gif|400px|registered (nonrigid w/o masking)]] registered (nonrigid w/o masking)<br>
[[Image:RegLib_C44_registered_Xf3.gif|400px|registered (after flipping axis and cropping volume)]] registered <br>
+
[[Image:RegLib_C44_registered_Xf3.gif|400px|registered (nonrigid+masking)]] registered (nonrigid+masking)<br>
[[Image:RegLib_C44_defromOnly_Xf3.gif|400px|registered (after flipping axis and cropping volume)]] registered <br>
+
[[Image:RegLib_C44_deformOnly_Xf3.gif|400px|deformation only of vhf]] registered deformation only of vhf<br>
 
+
[[Image:RegLib_C44_gridXf3.png|400px|deformation grid]] deformation visualized by grid image overlay <br>
===Download ===
 
*Data
 
**[[Media:RegLib_C44_Data.zip‎|'''RegLib_C44_Data''': Example Dataset <small> (CT images, Presets, Solution, zip file 30 MB) </small>]]
 
*Presets
 
**[[Media:RegLib_C44_Presets.mrml‎|'''RegLib_C44_Presets.mrml''': registration parameter presets<small> (.mrml text file 12 kB) </small>]]
 
  
 
=== Acknowledgments ===
 
=== Acknowledgments ===
 +
Original CT from the [https://mri.radiology.uiowa.edu/visible_human_datasets.html '''Visible Human Project'''] shared by the University of Iowa.

Latest revision as of 17:58, 10 July 2017

Home < Projects:RegistrationLibrary:RegLib C44

Back to ARRA main page
Back to Registration main page
Back to Registration Use-case Inventory


v3.6.3 Slicer3-6Announcement-v1.png Slicer Registration Library Case 44: Visible Human Pelvis CT

Input

this is the main fixed reference image. All images are ev. aligned into this space lleft this is the moving image
baseline image follow-up

Modules

Objective / Background

This dataset contains CT of the visible human male and female pelvis. This serves as a test example for exploring non-rigid registration for inter-subject comparison from CT.

Download

Keywords

CT, pelvis, visible human, inter-subject

Issues Challenges

Input Data

  • fixed: CT , 0.6 x 0.6 x 0.40 mm voxel size, axial; 292 x 292 x 91 unsigned short image
  • moving: CT , 0.6 x 0.6 x 0.40 mm voxel size, axial; 512 x 512 x 107 unsigned short image

Overall Strategy

  1. Open case scene file or import image data: RegLib_C44_SlicerScene.mrml
  2. Overall strategy will be
    1. use vhm as fixed, vhf as moving volume
    2. because we're interested in the pelvic bone structure differences, we create a mask that will focus the registration on the skeletal region only.
    3. perform affine alignment
    4. using above affine alignment as starting point, perform low-level BSpline alignment
    5. To study the deformation only, extract the BSpline deformation from the transform, i.e. remove the affine portion. This can be done in a text editor, or by first resampling the vhf volume with the Affine before computing the BSpline.
    6. Visualize the deformation by applying the pure BSpline to a auxiliary grid image
  3. Change colormap of deformed grid (e.g. hot), window and level to view the gridlines of interest, and overlay on the grayscale images

Procedure / Pipeline

  1. Mask generation
    1. Go to the Editor module
    2. "Master Volume": select vhm
    3. A new labelmap "vhm-label" will be created
    4. Select "vhm" to be visible in the slice viewer
    5. Select the Threshold tool from the editor toolbar
    6. Adjust the lower threshold (slider bar) until most of the bone is highlighted, e.g. somewhere around an intensity value of 80. Leave the upper threshold unchanged at the max.
    7. Click Apply
    8. Morphologically clean the segmentation:
    9. Run a Median Filter with a 3x3x3 neighborhood to remove speckle noise
    10. Return to the Editor module and use the Change Island tool to remove the segmentation of the arms.
    11. Apply 2-3 rounds of morphological dilation to expand the region to include surrounding area.
    12. Rename the labelmap to "vhm_mask" or similar. You will find a "vhm_mask_dil" in the example dataset for comparison
    13. Repeat the above segmentation procedure for "vhf"
  2. Registration:
    1. 'Presets: for either of the registrations below, you can select the "BRAINSFit_...." presets from the parameter set menu instead of setting the parameters manually.
  3. Affine Registration
    1. Go to the BRAINSfit module
    2. select the following parameters:
      1. Fixed Image Volume: vhm Moving: vhf
      2. check boxes for Include Rigd registr. phase , Include ScaleVersor3D, include Affine
      3. Slicer Linear Transform: select "create new transform", rename to "Xf1_Affine" or similar
      4. leave rest at defaults. Click Apply
      5. registration should take ~ 10 secs.
      6. use fade slider to verify alignment; compare with result snapshots shown below. Alignment will not be perfect but should be better than before.
  4. BSpline Registration
    1. Go to the BRAINSfit module
    2. select the following parameters:
      1. Fixed Image Volume: vhm Moving: vhf
    3. Registration phases: from Initialize with previously generated transform', select "Xf2_..." node created before.
    4. Registration phases: check boxes for Include BSpline registration phase
    5. Output: Slicer BSpline transform: create new, rename to "Xf2_BSpline_msk" or similar
    6. Output Image Volume: create new, rename to "vhf_Xf2"; Pixel Type: "short"
    7. Registration Parameters: increase Number Of Samples to 200,000; Number of Grid Subdivisions: 7,7,7
    8. Control Of Mask Processing Tab: check ROI box, for Input Fixed Mask and Input Moving Mask select the two dilated labelmaps from above
    9. Leave all other settings at default
    10. click apply

Registration Results

original unregistered unregistered
registered (affine) registered (affine)]
registered (nonrigid w/o masking) registered (nonrigid w/o masking)
registered (nonrigid+masking) registered (nonrigid+masking)
deformation only of vhf registered deformation only of vhf
deformation grid deformation visualized by grid image overlay

Acknowledgments

Original CT from the Visible Human Project shared by the University of Iowa.