Main Content

本页面提供的是上一版软件的文档。当前版本中已删除对应的英文页面。

imresize

调整图像大小

说明

示例

J = imresize(I,scale) 返回图像 J,它是将 I 的长宽大小缩放 scale 倍之后的图像。输入图像 I 可以是灰度图像、RGB 图像、二值图像或分类图像。

示例

J = imresize(I,[numrows numcols]) 返回图像 J,其行数和列数由向量 [numrows numcols] 指定。

示例

[Y,newmap] = imresize(X,map,___) 调整具有颜色图 map 的索引图像 X 的大小。默认情况下,imresize 返回调整大小后的索引图像时会连同返回优化的颜色图 newmap。要返回与原始颜色图相同的颜色图,请使用 Colormap 名称-值对组参数。

示例

___ = imresize(___,method) 指定使用的插值方法。

___ = imresize(___,Name,Value) 使用名称-值对组参数来控制调整大小操作的各个方面。

示例

全部折叠

将图像读入工作区。

I = imread('rice.png');

调整图像大小,指定缩放因子以及使用默认插值方法和抗锯齿。

J = imresize(I, 0.5);

显示原始图像和调整大小后的图像。

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

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

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

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

将图像读入工作区。

I = imread('rice.png');

调整图像大小,指定缩放因子和插值方法。

J = imresize(I, 0.5, 'nearest');

显示原始图像和调整大小后的图像。

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

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

figure
imshow(J)
title('Resized Image Using Nearest-Neighbor')

Figure contains an axes. The axes with title Resized Image Using Nearest-Neighbor contains an object of type image.

将图像读入工作区。

[X, map] = imread('trees.tif');

调整图像大小,指定缩放因子。默认情况下,imresize 返回优化的颜色图,以及调整大小后的索引图像。

[Y, newmap] = imresize(X, map, 0.5);

显示原始图像和调整大小后的图像。

figure
imshow(X,map)
title('Original Image')

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

figure
imshow(Y,newmap)
title('Resized Image')

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

将图像读入工作区。

RGB = imread('peppers.png');

调整图像大小,指定输出图像有 64 行。让 imresize 计算保持纵横比所需的列数。

RGB2 = imresize(RGB, [64 NaN]);

显示原始图像和调整大小后的图像。

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

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

figure
imshow(RGB2)
title('Resized Image')

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

输入参数

全部折叠

要调整大小的图像,指定为任意维度的数值数组、逻辑数组或分类数组。如果 I 有两个以上维度,则 imresize 只调整前两个维度的大小。

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

大小调整因子,指定为正数。

  • 如果 scale 小于 1,则输出图像小于输入图像。

  • 如果 scale 大于 1,则输出图像大于输入图像。

imresize 将缩放因子应用于图像中的每个维度。要对每个维度应用不同的大小调整因子,请使用 Scale 名称-值对组参数。

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

输出图像的行和列维度,指定为由正整数组成的二元素向量。您可以为 numrowsnumcols 指定值 NaN。在这种情况下,imresize 会自动计算该维度的行数或列数,同时保持图像的纵横比。

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

要调整大小的索引图像,指定为数值数组。

数据类型: double | uint8 | uint16

与索引图像 X 相关联的颜色图,指定为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。每行是一个三元素 RGB 三元组,指定颜色图的单个颜色的红、绿和蓝分量。

数据类型: double

插值方法或核,指定为字符串标量、字符向量或二元素元胞数组。

method 是字符串标量或字符向量时,它标识下表中列出的特定方法或指定的插值核。

方法说明

'nearest'

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

最近邻插值是分类图像支持的唯一插值方法,也是此类型的图像的默认方法。

'bilinear'

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

'bicubic'

双三次插值;输出像素值是最近 4×4 邻域中的像素的加权平均值。双三次插值是数值图像和逻辑图像的默认方法。

注意

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

插值核说明
'box'

盒形核

盒形核是分类图像唯一支持的插值核。

'triangle'三角形核(等效于 'bilinear'
'cubic'三次方核(等效于 'bicubic'
'lanczos2'Lanczos-2 核
'lanczos3'Lanczos-3 核

method 是二元素元胞数组时,它定义一个自定义插值核。元胞数组的形式为 {f,w},其中 f 是自定义插值核的函数句柄,w 是自定义核的宽度。f(x) 在区间 -w/2 <= x < w/2 外的值必须为零。函数句柄 f 可通过标量或向量输入进行调用。对于用户指定的插值核,输出图像可以有一些值稍微超出输入图像中的像素值范围。

数据类型: char | string | cell

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN

示例: I2 = imresize(I,0.5,'Antialiasing',false);

缩小图像时执行抗锯齿,以逗号分隔的对组形式指定,该对组由 'Antialiasing'truefalse 组成。

  • 如果 method'nearest',则 'Antialiasing' 的默认值为 false

  • 如果插值的 method'box' 插值核,并且输入图像是分类图像,则 'Antialiasing' 的默认值为 false

  • 对于其他所有插值方法,默认值为 true

数据类型: logical

返回索引图像的优化的或原始的颜色图,指定为以逗号分隔的对组,其中包含 'Colormap' 和以下项之一。

说明
'original'输出颜色图 newmap 与输入颜色图 map 相同。
'optimized'imresize 返回新的优化颜色图。

'Colormap' 参数仅在调整索引图像大小时有效。

数据类型: char | string

执行颜色抖动,指定为以逗号分隔的对组,其中包含 'Dither'truefalse。执行抖动时,会对图像应用一种噪声,以使量化误差随机化并防止出现大范围色块。

'Dither' 参数仅在调整索引图像大小时有效。

数据类型: logical

插值方法,以逗号分隔的对组形式指定,该对组由 'Method' 和一个标量字符串、字符向量或二元素元胞数组组成。有关详细信息,请参阅 method

数据类型: char | string | cell

输出图像的大小,以逗号分隔的对组形式指定,该对组包含 'OutputSize' 和一个 [numrows numcols] 形式的由正整数组成的二元素向量。

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

缩放因子,以逗号分隔的对组形式指定,其中包含 'Scale' 和一个正数或由正数组成的二元素向量。如果指定标量,则 imresize 对图像中的每个维度应用相同的缩放因子。如果指定二元素向量,则 imresize 对每个维度应用不同缩放值。

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

输出参数

全部折叠

调整大小后的图像,以与输入图像 I 具有相同类的数值、逻辑或分类数组形式返回。

调整大小后的索引图像,返回为与输入索引图像 X 具有相同类的数值数组。

优化后的颜色图,返回为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。每行是一个三元素 RGB 三元组,指定颜色图的单个颜色的红、绿和蓝分量。

提示

  • 函数 imresize 在版本 5.4 (R2007a) 中已更改。Image Processing Toolbox™ 的以前版本默认使用不同算法。如果您需要实现与之前相同的结果,请使用函数 imresize_old

  • 如果输出图像的大小不是整数,则 imresize 不会使用指定的比例。imresize 在计算输出图像大小时使用 ceil

扩展功能

在 R2006a 之前推出