compute a pixel's location in original image given its location in the rotated image and the rotated angle--matlab

3 views (last 30 days)
There is an image called rI and a pixel p located at [px, py] in this image. The image rI is got by rI = imrotate(I, angle, 'bilinear', 'crop') where I is the original image and angle is the rotated angle. We also assume that the size of image I is [h, w] .
Now the problem is how can I get the location of pixel corresponding to p in image I ?

Answers (1)

Image Analyst
Image Analyst on 23 Feb 2014
It rotates about the center, right? So the new x and y = [cos(theta), sin(theta);-sin(theta), cos(theta)] * [oldx;oldy]. You have to figure out precisely where the center of rotation is. Not sure but it might be different (half a pixel, maybe) depending on whether the image has an odd number of rows and columns or an even number.
  1 Comment
zhang
zhang on 23 Feb 2014
Thanks, according to the matlab document: "B = imrotate(A,angle) rotates image A by angle degrees in a counterclockwise direction around its center point.". Can you explain this equation a lit bit?

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!