problem with output of imrotate function.
1 次查看(过去 30 天)
显示 更早的评论
Hi, after using imrotate function, why center of object is changing. this problem is appear by obtain center of object before and after rotation. please guide me how to rotate image without changing coordination of center's object. original image:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/190842/image.jpeg)
output after rotation:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/190843/image.jpeg)
clc;clear;
img = imread('ms0.jpg');
degree = 45;
img1 = imrotate(img,-degree,'crop');
prob1 = regionprops(img,'centroid');
prob2 = regionprops(img1,'centroid');
img_center = prob1.Centroid;
img1_center = prob2.Centroid;
img_center = round(img_center);
img1_center = round(img1_center);
fprintf('center before rotation is : ( %d , %d ) \n.',img_center(1),img_center(2));
fprintf('center after rotation is : ( %d , %d ) \n.',img1_center(1),img1_center(2));
0 个评论
采纳的回答
Image Analyst
2018-5-25
imrotate() rotates about the center of the center of the image. Your blob is not at the center of the image so it will move. Perhaps you should crop your image if you want it to be at the center of an image.
3 个评论
Image Analyst
2018-5-26
See my Image Segmentation Tutorial to learn how you can call regionprops() to crop out the bounding box of your blob https://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862&sort=downloads_desc
props = regionprops(binaryImage, 'BoundingBox');
croppedImage = imcrop(binaryImage, props.BoundingBox);
imrotate(croppedImage, angle);
sparrow Jr
2018-5-26
编辑:sparrow Jr
2018-5-26
Hello, Sir.. Thank you so much for your comment in my thread. I would like to ask you further questions about matlab. Would you mind if I send you an email? Iam so sorry for my comment here.
Best regard, Sparrow.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!