Head CT MRI fusion/registration

Hi everyone, I have only recently started using 3D Slicer and have a rather specific question:
I am trying to fuse the images of the same person head MRI and CT scans. I have tried the general registration (BRAINS) module, which works but the results are not yet satisfactory. Therefore I want to find out if this task is overall manageable and if so, what are the best ways/modules to do so?

I’d suggest starting with the material here:


I find that General Registration (Elastix) module often works much better and usually it doesn’t require any parameter tuning. The module will show up in Registration category after you install SlicerElastix extension.

1 Like


this is a very important registration step for instance in verifying the
results of DBS lead implantation by superimposing the postop CT onto the
preop T1 / T2 / SWI etc. However, none of the common registration method
work well (with the exception of Brainlab - but then, export and further
analysis with another tool is not possible). I tried flirt, ants, elastix
(SlicerElastix extension, as you suggested Andras), I think that the strong
contrast on the tissue-air-interface in CT causes the problem. I ended up
using landmark registration in MIPAV, but thats far from optimal.

Did anyone find a way how to perform a fast rigid registration of CT to T1
MRI with acceptable results?

And - St. P. the registration library doesn’t have an example for this case.



Elastix worked really well for me for any reasonable registration problem that I threw at it. If you use a suitable metric (such as mutual information), then strong
contrast on the tissue-air-interface in CT should just help the registration . What kind of registration error did you have? Can you share a data set where you have registration issues?

Note that there are great rigid/affine/deformable landmark registration modules in Slicer. For images that are already somewhat aligned you can use Landmark registration module. For general cases, you can use Fiducial registration wizard module in SlicerIGT extension.

Registration of pre/post-op images of a same patient is a single-step intra-patient registration - should be quite easy.

Do I understand correctly that you register pre/post-op images to each other by registering each to an atlas? That would not be ideal, as you need to register twice (instead of just once), and inter-patient (patient-to-atlas) registration is a much more difficult problem than intra-patient registration.

Yes, you understand correctly, I register pre and post op images to each
other, the postop images have the electrodes in them (which might be a part
of the problem). Is there a way to modify the parameters of elastix
directly in SlicerElastix or load a different parameter set other than the

I can also share the data (if you have the time to help), just tell me the
preferred way and I will send the files.


To modify Elastix registration parameters, open Advanced section and click Show database folder button. It should show the registration preset database folder. You can edit ElastixParameterSetDatabase.xml to add new presets (name, description, etc. and a list of registration steps) and edit/add .txt files to edit registration steps.

If you upload a set of images to dropbox, onedrive, google drive, … and post the link here then I can have a quick look

These are the files,

preop T1 and postop CT

Thanks for the help Andras!


Thank you, I had a look at the images and indeed registration is not trivial. Probably the best would be to do a literature review to see how others have approached this task before, but here are a few ideas that you may try:

  • If you want to make sure that the brain is registered correctly then skull stripping (removing the skull from images) may help. For MRI images, you can use SwissSkillStripper extension (or ROBES or SkullStripper). For CT images, you may use SwissSkullStripper extension, too, but use a CT instead of an MRI as atlas volume. You can use any head CT and corresponding brain labelmap image.
  • You may improve initial registration by landmark registration (either using Landmark registration module; or Fiducial registration wizard module in SlicerIGT extension). Then, use a registration optimizer that can restrict maximum translation and rotation to make sure it finds solution around the initial guess.
  • Check out Elastix parameter file database (http://elastix.bigr.nl/wiki/index.php/Parameter_file_database)
  • Check out Slicer registration case library and Registration FAQ

@pieper @ihnorton have you registered these kind of images in the past? Would you have any suggestions?


I have registered this kind of images and I tried the registration using
your data. After I increased the percentage of samples from 0.002 to 0.02
I got the results show in the attached screen capture. Is this registration
good enough or what kind of problems did you mean? I used General
Registration (BRAINS) modules of Slicer 4.8.

Most important parameters:
Fixed Image: T1
Moving Image Volume; CT
Percentage of samples: 0.02
Output settings: Slicer linear transform
Initialization: None/off
Registration phases: RIgid (6 DOF)
Cost Metric: MMI

To still increase the registration accuracy (if needed) I would try to
mask the registration to that part of the brain where the electrodes of
interest are located.

1 Like

@eeros looks good!

@lassoan the volume of disturbed area is very small relative to the total head volume, so I have usually been able to register these kind of images in BRAINSFit with just manual initialization and some parameter fiddling like this (the commercial navigation system we use in AMIGO works out of box for these kind of images – my recollection is that they use some variation on AIR).

1 Like


I have tested increasing the samples percentage, which worked in that
particular case, looks really like some “fiddling” is necessary. In some
other cases, I didn’t succeed, even with masking of the electrodes. All
very work intensive.

Interestingly, Brainlab has a very robust solution - in neurosurgery, CT-MR
registrations are necessary on … weekly, not daily … but still regular
basis. Does anybody have any knowledge of what algorithm they use?

Thanks in advance,


I’d also suggest trying DRAMMS - it has worked well on many different registration scenarios:


Hello everyone,

is it possible to make fusion of 3 studies (arterial, venous and late excretion phase in CT urography)? And than after the fusion where I will have arteries, veins and calices and ureters in one place to make segmentation of each part as done normally without fusion?

And a practical question, if I want to make a fusion of the one part of the abdomen (kidneys) should I first crop every study separately or when studies are fused together?

And I have issue with registration of the images.
When I want to chose moving image volume, only one study appears (bone CT scan), there is no MR study that I have loaded together with bone study as seen on the pic.fusion1

intel core i7 7700HQ 2.80 GHz
64x operating system
Windows 10 Home

Hi @kopachini -

Regarding the registration of multiple phases, yes it will probably work. You’ll just need to experiment.

Not sure exactly what you are asking regarding the cropping. You can crop the volumes either before or after transforming them. You might want to crop just the kidney to make registration more accurate and quicker.

Regarding the MR not showing in the selector, it’s probably not a scalar volume. Perhaps it loaded as a diffusion or multivolume.

I solved that problem… issue was that I tried to load two studies at once and then the second study was loaded as multivolume. when I loaded one study at the time, I continued without a problem.

Only, I had the idea of fusion a bit different… I thought that when I make fusion before segmentation, when I start to segment I will have two phases or MR times on one stack combined, but there are still two separate phases that I need to change in between. But nevermind, that works, too :slight_smile:

You can display two frames at a time (one as background, another one as foreground volume) and fade between them. Basic Slicer visualization tutorials should cover this, but if not then let us know and we give step-by-step instructions.

Thank you for reply. I manage that as well as segmentation of different anatomical structures on two fused studies. I wanted to say that in my head I thought that when I make fusion of two studies they will appear as merged into only one… but process of fading works just fine, too :slight_smile:
I didn’t tried to fuse 3 different studies (don’t have idea how to do it)