problem with output of imrotate function.

2 次查看(过去 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:
output after rotation:
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));

采纳的回答

Image Analyst
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
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
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 个)

类别

Help CenterFile Exchange 中查找有关 Images 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by