MATLAB Answers

Superimpose two images on top of each other.

6 views (last 30 days)
Tan on 28 Jun 2021
Commented: Walter Roberson on 1 Jul 2021
Hi, I am quite new to MATLAB and not very familiar with how imregtform, imwarp, and whether I should have used "affine" or "similarity/rigid" instead to achieve my goal.
I am trying to superimpose my movingRegistered image directly on top of my fixed image, but this is the outcome that I get :
I can't get my movingRegistered image to translate directly to the top of my fixed image.
Would switching my approach from intensity-based registration to control point registration/feature detection and matching be the better approach?
This is my code that I am currently using:
function myfunc()
close all
fixed = image_resizing("test1.1.JPG");
moving = image_resizing("test2.1.JPG");
fixed = rgb2gray(fixed);
moving = rgb2gray(moving);
fixed = imresize(fixed,0.6, 'AntiAliasing', true);
moving = imresize(moving, 0.6, 'AntiAliasing',true);
[optimizer, metric] = imregconfig('monomodal');
optimizer.MinimumStepLength = 5e-6;
optimizer.MaximumIterations = 300;
tform = imregtform(moving, fixed, 'affine', optimizer, metric,'DisplayOptimization',false);
movingRegistered = imwarp(moving,tform,'OutputView',imref2d(size(fixed)));
imshowpair(fixed, movingRegistered,'Scaling','joint')
These are my two images that I would be using : &
Thank you so much for your help!
  1 Comment
Walter Roberson
Walter Roberson on 1 Jul 2021
In some recent work I was doing, I found that using Phase Correlation worked much better than any of the other ones I tested.

Sign in to comment.

Answers (1)

Bjorn Gustavsson
Bjorn Gustavsson on 1 Jul 2021
If your images are of equal size you can put them into different RGB-layers. Something like this:
merged(:,:,3) = fixed;
merged(:,:,1) = movingRegistered;
That should give you the fixed image as blue, and the movingRegistered as red. You might need to check the data-types (if double you'll need to normalize the merged to 0-1).

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by