# Shifting Images

## Contents

Assuming we have two images of the same object:

```
imagesc(M81B)
axis equal
```

```
imagesc(M81R)
axis equal
```

that we are not sure if they are aligned properly or not. In order to make a composite image, these images in different filters must be exactly lined up. Fortunately, there are many bright stars in both images which can be used as referenct points.

## Finding the difference in coordinates

You must be careful when choosing the reference points. Here we use two bright stars on the upper-left of the galaxy and then
take average over them. *(Theoretically, the more points you use, the more accurate your result will be.)*

We now type ** ginput** to find the coordinates of the points in both images:

```
imagesc(M81B)
axis equal
[x1, y1] = ginput(2)
```

x1 = 176.4459 253.3494 y1 = 358.2178 339.5746

```
imagesc(M81R)
axis equal
[x2, y2] = ginput(2)
```

x2 = 178.7763 253.3494 y2 = 358.2178 344.2354

Assuming we want to keep ** M81B** unchanged and shift

**to fit**

`M81R`**. Then we calculate the difference in coordinates:**

`M81B`Diffx = x1 - x2

Diffx = -2.3304 0

Diffy = y1 - y2

Diffy = 0 -4.6608

Averaging over the two points we have

Dx = mean(Diffx)

Dx = -1.1652

Dy = mean(Diffy)

Dy = -2.3304

Remember that the *rows* are in the *y*-direction and the *columns* are in the *x*-direction, and the pixel indices should be integer. Therefore the number of rows and columns over which ** M81R** must be shifted, are

Nrow = round(Dy)

Nrow = -2

Ncol = round(Dx)

Ncol = -1

The ** round()** function returns value to the nearest integer. Note that, even though the original images

**and**

`M81B`**look aligned properly, they are actually not!**

`M81R`*(If both Nrow and Ncol are zero, then you don't need to shift either images; they are aligned already.)*

## Calling the function 'imshift'

Now we use the function ** imshift** to shift

**with**

`M81R`**and**

`Nrow`**:**

`Ncol`imr=imshift(M81R,Nrow,Ncol);

Then we can compare the shifted ** M81R** (i.e.

**) with**

`imr`**:**

`M81B````
imagesc(M81B)
axis equal
```

```
imagesc(imr)
axis equal
```