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

3 次查看(过去 30 天)
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 ?

回答(1 个)

Image Analyst
Image Analyst 2014-2-23
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 个评论
zhang
zhang 2014-2-23
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?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Geometric Transformation and Image Registration 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by