我想要 :
- 将图像(尺寸 512x512)旋转 45 度。
- 对其进行一些处理。
- 将图像旋转 -45 度。
我的问题是当我应用 45 度和 -45 度的旋转时,图像的大小会发生变化,我希望它是相同的。
我想要 :
我的问题是当我应用 45 度和 -45 度的旋转时,图像的大小会发生变化,我希望它是相同的。
旋转图像的通常过程是放大图像,旋转图像并缩小图像。这样,您可以避免旋转时出现的暗边距。
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');
你不能这样做。这没有意义。简单实验: