主要内容

imtile

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

说明

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

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

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

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

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

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

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

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

out = imtile(___,Name=Value) 根据可选名称-值参量的值返回一个自定义分块图像。

示例

全部折叠

指定两个图像文件,然后创建一个包含这些图像的分块图像。

files = ["peppers.png","ngc6543a.jpg"];
out = imtile(files);

显示该分块图像。

imshow(out)

Figure contains an axes object. The hidden axes object contains an object of type image.

加载包含一个三维体图像和一个颜色图的 MRI 数据集。

load mri

从图像体中的所有切片创建一个分块图像。

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

Figure contains an axes object. The hidden axes object contains an object of type image.

创建一个分块图像,其中仅包含该数据集中的前八个图像。使用 GridSize 名称-值参量在一个 2×4 网格中排列图像。

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

Figure contains an axes object. The hidden axes object contains an object of type image.

将 RGB 图像读取到工作区。

imRGB = imread('peppers.png');

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

out = imtile(imRGB);
imshow(out)

Figure contains an axes object. The hidden axes object contains an object of type image.

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

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

fileFolder = fullfile(matlabroot,"toolbox","matlab","matlab_images");
imds = imageDatastore(fileFolder,IncludeSubfolders=true, ...
    FileExtensions=[".tif",".png"]);

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

out1 = imtile(imds);
imshow(out1)

Figure contains an axes object. The hidden axes object contains an object of type image.

使用 BorderSizeBackgroundColor 名称-值参量向分块图像添加蓝色边框。

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

Figure contains an axes object. The hidden axes object contains an object of type image.

输入参数

全部折叠

包含图像的文件的名称,指定为 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×nm×n×3 的数值矩阵。

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

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

数据类型: double

名称-值参数

全部折叠

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

示例: imtile("peppers.png",BackgroundColor="g"); 指定绿色背景颜色。

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

示例: imtile("peppers.png","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]

每个缩略图图像周围的填充,指定为数值标量或 [brows bcols] 形式的 1×2 数值向量。imtile 函数用背景颜色填充每个图像的边框。

要包含的帧,指定为数值数组或逻辑掩膜。imtile 函数将值解释为图像数组或元胞数组的索引。以下示例创建包含前三个图像帧的分块图像。

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

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

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

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

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

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

为缩略图调整图像大小的插值方法,指定为以下值之一。

方法描述

"bicubic"

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

注意

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

"bilinear"

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

"nearest"

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

"box"

盒形插值核

"triangle"三角形插值核(等效于 "bilinear"
"cubic"三次插值核(等效于 "bicubic"
"lanczos2"Lanczos-2 插值核
"lanczos3"Lanczos-3 插值核

当图像比缩略图大时,默认调整大小方法 "bicubic" 通常效果很好。如果图像的大小小于缩略图,并且您要避免平滑处理像素值,则考虑将 ThumbnailInterpolation 设置为 "nearest"

数据类型: char | string

缩略图的大小,指定为 [trows tcols] 形式的二元素向量,以像素为单位。imtile 函数通过用零填充边界来保留原始图像的纵横比。

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

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

输出参量

全部折叠

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

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

  • 指定了颜色图 map

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

扩展功能

全部展开

版本历史记录

在 R2018b 中推出

全部展开

另请参阅

|