View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
Image Registration App

4.2 | 15 ratings Rate this file 84 Downloads (last 30 days) File Size: 202 KB File ID: #34510 Version:
image thumbnail

Image Registration App


Brett Shoelson (view profile)


09 Jan 2012 (Updated )

UI environment for registering a Moving image to a Fixed image

| Watch this File

File Information

Provided interactive access to ALL parameters and components used by the IMREGISTER tool chain.
REQUIRES the Image Processing Toolbox and MATLAB R2012a or later!
Launches a GUI with default images.
(New images can be loaded from the menu.)
Launches a UI with user-specified Moving and Fixed images. Images can be specified by name, or provided directly.
CLASS SUPPORT/NOTE: ImageRegistrationGUI supports the same (2D grayscale) image classes supported by IMREGISTER. However, it will also work on RGB images (using RGB2GRAY under the hood), and on logical images (using IM2DOUBLE).
Direct calculation of the transformation matrix("TFORM") is now supported (requires R2013a)!

Required Products Image Processing Toolbox
MATLAB release MATLAB 8.0 (R2012b)
MATLAB Search Path
Other requirements REQUIRES MATLAB R2012a or later, and the Image Processing Toolbox
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (33)
09 Feb 2017 Brett Shoelson

Brett Shoelson (view profile)

@aravindh: This UI is just a front end for the functionality in the Image Processing Toolbox. The references you need are in the documentation for the functions my app accesses.

Comment only
04 Jan 2017 aravindh raju

will you give atleat one refernce paper please

05 Aug 2016 Brett Shoelson

Brett Shoelson (view profile)

No...not by design. Not unless you can extrapolate image-wide parameters from planewise registrations. Sorry.

Comment only
05 Aug 2016 John Thompson

Hello Brett,

Will this work on 3D image sets (e.g., MRI)?


Comment only
23 Apr 2016 oussama moujahed

can i see this file

05 Mar 2016 Vali ollah Maraghi

24 Aug 2015 Kento Morita

can i use this tool for 3D rigid image registration for MRI in matlab

Comment only
16 Jun 2015 Brett Shoelson

Brett Shoelson (view profile)

@Zhiwei and Wang: Thanks for the notes and ratings.

You can just cite MATLAB and the Image Processing Toolbox. For example: MATLAB and Image Processing Toolbox Release 2015a, The MathWorks, Inc., Natick, Massachusetts, United States.

Comment only
16 Jun 2015 zhiwei Li

I want to apply this code in my thesis, thank you, what should I reference?

10 Jun 2015 Wang Hongyu

I appreciate the work you have done and I want to cite it in my article. How can I cite it in references?? Thank You

16 Dec 2014 Brett Shoelson

Brett Shoelson (view profile)

Thanks for the rating. I guess I would still call this an intensity-based segmentation, unless you are extracting properties of the regions (centers, radii) and using some algorithm to match. In this case your intensities are binary-valued, but they're still intensities.

Comment only
16 Dec 2014 Shirin

Shirin (view profile)

Dear Brett,

I have 2 images which they contain a circle.
First, I segmented the circle in both images, then apply your registration app to register them.

My question is, what will be the name of my registration?

* Intensity-based?
* Feature-based?
* Segmentation-based?

Since, my images are "black & white", I think I cannot name it "intensity-based", right?

Thank you

14 Aug 2014 Brett Shoelson

Brett Shoelson (view profile)

Just click on the "Download Submission" button on the upper right of this page.

Comment only
14 Aug 2014 binu livingston

i want coding for this

Comment only
20 Feb 2014 Seyed Mostafa Mousavi Kahaki

Thank you very much Brett to provide me a comprehensive information. Appreciate your help and looking forward to see more great jobs from you. If I face any issue, i will back to ask you.

Best Wishes.
S.M.M. Kahaki

19 Feb 2014 Brett Shoelson

Brett Shoelson (view profile)

Image Registration App is just a front end for the functionality of IMREGISTER.

IMREGISTER is actually a collection of algorithms (optimization + similarity metrics). Because of this, the correct citation would depend on what flavor of optimization and metric you're using.

Here are some applicable references:

Mutual Information based registration:

"Nonrigid multimodality image registration" D. Mattes, D. R. Haynor, H. Vesselle, T. Lewellen and W. Eubank Medical Imaging 2001: Image Processing, 2001, pp. 1609-1620. [2] "PET-CT Image Registration in the Chest Using Free-form Deformations" D. Mattes, D. R. Haynor, H. Vesselle, T. Lewellen and W. Eubank IEEE Transactions in Medical Imaging. Vol.22, No.1, January 2003. pp.120-128. [3] "Optimization of Mutual Information for MultiResolution Image Registration" P. Thevenaz and M. Unser IEEE Transactions in Image Processing, 9(12) December 2000.

One Plus One Evolutionary Optimizer:
"Parametric estimate of intensity inhomogeneities applied to MRI" Martin Styner, G. Gerig, Christian Brechbuehler, Gabor Szekely, IEEE TRANSACTIONS ON MEDICAL IMAGING; 19(3), pp. 153-165, 2000, (
"Evaluation of 2D/3D bias correction with 1+1ES-optimization" Martin Styner, Prof. Dr. G. Gerig (IKT, BIWI, ETH Zuerich), TR-197 (

Most of the literature seems to take the basic similarity metric/ optimization framework for granted without citing references. The references are usually for specific parts of the framework (numeric optimization, image similarity metrics, ways of pyramiding, etc.).

Hope that helps,

Comment only
19 Feb 2014 Seyed Mostafa Mousavi Kahaki

Hello Mr. Brett Shoelson,

Thank you very much for provide this implementation. i want to use this method as comparison in my journal paper. i need to cite the basic journal paper of this implementation. please provide me the citation if any.
Thank you very much.
S.M.M. Kahaki

Comment only
23 Dec 2013 AHMED AHMED


Comment only
15 Nov 2013 Brett Shoelson

Brett Shoelson (view profile)

Hi Emily,
I am not sure what you mean by "manual...GUI." But it probably wouldn't make any difference if I did. While IMREGCONFIG, IMREGISTER, and IMREF3D all facilitate 3D image registration, I haven't incorporated that capacity into this application, nor am I aware of any GUI that does. You might find the demo on "Registering Multimodal 3-D Medical Images" useful, though.

Comment only
14 Nov 2013 Emily

Emily (view profile)

Hello Brett,
Do you know of any manual registration GUIs for 3D images?
Thank you!

Comment only
30 Oct 2013 Brett Shoelson

Brett Shoelson (view profile)

Eric, "it doesn't work properly" doesn't help me fix it. I use this frequently in both R2013a and R2013b, and without problems. If you can steer me to the issues you're finding, perhaps I can get to the bottom of them.

And the inability to generate the tform reflects the current status of IMREGISTER, and isn't necessarily a limitation of this tool. That said, function IMREGTFORM was added to the Image Processing Toolbox in R2013a, and my updated version reflects that change. (And provides the tform as an output.)

Thanks for the rating,

Comment only
26 Sep 2013 Eric

Eric (view profile)

It doesn't work properly in 2013a and 2013b, in that there doesn't seem to be a way to have it generate the t-form matrix.... Otherwise, it works great in older versions! I was bit harsh in the last rating...

26 Sep 2013 Eric

Eric (view profile)

20 Sep 2012 Sivakrishna

hi brett,

i was taken noise image as a fixed image and the 45 degree rotated image as moving image.

after doing the image registration i am getting different different angle rotation..

please any suggest solution for above..

06 Sep 2012 Eric

Eric (view profile)


I think I have the same question as Panagiotis... I am able to successfully register two images with the program and want to use the t matrix provided in the command window to perform the same transformation to another image. However, when performing this operation the scaling seems all wrong (it moves the image way too far I think). Can you provide any suggestions on how to better use that t matrix? Is this due to the images possibly being in a spatial vs. pixel coordinate system? Thanks!

29 Jun 2012 Panagiotis

I figure it out! I used the following example:
and it worked!!! Thanks again!

Comment only
29 Jun 2012 Panagiotis

29 Jun 2012 Panagiotis

Hi Brett, this is a very good program, well done! When finishing the process a t matrix for transformation appears in the command window. How can I use that matrix to transform and register another image without re-running the whole code? I'm saying this because I'm collecting the same image in 3 different "colors" and I want to transform/register all the images with the properties from the initial run. Any suggestions?

PS. When I'm saying "colors" I mean that the same captured frame is collected through a different filter that reveals different information each time.


11 Jun 2012 Brett Shoelson

Brett Shoelson (view profile)

Thanks for the feedback, John. ImageRegistrationGUI was designed to expose and allow control over every possible input to the new IMREGISTER function, and to show interactively the results of changing those inputs. Internally, IMREGISTER generates a TFORM (which is appropriate for use in a call to IMTRANSFORM, exactly as is a tform generated with CP2TFORM); internally, in fact, IMREGISTER _uses_ IMTRANSFORM. The TFORM structure is not currently provided as an output, but if you modified the syntax of the function, you could easily avail yourself of that TFORM.
The < CPSELECT> tool does have a "point prediction" mode.
HTH, Brett

Comment only
11 Jun 2012 John D

John D (view profile)

The Gui is very helpful and works really well as a tool for evaluating intensity based image registration. However the core function is a convergence algorithm and possibly because of this, never seems to produce pixel perfect or near perfect registration. It's main advantage is obviously to automate the process without requiring control point user intervention.
Conversely from my experience, imtransform seems to produce better registration results and I can get pixel perfect registration in most cases for my application, but this requires user intervention for control point generation.
What would be really good, from my viewpoint is an algorithm which takes the initial control points from the base image and then automatically searches for equivalent matches in the unregistered image. Any help you can provide in this direction would be a definite five star!

28 May 2012 Brett Shoelson

Brett Shoelson (view profile)

Ray, IMSHOWPAIR (like IMREGISTER) is in the Image Processing Toolbox in R2012a. (See "requirements" above.) Compelling reason to upgrade... :)

Comment only
28 May 2012 Ray

Ray (view profile)

missing imshowpair function(?)

Comment only
08 Apr 2012 mohamed nagah

09 Mar 2012 1.2


09 Aug 2012 1.4

Better path management when loading new files. (Now queries for second image starting in the directory of the first image.)

12 Sep 2012 1.5

Updated to include an App file for R2012b.

31 Oct 2013 1.7

Updated to work with IMREGTFORM/IMWARP in R2013a, and to output code for TFORM creation. Also renamed from "GUI" to "App."

31 Oct 2013 1.8

Just changed the description to indicate that as of R2013a, now supports calculation of TFORM.

03 Jun 2015 1.9

Bug fixes. Should be more robust over a wider range of MATLAB versions.

01 Sep 2016

Updated license

Contact us