Using image registration parameters to transform another image

6 views (last 30 days)
I have multispectral data and I want to run image registration on 1 color and then use the trasformation parameters to register the other colors. I started with some test data I offset manually to write/test the code, but am having trouble. I thought that using imregtform would output the transormation parameters that are used by imregister. Then I could use those parameters with imwarp for the other colors, but when testing it to see if the result between imregister and the combo of imregtform + imwarp I don't get the same result. I have the code and example images below.
[optimizer, metric] = imregconfig('multimodal')
im2R = imregister(im2, im, 'rigid', optimizer, metric);
tform = imregtform(im2, im, 'rigid', optimizer, metric);
im2warp = imwarp(im2, tform);

Accepted Answer

Joseph Pyle
Joseph Pyle on 28 Jul 2022
I found out I need to fix the output view of the registered image to the reference image. I think otherwise it would be translated down, but plotted on new axis so it just ends up looking the same. Just needed to update the last line of code.
[optimizer, metric] = imregconfig('multimodal')
im2R = imregister(im2, im, 'rigid', optimizer, metric);
tform = imregtform(im2, im, 'rigid', optimizer, metric);
im2warp = imwarp(im2, tform, 'OutputView', imref2d(size(im)));

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!