Translation in x & y
5 views (last 30 days)
Show older comments
How can I find the translations in the x & y coordinates in order to align edge detected images. I have 3 edge detected images and I want to align the second and third parts(G&R) to the first(B).
How can I do this using the 'circshift' function. As I want to Use the sum of squared difference metric to measure how well images match:
Sum of squared differences: sum( (image1-image2).^2 )
I want to record the displacements in x&y that were used to align the parts for each image
1 Comment
Answers (3)
Image Analyst
on 2 Apr 2013
Your method will be, well, let's say "suboptimal." You might want to give imregister() a try. You can run it on either on the original images or the edge detected output images.
1 Comment
Image Analyst
on 3 Apr 2013
Here's my demo of normalized cross correlation which can be used to locate one image in another: http://www.mathworks.com/matlabcentral/answers/69245#answer_80505
Sean de Wolski
on 2 Apr 2013
doc imregister
I have also found this one to be very fast and efficient:
It does not minimize the sum of squared differences, though. It instead maximizes the normalized cross power spectrum.
Implementing your own minimization of SSD should be fairly straight forward, simply a for-loop over a few different ranges.
See Also
Categories
Find more on Geometric Transformation and Image Registration in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!