我想:
我的问题是当我应用45度和-45度的旋转时,图像的大小会发生变化,我希望它是相同的。
答案 0 :(得分:2)
旋转图像的常用步骤是向上缩放图像,旋转图像并缩小图像。这样,您可以避免旋转时出现的暗边距。
Matlab自动完成此过程。因此,如果您想要图像的特定尺寸,则必须在旋转图像后选择适当的图像区域。
假设我们想要旋转图像并希望保留与原始图像相同的尺寸,我们可以这样做:
img = imread('image.png');
r = numel(img(:,1));
c = numel(img(:,2));
nimg = imrotate(img, 45);
nimg = imrotate(nimg, 45);
n_R = numel(nimg(:,1));
n_C = numel(nimg(:,2));
n_R = n_R+mod(n_R, 2); %to avoid dimensions being in double datatype
n_C = n_C+mod(n_C, 2);
oimg = nimg(((n_R/2)-(r/2)):((n_R/2)+(r/2)), ((n_C/2)-(c/2)):((n_C/2)+(c/2)),:);
imwrite(oimg, 'rot_image.png');
答案 1 :(得分:1)
你不能这样做。这没有意义。简单的实验: