# How can I get the new coordinates of a point after rotation of an image (2D)?

88 views (last 30 days)
was on 3 Oct 2018
Commented: Rik on 3 Oct 2018
I have got the coordinates of a point (P) in my main image (2D). The main image (im) is now rotated using imrotate and the angle alpha. Now, I want to know what the coordinates of P are in the rotated image.
P = [5;8]; % coordinates of point
alpha = 45; % angle for rotation
RotatedIm = imrotate(im,alpha); % rotation of the main image (im)
RotMatrix = [cosd(alpha) -sind(alpha); sind(alpha) cosd(alpha)];
ImCenter = (size(im)/2)'; % Center of the main image
RotatedP = RotMatrix*(P-ImCenter)+ImCenter; % Rotation of point P over center of the image with angle alpha
The rotatedP coordinates are not the right ones. The problem is that there are zeros added on the borders of RotatedIm. I think that that is the reason why the coordinates of RotatedP are not correct. Can someone help me to find the coordinates of point P in the rotated image?

Rik on 3 Oct 2018
If you use the 'crop' switch, the method would be correct, but now you'll have to account for the shift of the image center. A sketch on paper should help a lot in finding a formula.
was on 3 Oct 2018
Thanks!

Matt J on 3 Oct 2018
Edited: Matt J on 3 Oct 2018
P = [5;8]; % coordinates of point
alpha = 45; % angle for rotation
RotatedIm = imrotate(im,alpha); % rotation of the main image (im)
RotMatrix = [cosd(alpha) -sind(alpha); sind(alpha) cosd(alpha)];
ImCenterA = (size(im)/2)'; % Center of the main image
ImCenterB = (size(RotatedIm )/2)'; % Center of the transformed image
RotatedP = RotMatrix*(P-ImCenterA)+ImCenterB;

#### 1 Comment

Rik on 3 Oct 2018
Nice one. It seems I was on the right track.