Main Content

imrotate

旋转图像

说明

示例

J = imrotate(I,angle) 将图像 I 围绕其中心点逆时针方向旋转 angle 度。要顺时针旋转图像,请为 angle 指定负值。imrotate 使输出图像 J 足够大,可以包含整个旋转图像。默认情况下,imrotate 使用最近邻点插值,将 J 中位于旋转后的图像外的像素的值设置为 0

示例

J = imrotate(I,angle,method) 使用 method 指定的插值方法旋转图像 I

示例

J = imrotate(I,angle,method,bbox) 还使用 bbox 参数来定义输出图像的大小。您可以将输出裁剪到与输入图像相同的大小,或返回整个旋转后的图像。

示例

全部折叠

将一个图像读入工作区,并将其转换为灰度图像。

I = fitsread('solarspectra.fts');
I = rescale(I);

显示原始图像。

figure
imshow(I)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

将图像顺时针旋转 1 度,以实现更好的水平对齐。该示例指定双线性插值,并要求将结果裁剪到与原始图像相同的大小。

J = imrotate(I,-1,'bilinear','crop');

显示旋转后的图像。

figure
imshow(J)
title('Rotated Image')

Figure contains an axes. The axes with title Rotated Image contains an object of type image.

输入参数

全部折叠

要旋转的图像,指定为数值数组、逻辑数组或分类数组。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | categorical

旋转量(以度为单位),指定为数值标量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

插值方法,指定为下列值之一:

说明

'nearest'

最近邻点插值。赋给输出像素的值就是输入点所在像素的值。不考虑其他像素。

最近邻点插值是分类图像唯一支持的方法。

'bilinear'

双线性插值。输出像素值是最近的 2×2 邻域中像素的加权平均值。

'bicubic'

双三次插值。输出像素值是最近的 4×4 邻域中像素的加权平均值。

注意

双三次插值可能生成在原始范围之外的像素值。

数据类型: char | string

定义输出图像大小的边界框,指定为下列值之一:

说明

'crop'

使输出图像 J 与输入图像 I 大小相同,裁剪旋转后的图像以适应边界框。

'loose'

使输出图像 J 足够大,以包含整个旋转后的图像。J 大于 I

数据类型: char | string

输出参数

全部折叠

旋转后的图像,以与输入图像 I 具有相同数据类型的数值、逻辑或分类数组形式返回。

提示

  • 此函数在版本 9.3 (R2015b) 中已更改。Image Processing Toolbox™ 的以前版本使用不同空间约定。如果您需要实现与之前相同的结果,请使用函数 imrotate_old

  • 在某些情况下,此函数使用针对数据类型 uint8uint16singledouble 的硬件优化来加快运行速度。

扩展功能

在 R2006a 之前推出