Ac-pc based registration

Hello 3d Slicer forum,

I’d like to register two different images based on aligning the ac-pc lines. What is the best way to do this? Usually, I would do a nonlinear normalization of the moving image (atlas) to the fixed image, followed by a rigid affine transformation. However, the acpc lines do not necessarily align once this methodology is performed. I was thinking that the next step would then be to align the acpc lines through aligning the acpc landmarks? Is this a correct strategy?

Thanks for your help,


I used the Landmark registration module and from what I see, both ACPC lines can be aligned either through affine or thinplate (nonlinear) registration using a fixed and moving image. There are still differences in other areas.

What is the goal of the alignment? If you need ACPC line alignment then you can use 4 landmarks and rigid transform.

If you need complete alignment of all structures in the images then you can use image-based registration using “General registration (BRAINS)” or “General registration (Elastix)” module (the latter requires installation of SlicerElastix extension).

The goal of the alignment is to bring atlas structures in MNI space into patient ac-pc space, particularly basal ganglia structures since I am dealing with DBS patients. A complete alignment of all structures is ideal. I’ve tried the General Registration (BRAINS) module and got good alignment between the T1 mni atlas and T1 patient acpc image for one patient using a nonrigid followed by affine transformation (moving image = T1 mni; fixed = patient T1 acpc); however, alignment was not good for another patient. I was thinking that maybe forcing an ACPC alignment between the images may lead to consistently good alignment across different patients. I was hoping that it wouldn’t have to be a trial-and-error registration for each patient.

is there a way to manually adjust the moving image in 3d Slicer such as in ITK-SNAP?

Slicer has way better methods for image alignment! You have the option of manual translation/rotation using sliders or 3D widgets, but all these processes are iterative, take a long time, especially if you need to rotate as well. A much faster, better, non-iterative method is landmark-based registration. There are several modules for this, but the two that stand out are:

  1. Landmark registration module (in Slicer core). It is mainly developer for fine-tuning alignment of images.

  2. Fiducial registration wizard (in SlicerIGT extension). It is more general purpose (not just for image to image but also for model to image, navigation system to image, etc.). See U-12 SlicerIGT tutorial for guidance about how to use it.

Both modules support rigid and deformable alignments.

Great thanks Andras! I was not aware of the Fiducial registration wizard.