Finding a pixel location after imrotate
8 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Matt J
2019 年 3 月 22 日
編集済み: Matt J
2019 年 3 月 22 日
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 件のコメント
Matt J
2019 年 3 月 22 日
編集済み: Matt J
2019 年 3 月 22 日
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
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!