Main Content

imtile

将多个图像帧合并为一个矩形分块图

说明

out = imtile(filenames) 返回一个分块图像,其中包含文件名为 filenames 的文件中的图像。

默认情况下,imtile 函数将图像大致排成一个方阵。您可以使用可选的名称-值参量来更改排列。图像可以具有不同大小和数据类型。

  • 如果指定索引图像,则 imtile 函数会使用文件中存在的颜色图将其转换为 RGB。

  • 如果图像之间的数据类型不匹配,则 imtile 函数使用 im2double 函数将所有图像转换为 double 数据类型。

out = imtile(I) 返回包含多帧图像数组 I 的所有帧的分块图。一个多帧图像数组可以是二值图像序列、灰度图像序列或真彩色图像序列。

out = imtile(images) 返回包含元胞数组 images 中指定的图像的分块图。imtile 将空元胞数组元素显示为空白图块。

out = imtile(imds) 返回包含 ImageDatastore 对象 imds 中指定的图像的分块图。有关图像数据存储的信息,请参阅 ImageDatastore

out = imtile(___,map) 返回一个分块图像,并使用颜色图 map 将其中的灰度图像、索引图像和二值图像转换为 RGB。您可以使用上述任一语法的输入参量指定输入图像。请注意,如果您使用文件名 filenames 指定图像,并且还指定颜色图,则 map 会覆盖图像文件中存在的任何内部颜色图。

out = imtile(___,Name,Value) 返回一个自定义分块图,具体取决于可选参数名称-值对组参量的值。

示例

全部折叠

从文件中将多个图像读取到工作区中,并创建一个包含这些图像的分块图。显示该分块图。

out = imtile({'peppers.png', 'ngc6543a.jpg'});
imshow(out);

使用一个包含多个图像的数据集,将这些图像平铺在一个网格中。

加载 MRI 数据集。

load mri
out = imtile(D, map);
imshow(out);

创建一个分块图,其中仅包含该数据集中的前八个图像。使用 'GridSize' 参数将这些图像排列在一个 2×4 网格中。

out = imtile(D, map, 'Frames', 1:8, 'GridSize', [2 4]);
figure;
imshow(out);

将 RGB 图像读取到工作区。

imRGB = imread('peppers.png');

创建一个分块图,其中包含 RGB 图像的三个平面。显示该分块图。

out = imtile(imRGB);
imshow(out)

从图像数据存储创建并自定义分块图。

创建一个图像数据存储,其中包含指定文件夹中文件扩展名为 'tif''png' 的所有文件。

fileFolder = fullfile(matlabroot,'toolbox','matlab','imagesci');
imds = imageDatastore(fileFolder,'FileExtensions',{'.tif','.png'});

创建一个包含数据存储中图像的分块图。

out1 = imtile(imds);
imshow(out1);

使用 'BorderSize' 和 'BackgroundColor' 参数为分块图添加蓝色边框。

out2 = imtile(imds, 'BorderSize', 10, 'BackgroundColor', 'b');
figure;
imshow(out2);

输入参数

全部折叠

包含图像的文件的名称,指定为 f×1 字符串数组、1×f 字符串数组、字符向量或字符向量元胞数组。如果该文件不在当前文件夹或 MATLAB® 路径下的文件夹中,则指定完整路径名。有关详细信息,请参阅 imread

示例: 'file1.jpg'

示例: ["file1.jpg" "file2.jpg"]

示例: '../dir/data/file1.png'

示例: {'C:\dir\data\file1.tif','C:\dir\data\file2.tif'}

数据类型: char | string | cell

多帧图像,指定为数值数组。I 可以是:

  • 一个 m×n×k 数组,表示由 k 个二值图像、灰度图像或索引图像组成的序列

  • 一个 m×n×1×k 数组,表示由 k 个二值图像、灰度图像或索引图像组成的序列

  • 一个 m×n×3×k 数组,表示由 k 个真彩色图像组成的序列

图像列表,指定为数值矩阵的 k×1 或 1×k 元胞数组。元胞数组可以包含大小为 m×n 或 m×n×3 的数值矩阵。

图像数据存储,指定为 ImageDatastore 对象。

颜色图,指定为由范围 [0,1] 内的值组成的 c×3 数值矩阵。map 的每行都是一个包含三个元素的 RGB 三元组,指定单种颜色的红、绿和蓝分量。当您指定 map 时,imtile 函数使用此颜色图将所有索引图像、灰度图像和二值图像转换为真彩色。

数据类型: double

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: imtile({'peppers.png','ngc6543a.jpg'},'BackgroundColor','g');

背景的颜色,指定为 RGB 三元组、颜色名称或短颜色名称。imtile 函数使用此颜色填充所有空白区,包括 'BorderSize' 指定的区域。

您可以使用 RGB 三元组指定任何颜色。RGB 三元组是一个包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度必须处于范围 [0,1] 中。

您可以按名称将一些常见颜色指定为字符串标量或字符向量。下表列出了命名颜色选项和等效的 RGB 三元组。

颜色名称短名称RGB 三元组外观
'red''r'[1 0 0]

A rectangle colored pure red

'green''g'[0 1 0]

A rectangle colored pure green

'blue''b'[0 0 1]

A rectangle colored pure blue

'cyan' 'c'[0 1 1]

A rectangle colored pure cyan

'magenta''m'[1 0 1]

A rectangle colored pure magenta

'yellow''y'[1 1 0]

A rectangle colored pure yellow

'black''k'[0 0 0]

A rectangle colored black

'white''w'[1 1 1]

A rectangle colored white

示例: 'BackgroundColor','r'

示例: 'BackgroundColor','green'

示例: 'BackgroundColor',[0 0.4470 0.7410]

每个缩略图周围的填充,指定为以逗号分隔的对组,该对组由 'BorderSize' 和数值标量或形式为 [brows bcols] 的 1×2 数值向量组成。imtile 函数用背景颜色填充每个图像的边框。

要包含的帧,指定为以逗号分隔的对组,该对组由 'Frames' 和数值数组或逻辑值组成。imtile 函数将值解释为图像数组或元胞数组的索引。以下示例创建包含前三个图像帧的分块图。

示例: out = imtile(I,'Frames',1:3);

示例: out = imtile(I,'Frames',[true true true]);

分块图中缩略图的行数和列数,指定为以逗号分隔的对组,该对组由 'GridSize'[nrows ncols] 形式的二元素向量组成。nrows 指定网格中的行数,ncols 指定网格中的列数。使用 NaNInf 使 imtile 以包含所有图像的方式计算特定维度的大小。

  • 如果 'GridSize'[2 NaN],则 imtile 会创建一个分块图,其中包含两行以及包括所有图像所需的列数。

  • 如果两个元素均为 NaNInf,则 imtile 会计算网格大小以形成一个正方形。imtile 会以从左到右、从上到下的排列方式返回图像。

  • 如果 GridSize 与图像(帧)数不匹配,则 imtile 将根据 GridSize 创建分块图。

缩略图的大小,指定为以逗号分隔的对组,该对组由 'ThumbnailSize'[trows tcols] 形式的二元素向量组成(以像素为单位)。imtile 函数通过用零填充边界来保留原始图像的纵横比。

  • 如果指定 NaNInf,则 imtile 函数会自动计算对应的值以保留第一个图像的纵横比。

  • 如果指定空数组 ([]),则 imtile 函数将第一个图像的完整大小用作缩略图大小。

输出参量

全部折叠

图块输出图像,以数值矩阵或数值数组形式返回。当以下任一条件成立时,输出图像为 M×N×3 数值数组:

  • 至少一个输入图像是 RGB 图像或索引图像

  • 指定了颜色图 map

  • 您指定了背景颜色 'BackgroundColor',无论分块图像是否包含背景像素

扩展功能

版本历史记录

在 R2018b 中推出

另请参阅

|