MATLAB Answers

Fabo

Translation in x & y

Asked by Fabo
on 2 Apr 2013

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

Products

No products are associated with this question.

2 Answers

Answer by 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


Answer by Sean de Wolski
on 2 Apr 2013
doc imregister

I have also found this one to be very fast and efficient:

http://www.mathworks.com/matlabcentral/fileexchange/18401-efficient-subpixel-image-registration-by-cross-correlation

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.

  1 Comment

Fabo
on 9 Apr 2013

How would I do a for-loop for the ssd, Im new to matlab


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today