## Translation in x & y

### Fabo (view profile)

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

Walter Roberson

### Walter Roberson (view profile)

on 2 Apr 2013

circshift is unlikely to be correct for this purpose.

## Products

No products are associated with this question.

### Image Analyst (view profile)

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.

Image Analyst

### Image Analyst (view profile)

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 (view profile)

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.

Fabo

### Fabo (view profile)

on 9 Apr 2013

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

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test