Documentation:Nightly:Registration:RegistrationLibrary:RegLib C48

From Slicer Wiki
Revision as of 21:52, 29 August 2014 by Meier (talk | contribs) (→‎Procedure)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Home < Documentation:Nightly:Registration:RegistrationLibrary:RegLib C48

Back to Registration Library

Slicer Registration Library Case #48: Fiducial Registration of Abdominal MR/CT


this is the fixed CT reference image. All images are aligned into this space
RegArrow Rigid.png
this is the moving MR image, to be aligned with the reference on the left
fixed image/target
intra-op CT
moving image
pre-op MRI


Goal is to align the pre-op MRI to the intra-op interventional CT. The MR contains detail about location and extent of the pathology not apparent on the CT. Hence we register the MR to the CT to help guide the intervention. This is the same case as Case# 17, but here we demonstrate the use of the Fiducial Registration module. Fiducial registration can be useful in cases where the initial misalignment is too great or image appearance is too different for direct intensity-based registration to succeed. It can also b useful as a tool for an initial alignment to be refined with additional intensity-based methods.
Approach: we use the fiducial registration method to obtain an initial alignment that corrects for the strong rotation and translation between the two images. This method requires two separate lists of fiducials that represent corresponding anatomical landmarks. The number and order of the fiducials in the two lists must be the same.

Modules used

Download (from NAMIC MIDAS)

Why 2 sets of files? The "input data" mrb includes only the unregistered data to try the method yourself from start to finish. The full dataset includes intermediate files and results (transforms, resampled images etc.). If you use the full dataset we recommend to choose different names for the images/results you create yourself to distinguish the old data from the new one you generated yourself.


MRI, CT, abdominal, image-guided surgery, interventional radiology, intra-subject, fiducial-based registration

Video Screencasts

  1. fiducial-based registration
  2. alternative tool: using SlicerIGT's fiducial-based registration (shows extension download and module execution only, for the landmark selection see movie above)


  1. Create CT fiducial list:: see also movie above
    1. load the two datasets. Adjust brightness & contrast if necessary. Place the CT scan in the background and center the views.
    2. Open the Markups module
    3. List: create and rename new list. Name to "fiducials_CT" or similar
    4. locate anatomical landmarks that is common to both images and readily identifiable. Smaller and distinctly shaped structures will likely carry less of a selection error than large uniform ones. It is also advisable to select fiducials from or near the region of interest.
    5. switch the mouse function to fiducial mode, by clicking the Fiducial button in the toolbar. Slicer4 FiducialButton.png
    6. place a fiducial marker via left mouse-click
    7. you should see the fiducial appear in the list on the left. Double click the name field and rename the point with a descriptive name that will let you distinguish it from others. The fiducials we generate in the list must be in the same order in both lists (MR and CT), so it is important we can distinguish which fiducial is which.
    8. select 2-3 additional fiducials. The more fiducials we have, the more robust the registration. However, if you feel that the uncertainty/accuracy of a new landmark is significantly above the others, you may do better leaving it out and trying with a smaller set. For a rigid registration at least 3 fiducials are needed. Another advantage of having more than necessary, is that you can later easily test/revise the registration by removing individual points and recalculating the transform. Because the calculation is instant, you can see immediately if the match improves by leaving individual markers out. More on this in the discussion below.
    9. open the Advanced tab and change the colors for this list (both selected and unselected). This will help you keep the two lists apart, i.e. distingush the CT list from the MR list
    10. switch the MR image into the backrgound and recenter the views.
  2. Create MRI fiducial list: see also movie above
    1. List: create and rename new list. Name to "fiducials_MRI" or similar
    2. repeat the selection of fiducials as above.
    3. in the Advanced tab, you can reshuffle the order of fiducials in the list. Important: remember that the fiducials in the two lists must be in the same order, i.e. the same anatomical loci must appear in both lists in the same order. If not you can use the shuffle buttons in the Advanced tab to rearrange.
    4. Save both lists. This will create ".csv" with fiducial names and coordinates
  3. Fiducial Registration:
    1. go to the Documentation/Nightly/Modules/Fiducial Registration ''Fiducial Registration'' module (menu: Registration / Specialized)
    2. Fixed Landmarks: select "Fiducials_CT"
    3. Moving Landmarks: select "Fiducials_MR"
    4. Save transform: select "Create and rename new linear transform, rename to "FiducialReg_Rigid" or similar.
    5. click Apply. note that the calculation is instantaneous, but you will not see an effect on the image just yet.
    6. place the CT image in the background and center. Place the MR image in the foreground and set the fade slider halfway so you can see both images superimposed
    7. Go to the Documentation/Nightly/Modules/Data ''Data'' module
      1. you should see the newly created transform node in the MRML tree. Locate the MR image and drag its node onto the transform node (release the left mouse button when a box appears around the transform node). The MR image is placed inside the new transform. You should see the views update immediately.
      2. also drag the "fiducially_MR" node into the transform. Your data hierarchy should look similar to the image on the right.
        RegLib C48 DataHierarchy.png
      3. use the fade slider to judge the alignment.
    8. the 3D viewer will be very helpful here to assess the alignment of the fiducial pairs in space.
  4. optional: Revise registration / sensitivity test
    1. if you have more than the minimal (3) fiducial points available, you can test the effects of individual landmarks by recalculating the transform with individual points deleted.
    2. make sure you have both fiducial lists saved beforehand
    3. from the 3D or 3D views, identify a fiducial pair that shows the largest residual misalignment after registration (make sure the MR fiducial list is also within the transform)
    4. go back to the Markups module and delete that fiducial from both lists.
    5. make sure you have the CT in the background and the MR in the foreground, the fade slider set to halfway and the MR image inside the result transform
    6. return to the Documentation/Nightly/Modules/Fiducial Registration ''Fiducial Registration'' module (menu: Registration / Specialized) and rerun the registration, choosing the same transform result name.
    7. click apply. This will calculate a new transform with the updated fiducial list and replace the existing transform. You should see the difference immediately as the views update. You can use this to test if a registration can be improved by leaving out indiv. landmarks.
  5. Alternative tool: Fiducial Registration within the SlicerIGT Extension: the SlicerIGT extension also contains a landmark registration tool that offers rigid and similarity registration based on fiducial lists (screencast on downloading and running the SlicerIGT extension)
    1. Downloading the SlicerIGT extension:
      1. click on the extension manager icon in the toolbar for details on the extension manager see here
      2. scroll down and locate the SlicerIGT icon, click on Install.
      3. once the module is loaded, save any unsaved work, then click on the Restart button to restart Slicer.
    2. go to the Fiducial Registration Wizard within the "IGT" module menu
      1. for To fiducials", select the "fiducials_CT" list
      2. for From fiducials", select the "fiducial_MR" list
      3. for Sekect a Linear Transform, select "Create and Rename New.." and rename to "Xf2_IGTXform" or similar
      4. note that the calculation executes automatically without further user prompting, you should see a "Status: Success! RMS Error: 4.0" or similar message.
      5. return to the Documentation/Nightly/Modules/Data ''Data'' module and drag the MRI volume and the "Fiducials_MR" node into the new transform. You should see them align nicely.

Registration Results

RegLib C17 unregistered.gif MR/CT before registration (click to enlarge)
RegLib C48 registered.gif MR/CT after fiducial rigid alignment (click to enlarge)