File Exchange

image thumbnail

Image Registration (2D) using Mutual Information (Optimization toolbox needed)

version 1.0 (182 KB) by

This is an updated automatic image registration using mutual information for users of IP toolbox.

3 Ratings



No License

[2D Mutual Information Matching using Optimization toolbox]

This is an updated automatic image registration using mutual information for users of IP toolbox coded by Kateryna Artyushkova from The University of New Mexico.

The object function 'image_registr_MI.m' was originally coded by the person and modified by me.

I added a scale factor for complete image registration using Optimization toolbox. Therefore, the Optimization toolbox is required to run this program.

The zip file contains three files.

- opti_MI_scaling.m % Main code
- image_registr_MI.m % Object function
- image.mat % Image matrics

In 'image.mat', IM1 and IM2 were included only for example purpose.

- IM1: 230 X 230 MRI 8-bit image
- IM2: 512 X 512 CT 8-bit image

To run this code, enter the commands as follows:

>> x0=[50; 50; -15; 0.5];
>> [x, fval]=fminsearch(@image_registr_MI,x0)


Run 'opti_MI_scaling' without any options to see an example.

Your selection of initial point, x0, is critical for this matching.

-x0(1): First index of row for cropping the rotated IM2 with x0(3) angle
-x0(2): First index of column for cropping the rotated IM2 with x0(3) angle
-x0(3): Angle
-x0(4): Scale factor

Select them as close to the final matching points as possible; otherwise the matching will fail.

The 'fminsearch' function in the Optimization Toolbox is used. The objection function for this optimization technique is 'image_registr_MI.m'

Data types
The pixel size of IM1 is bigger than IM2 and the image size of IM1 is smaller than that of IM2. Every image should be 8-bit gray scale image. If not, you must change it.

Comments and Ratings (8)


dinesh (view profile)

How to convert IM1 and IM2 images into a single .mat file(here as image.mat)


dinesh (view profile)

It works fine and i thank for it .After running the code ,in command window it shows like below.

x =


fval =


Elapsed time is 15.828456 seconds.

what is that "x,fval,elapsed time"and that elapsed time changes for each time i run it . why it is so .... I am very new to this area please explain


CAU (view profile)

I appriciate this helpful profile for MI


Anders (view profile)

There seems to be an error in your code, you normalize the histogram by the size of the histogram instead of the size of the image! Otherwise the total probability is != 1

[r,c] = size(h); % THIS SHOULD BE size(image_1) !
b= h./(r*c); % normalized joint histogram

xmzshljz ljz


Josep M Serrainat

It is very helfull for may tesis, thanks

andy lee

I may try at once,thank you very much

manju deshmukh

It is good and helpful

MATLAB Release
MATLAB 6.5 (R13)

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

» Watch video

Win prizes and improve your MATLAB skills

Play today