Finding a pixel location after imrotate
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Amir Hossein Farzaneh
am 22 Mär. 2019
Bearbeitet: Matt J
am 22 Mär. 2019
Hello all,
I'm trying to find the location of a certain pixel after imrotate with crop. Let's say I have an image I of size = (679, 1024) and then I rotate it with imrotate(I, 10, 'crop') for 10 degrees. So here's the original image and the marked pixel:
And here's the rotate image and the marked pixel after rotation:

So the marked pixel at location (354, 32) is transfomred to the new location (303, 64). How do I find the new location only having the rotation angle (10) and the original location?
0 Kommentare
Akzeptierte Antwort
Matt J
am 22 Mär. 2019
Bearbeitet: Matt J
am 22 Mär. 2019
Well, the center of the image in your example is at
c=[512.5;340];
and the rotation matrix expressing the rotation is
R=[cosd(10) +sind(10); -sind(10), cosd(10)]
The transformation of ij=[354; 32] is therefore
>> R*(ij-c)+c
ans =
302.9243
64.2024
4 Kommentare
Matt J
am 22 Mär. 2019
Bearbeitet: Matt J
am 22 Mär. 2019
I have fixed the problem with c, but the center is at c=[512.5, 340] because the first pixel is centered at [1;1], not at [0.5;0.5]. Accordingly, my final result for the coordinate of the rotated point should be right as well,
>> p_new = R*(p-c)+c
p_new =
302.9243
64.2024
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Geometric Transformation and Image Registration finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!