Difference between revisions of "Projects:RegistrationLibrary:RegLib C11"
From NAMIC Wiki
Line 39: | Line 39: | ||
*[[Image:Button_red_fixed_white.jpg|20px]]reference/fixed : T1w coronal, 1mm isotropic. Called ''A1_gray'' | *[[Image:Button_red_fixed_white.jpg|20px]]reference/fixed : T1w coronal, 1mm isotropic. Called ''A1_gray'' | ||
*[[Image:Button_red_fixed_white.jpg|20px]]reference/fixed : labelmap , aligned with above. Called ''A1_label'' | *[[Image:Button_red_fixed_white.jpg|20px]]reference/fixed : labelmap , aligned with above. Called ''A1_label'' | ||
− | *[[Image: | + | *[[Image:Button_blue_tag_white.jpg|20px]] moving: T1w coronal, 0.9 inplane, 1.5mm coronal slices. Called ''A0_gray'' |
*[[Image:Button_green_moving_white.jpg|20px]] moving: labelmap , aligned with above. Called ''A0_label'' | *[[Image:Button_green_moving_white.jpg|20px]] moving: labelmap , aligned with above. Called ''A0_label'' | ||
=== Methods === | === Methods === | ||
#Visualize & browse A0 data: determine label range of thalamic nuclei labels in A0_label: 500-526 | #Visualize & browse A0 data: determine label range of thalamic nuclei labels in A0_label: 500-526 | ||
#Visualize & browse A1 data: determine label range of thalamus lables in A1_label: 10 and 49 | #Visualize & browse A1 data: determine label range of thalamus lables in A1_label: 10 and 49 | ||
− | #Build label mask of thalamus for A0: | + | #Build label mask of thalamus for A0: '''Editor''' module |
− | #Build label mask of thalamus for A1: | + | ##Create Labelmap From”: ''A0_labels'' |
− | #Smooth A1 thalamus labelmap: Median Filter | + | ##Select Labelmap to Edit: select the newly created “A0_labels-label” and then select “Rename”. Rename the new volume to ''A0_thalamus'' |
− | #Build thalamus surface model of A0 | + | ##From the icon panel, select the “Threshold Icon” |
− | #Build thalamus surface model of A1 | + | ##Threshold range: enter 500 and 526 |
− | # | + | #change ''A1_labels'': change label 10 to 49; '''Editor''' module |
− | + | ##Select Labelmap to Edit: ''Aa_labels'' | |
− | + | ##Label field: enter 49 | |
− | + | ##Change Island Icon; left click on area with left thalamus label 10 | |
− | + | #Build label mask of thalamus for A1: '''Editor''' module | |
− | + | ##Create Labelmap From”: ''A1_labels'' | |
− | + | ##Select Labelmap to Edit: select the newly created “A1_labels-label” and then select “Rename”. Rename the new volume to ''A1_thalamus'' | |
− | + | ##From the icon panel, select the “Threshold Icon” | |
− | + | ##Threshold range: enter 49 and 49 | |
− | + | #Smooth A1 thalamus labelmap: '''Filtering / Denoising / Median Filter''' | |
− | + | ##Neighborhood Size: (default) 1,1,1 | |
− | + | ##Input Volume: A1_thalamus | |
+ | ##Output Volume: A1_thalamus | ||
+ | #Build thalamus surface model of A0: '''Model Maker''' module | ||
+ | ##Input Volume: ''A0_thalamus'' | ||
+ | ##Model Name: ''A0_ThalamusModel'' | ||
+ | ##Labels: 1 | ||
+ | ##Smooth: 50 | ||
+ | ##Decimate: 0.25 | ||
+ | ##Split Normals: no | ||
+ | ##Point Normals: yes | ||
+ | ##Save Intermediate Models: no | ||
+ | #Build thalamus surface model of A1 ('''Model Maker''' module as above, with ''A1_thalamus'' as input and ''A1_ThalamusModel'' as output. | ||
+ | #Co-register thalamus surfaces: '''Python Surface ICP Registration''' module. Settings: | ||
+ | ##Landmark transform mode: Affine | ||
+ | ##Mean Distance Mode: RMS | ||
+ | ##Maximum Number of Iterations: 500 | ||
+ | ##Maximum Nmber of Landmarks: 200 | ||
+ | ##Start by matching centroids: yes | ||
+ | ##maximum mean distance: 0.01 | ||
+ | ##Initial Transform: none | ||
+ | ##Input Surface: ''A0_ThalamusModel'' | ||
+ | ##Target Surface: ''A1_ThalamusModel'' | ||
+ | ##Output Surface: none | ||
+ | ##Output Transform: ''Xform_A0Affine_ICP'' | ||
# Apply Registration Xform to labelmap: '''Resample Scalar/Vector/DWI Volume''' module. Settings: | # Apply Registration Xform to labelmap: '''Resample Scalar/Vector/DWI Volume''' module. Settings: | ||
− | + | ##Input Volume : ''A0_labels'' | |
− | + | ##Reference Volume : ''A1_labels'' | |
− | + | ##Output Volume : “Create New Volume”, rename to “A0_labels_aff” | |
− | + | ##Transform Node: ''Xform_A0Affine_ICP'' | |
− | + | ##Interpolation Type: “nn” | |
##Change datatype of new volume ''A0_labels_aff'' to labelmap ('''Volumes''' module) | ##Change datatype of new volume ''A0_labels_aff'' to labelmap ('''Volumes''' module) | ||
# Apply Registration Xform to thalamus mask: '''Resample Scalar/Vector/DWI Volume''' module. Settings: | # Apply Registration Xform to thalamus mask: '''Resample Scalar/Vector/DWI Volume''' module. Settings: | ||
− | + | ##Input Volume : ''A0_thalamus'' | |
− | + | ##Reference Volume : ''A1_labels'' | |
− | + | ##Output Volume : “Create New Volume”, rename to ''A0_thalamus_aff'' | |
− | + | ##Transform Node: ''Xform_A0Affine_ICP'' | |
− | + | ##Interpolation Type: “nn” | |
##Change datatype of new volume ''A0_labels_aff'' to labelmap ('''Volumes''' module) | ##Change datatype of new volume ''A0_labels_aff'' to labelmap ('''Volumes''' module) | ||
#Mask new labelmap with ''A0_thalamus_aff'': '''Mask Image''' module | #Mask new labelmap with ''A0_thalamus_aff'': '''Mask Image''' module | ||
− | + | ##Input Volume : ''A0_labels_aff'' | |
− | + | ##Mask Volume : ''A0_thalamus_aff'' | |
− | + | ##Masked Volume: ''A0_labels aff'' | |
##Mask new labelmap with A1_thalamus: '''Mask Image''' module | ##Mask new labelmap with A1_thalamus: '''Mask Image''' module | ||
− | + | ##Input Volume : ''A0_labels_aff'' | |
− | + | ##Mask Volume : ''A1_thalamus_aff'' | |
− | + | ##Masked Volume: New volume, rename to: ''A0_labels aff_clip'' | |
#Typecast A1_labelmap: '''Cast Image''' module | #Typecast A1_labelmap: '''Cast Image''' module | ||
− | + | ##Input Volume: ''A1_label'' | |
− | + | ##Output Volume: ''A1_label'' | |
− | + | ##Output Type: “short” | |
#Merge Labelmaps:'''Image Label Combine''' module | #Merge Labelmaps:'''Image Label Combine''' module | ||
− | + | ##Input Label Map A: ''A0_label_aff_clip'' | |
− | + | ##Input Label Map B: ''A1_labels'' | |
− | + | ##Output Label Map: “Create New Volume”, rename to ''A1_labels_merged'' | |
− | + | ##First label overwrites second: yes | |
− | |||
=== Registration Results=== | === Registration Results=== | ||
Line 121: | Line 143: | ||
=== Discussion: Registration Challenges === | === Discussion: Registration Challenges === | ||
− | *Because the | + | *Because the structures of interest are a very small subset of the image without distinct grayscale contrast |
− | * | + | *the two atlases represent different anatomies and hence some residual misalignment is inevitable |
− | * | + | *the two labelmaps have different resolutions and different smoothness of structure outlines. Some need filtering to remove spurious surface details that would distract the registration algorithm |
=== Discussion: Key Strategies === | === Discussion: Key Strategies === | ||
− | *Because of the | + | *Because the structures of interest are a very small subset of the image without distinct grayscale contrast, we co-register surfaces rather than intensity volumes |
− | + | ||
− | |||
− | |||
− | |||
=== Acknowledgments === | === Acknowledgments === | ||
− | *dataset provided by | + | *dataset provided by Ron Kikinis, M.D. and Florin Talos, M.D. |
Revision as of 17:12, 17 February 2010
Home < Projects:RegistrationLibrary:RegLib C11Back to ARRA main page
Back to Registration main page
Back to Registration Use-case Inventory
Slicer Registration Library Exampe #11: Co-registration of two anatomic brain atlases for merging of structure labels
Objective / Background
This is an example of inter-subject registration via surface matching. The structures of interest are a small subset of the entire image, hence registration is not driven by image intensities but rather two model surfaces derived from the labelmaps.
Keywords
MRI, brain, head, inter-subject, atlas to atlas, surface-based segmentation, thalamic nuclei
Input Data
- reference/fixed : T1w coronal, 1mm isotropic. Called A1_gray
- reference/fixed : labelmap , aligned with above. Called A1_label
- moving: T1w coronal, 0.9 inplane, 1.5mm coronal slices. Called A0_gray
- moving: labelmap , aligned with above. Called A0_label
Methods
- Visualize & browse A0 data: determine label range of thalamic nuclei labels in A0_label: 500-526
- Visualize & browse A1 data: determine label range of thalamus lables in A1_label: 10 and 49
- Build label mask of thalamus for A0: Editor module
- Create Labelmap From”: A0_labels
- Select Labelmap to Edit: select the newly created “A0_labels-label” and then select “Rename”. Rename the new volume to A0_thalamus
- From the icon panel, select the “Threshold Icon”
- Threshold range: enter 500 and 526
- change A1_labels: change label 10 to 49; Editor module
- Select Labelmap to Edit: Aa_labels
- Label field: enter 49
- Change Island Icon; left click on area with left thalamus label 10
- Build label mask of thalamus for A1: Editor module
- Create Labelmap From”: A1_labels
- Select Labelmap to Edit: select the newly created “A1_labels-label” and then select “Rename”. Rename the new volume to A1_thalamus
- From the icon panel, select the “Threshold Icon”
- Threshold range: enter 49 and 49
- Smooth A1 thalamus labelmap: Filtering / Denoising / Median Filter
- Neighborhood Size: (default) 1,1,1
- Input Volume: A1_thalamus
- Output Volume: A1_thalamus
- Build thalamus surface model of A0: Model Maker module
- Input Volume: A0_thalamus
- Model Name: A0_ThalamusModel
- Labels: 1
- Smooth: 50
- Decimate: 0.25
- Split Normals: no
- Point Normals: yes
- Save Intermediate Models: no
- Build thalamus surface model of A1 (Model Maker module as above, with A1_thalamus as input and A1_ThalamusModel as output.
- Co-register thalamus surfaces: Python Surface ICP Registration module. Settings:
- Landmark transform mode: Affine
- Mean Distance Mode: RMS
- Maximum Number of Iterations: 500
- Maximum Nmber of Landmarks: 200
- Start by matching centroids: yes
- maximum mean distance: 0.01
- Initial Transform: none
- Input Surface: A0_ThalamusModel
- Target Surface: A1_ThalamusModel
- Output Surface: none
- Output Transform: Xform_A0Affine_ICP
- Apply Registration Xform to labelmap: Resample Scalar/Vector/DWI Volume module. Settings:
- Input Volume : A0_labels
- Reference Volume : A1_labels
- Output Volume : “Create New Volume”, rename to “A0_labels_aff”
- Transform Node: Xform_A0Affine_ICP
- Interpolation Type: “nn”
- Change datatype of new volume A0_labels_aff to labelmap (Volumes module)
- Apply Registration Xform to thalamus mask: Resample Scalar/Vector/DWI Volume module. Settings:
- Input Volume : A0_thalamus
- Reference Volume : A1_labels
- Output Volume : “Create New Volume”, rename to A0_thalamus_aff
- Transform Node: Xform_A0Affine_ICP
- Interpolation Type: “nn”
- Change datatype of new volume A0_labels_aff to labelmap (Volumes module)
- Mask new labelmap with A0_thalamus_aff: Mask Image module
- Input Volume : A0_labels_aff
- Mask Volume : A0_thalamus_aff
- Masked Volume: A0_labels aff
- Mask new labelmap with A1_thalamus: Mask Image module
- Input Volume : A0_labels_aff
- Mask Volume : A1_thalamus_aff
- Masked Volume: New volume, rename to: A0_labels aff_clip
- Typecast A1_labelmap: Cast Image module
- Input Volume: A1_label
- Output Volume: A1_label
- Output Type: “short”
- Merge Labelmaps:Image Label Combine module
- Input Label Map A: A0_label_aff_clip
- Input Label Map B: A1_labels
- Output Label Map: “Create New Volume”, rename to A1_labels_merged
- First label overwrites second: yes
Registration Results
Download
- download entire package (Data,Tutorial, Solution, zip file 14 MB)
- Presets
- Tutorial only
- Image Data only
Discussion: Registration Challenges
- Because the structures of interest are a very small subset of the image without distinct grayscale contrast
- the two atlases represent different anatomies and hence some residual misalignment is inevitable
- the two labelmaps have different resolutions and different smoothness of structure outlines. Some need filtering to remove spurious surface details that would distract the registration algorithm
Discussion: Key Strategies
- Because the structures of interest are a very small subset of the image without distinct grayscale contrast, we co-register surfaces rather than intensity volumes
Acknowledgments
- dataset provided by Ron Kikinis, M.D. and Florin Talos, M.D.