Функция imrotate в Matlab вращает изображение вокруг центра. Как повернуть изображение по пользовательским координатам?
Например, центр блоба в бинарной маске. Если вы используете imcrop и размещаете каплю в центре, как изменить ее форму, чтобы она соответствовала исходному изображению?
Код
% create binary mask
clc;
clear;
mask= zeros(400,600,'logical');
positein = [280,480];
L = 40;
x = positein (1);
y = positein (2);
mask(x,y-L:y+L) = 1;
for i =1:8
mask(x+i,y-L:y+L) = 1;
mask(x-i,y-L:y+L) = 1;
end
Angle = 45;
mask_after_rotation = imrotate(mask,-Angle,'crop');
figure,
subplot(1,2,1),imshow(mask),title('before rotation');
subplot(1,2,2),imshow(mask_after_rotation),title('after rotate 45');