I have been searching for software that can handle the task of registering a 2D image to a 3D volume. The 3D volume is a microCT scan, while the 2D image is taken from a plane passing through the sample. I am looking for something that can locate the plane of the 2D image within this 3D volume, i.e. get the 3D translation, rotation and scale transform betwee the image and volume.

First prize is for pre-compiled free Windows software, but if that isn't possible then any libraries that can handle this task. I see that ITK from Kitware provides registration tools, but I don't see any discussion of my specific task, which doesn't seem to a common one.

  • $\begingroup$ Some questions : 1. What are the run-time constraints on the algorithm? 2. Can we assume that the 2D image occupies a whole plane in the 3d volume? 3. How large can be the rotation and the scale? 4. Can you do a long pre-processing step? P.S - please supply images! $\endgroup$ – Andrey Rubshtein Oct 27 '12 at 23:45
  • 1
    $\begingroup$ dsp.stackexchange.com/q/679/29 is similar, but you're trying to match pixels to voxels, not 2D points to 3D points, right? $\endgroup$ – endolith Oct 28 '12 at 15:13
  • $\begingroup$ @endolith you are right, I am trying to match pixels to voxels. $\endgroup$ – chippies Oct 29 '12 at 6:56
  • $\begingroup$ @Andrey Sorry, I cannot supply images, while this is for research, the images are confidential. (1) For run-time, I don't mind if it takes a few days. I have a Core i7 2600k if that helps you to estimate running time. (2) The 2D image does occupy a whole plane through the sample. (3) rotation is probably less than 10 degrees, scale change 2D:3D is probably between 0.8:1 and 0.9:1. (4) What is the long preprocessing step? I could do it. $\endgroup$ – chippies Oct 29 '12 at 7:02

The software Amira from Visage Imaging has some excellent built-in registration features. I never tried that exact problem, though.

It is unfortunately pretty pricy, but you can download a free trial version of it from the website to give it a try. http://www.vsg3d.com/amira/overview

I also found some well implemented registration algorithms in the software MedInria, an open source and free software specially developed for medical image analysis. http://med.inria.fr


Have you been able to solve this? Im interested in the solution too. There are a couple of articles about this topic. But it is a very difficult problem to solve because there are so many local minima.

This thread on mathworks has some matlab code that the OP said worked after she edited it.

Elastix has some nice registration functions that you could call. If you have a good initial guess and strong constraints it might work.

  • 1
    $\begingroup$ I wrote my own software to solve this problem, although its not publicly available. The local minima are a real pain, more so in non-medical applications. Some pairs of 2D/3D images can't be registered yet, even with a lot of effort being expended, while others are easy. If your focus is medical images then Elastix is probably a good choice. $\endgroup$ – chippies Jan 31 '15 at 15:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.