Projects:RegistrationLibrary:RegLib C40

From NAMIC Wiki
Jump to: navigation, search
Home < Projects:RegistrationLibrary:RegLib C40

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 #40: micro CT of structural changes in wood

Input

sample 1 lleft sample 2
fixed image 1/target
microCT sample 1
moving image
microCT sample 2


Modules

Slicer 3.6.1 recommended modules:

Objective / Background

We seek a low-DOF nonrigid registration to assess structural changes in the microstructure of the test sample. In particular the goal is to characterize the hygromechanical behavior of wood under specific environmental conditions.

Keywords

micro CT, serial imaging, change assessment

Input Data

  • reference/fixed : micro CT , 0.35x0.35x1 mm voxel size, 1024x1024x200
  • moving : micro CT , 0.35x0.35x1 mm voxel size, 1024x1024x200

Note: The original images are 350MB each and not included in the example set, since for the purpose of registration the subsampled smaller versions are equivalent. We subsample to the sizes below:

  • subsampled reference/fixed : micro CT , 1.41x1.41x1 mm voxel size, 256x256x200
  • subsampled moving : micro CT , 1.41x1.41x1 mm voxel size, 256x256x200

Download

Overall Strategy

  1. run rigid/affine registration (BRAINSfit)
  2. run 9x9x9 nonrigid registration (BRAINSfit BSpline) using the above affine as input

Procedures

  • Phase 0: Subsample to reduce memory usage (not included in example dataset)
The original images are 350MB each and not included in the example set, since for the purpose of registration the subsampled smaller versions are equivalent. We subsample to the sizes below:
  1. Load original images
  2. Go to Volumes module
    1. select Info tab and record the voxel size and overall dimensions. For this case we have 0.35x0.35x1 mm voxel size and an 1024x1024x200 voxel volume. To reduce this to 256x256 in plane resolution we will increase the voxel size to , 1.4x1.4x1 mm
  3. go to Resample Scalar Volume module
    1. for Spacing enter 1.41112,1.41112,1 (4 times the original inplane voxel size; through plane we leave unchanged.)
    2. for Interpolation leave linear (default).
    3. Input volume: select original image volume (e/g/ 20a_wood) , Output Volume: select "create new" , then select "Rename" and rename to "20a_wood_sub2" or similar
    4. Click Apply
    5. Go back to the Data module.
    6. you can now delete the original 350MB volume: right click on the node in the tree and select Delete Node
  • Phase I: Register Rigid/Affine
  1. open BrainsFit module
  2. set the parameters below or, if loaded, use presets (Parameter Set): BRAINSfit1_Affine
    1. Fixed: "88a_sub2", Moving: "20a_sub2"
    2. Registration Phases:
      1. initialize: "Off" (default) (note: you may have to expand the control tab to see the full line of options. Click and drag on the vertical separation bar between the control field and the views, to the right of the scrollbar
      2. select/check: "Include Rigid" Include Scale Versor 3D Include Affine" registration phase
    3. Output Settings
      1. Slicer Linear Transform: select "Create New Linear Transform", then select "Rename" and change name to "Xf1_Affine" or similar
    4. Registration Parameters: increase Number Of Samples to 200,000
    5. Leave all other settings at default
    6. Click Apply. Registration should take <1 min.
    7. Note: we're not selecting a resampled volume at this point, because the affine transform is only an intermediate step. It is recommended for the first time to do the affine and nonrigid portions separately, so that potential failure of the affine portion can be recognized. If you're confident about the affine step, you can combine both Phase I & II here into a single step. In that case choose the output selections from phase II below.
  3. When complete, the algorithm will automatically place the moving volume inside the newly created transformation node. To see this go to the Data module.
  4. set to link the 3 slice views
  5. Set the fixed image (88a) as background and the moving image (20a) as foreground.
  6. use the fade slider to pan between the two images and evaluate the registration quality. To see the original unregistered position, drag the moving image (20a) back out of the transform node (drag on top of "scene" node.
  • Phase III: Register norigid BSpline
  1. open BrainsFit module
  2. open Registration : BrainsFit module (presets: BRAINSfit3_BSpline_9x9x9
    1. Input Parameters: same as above:Fixed: "88a_sub2", Moving: "20a_sub2"
    2. Registration Phases:
      1. Initialize with previously generated transform : select "Xf1_Affine" generated above
      2. uncheck "Rigid", "ScaleVersor" and Affine, check: "Include BSpline registration phase"
    3. Output Settings
      1. set Slicer Linear Transform to "None"
      2. for Slicer BSpline Transform select "Create New Linear Transform", then select "Rename" and change name to "Xf2_BSpline" or similar
      3. for Output Image Volume select "Create New Volume", then select "Rename" and change name to "20a_sub2_Xf2" or similar to indicate that this volume is resampled with the above transform (Xf2_BSpline)
      4. change Output Pixel Type to match input data type, in this case "ushort"
    4. Registration Parameters: increase Number Of Samples to 200,000
    5. Registration Parameters: set Number Of Grid Subdivisions to 7x7x7
    6. Leave all other settings at default
    7. Click Apply. Registration should take ~2 min. Note: main optimizer is parallelized; i.e. multi-core CPU systems will benefit greatly in speed.
  • 'Phase IV: (optional not included in example dataset) Resample Original (full size) images
  1. load the full resolution image
  2. go to the ResampleScalarVectorDWIVolume module
    1. Input Volume: select original full size image (20a_wood)
    2. Reference Volume": select original full size reference (88a_wood)
    3. Output Volume: select "Create New Volume" , then "Rename" to "20a_wood_Xf3" or similar
    4. Transform Parameters under Transform Node select the above final BSpline transform "Xf2_BSpline_9x9x9"
    5. Transforms Order: make sure that output-to-input is checked and Bulk Transform is off
    6. Select desired interpolation type (linear or ws)
    7. Click Apply
  3. Save result

Registration Results

click on images for full size

unregistered
original unregistered
after affine registration
after affine + 9x9x9 BSpline registration
after affine registration after affine + 9x9x9 BSpline registration

Acknowledgments

Registration problem and dataset kindly provided by Alessandra Patera from the Swiss Federal Institute of Technology (ETHZ) in collaboration with the Swiss Federal Laboratories for Material Science and Technology (EMPA).