显示多个图像
本节说明同时查看多个图像的各种方法。
在单独的图窗窗口中显示多个图像
同时显示多个图像的最简单方法是在单独的图窗窗口中显示它们。MATLAB® 对可同时显示的图像数量没有任何限制。
imshow
始终在当前图窗中显示一个图像。如果连续显示两个图像,则第二个图像将替换第一个图像。要使用 imshow
查看多个图窗,请使用 figure
命令显式创建新的空图窗,然后为下一个图像调用 imshow
。以下示例查看灰度图像数组 I
中的前三帧。
imshow(I(:,:,:,1)) figure imshow(I(:,:,:,2)) figure imshow(I(:,:,:,3))
以蒙太奇方式显示多个图像
您可以使用 montage
函数在一个图窗窗口中将多个图像作为单个图像对象进行查看。默认情况下,montage
根据图像数量和屏幕大小缩放图像,并将它们排列成一个方形。montage
会保留原始图像的纵横比。您可以使用 ThumbnailSize
名称-值参数指定缩略图的大小。
以蒙太奇方式显示的图像可以有不同类型和大小。montage
使用文件中的颜色图将索引图像转换为 RGB。
默认情况下,montage
函数在以蒙太奇方式显示图像时不会在图像之间留任何空白。您可以使用 BorderSize
参数指定图像之间的空白空间量。您也可以使用 BackgroundColor
参数指定图像之间所留空间的颜色。
以下示例说明如何以蒙太奇方式查看图像序列。
以蒙太奇方式查看图像序列
此示例说明如何使用 montage
函数一次查看多帧数组中的多个帧。montage
显示所有图像帧,并将它们排列成一个矩形网格。图像的蒙太奇被视为单个图像对象。图像帧可以是灰度图像、索引图像或真彩色图像。如果指定索引图像,它们必须都使用相同的颜色图。
创建一个真彩色图像数组。
onion = imread('onion.png');
onionArray = repmat(onion, [ 1 1 1 4 ]);
以蒙太奇方式一次显示所有图像。默认情况下,montage
函数将这些图像显示在一个网格中。第一个图像帧在第一行的第一个位置,下一个帧在第一行的第二个位置,依此类推。
montage(onionArray);
要指定不同的行数和列数,请使用 'size'
参数。例如,要在一个水平行中显示图像,请将 'size'
参数的值指定为 [1 NaN]
。您还可以使用其他 montage
参数来指定要显示哪些图像,以及调整所显示图像的对比度。
montage(onionArray,'size',[1 NaN]);
在同一图窗中显示多个图像
您可以使用 imshow
函数和 subplot
函数在单个图窗窗口中显示多个图像。有关其他选项,请参阅Work with Image Sequences as Multidimensional Arrays。
可以将 imshow
与 tiledlayout
和 nexttile
函数结合使用,在同一个图窗中显示多个具有不同颜色图的图像。
注意
图像查看器不支持此功能。
将一个图窗窗口分成多个显示区域
subplot
将一个图窗分成多个显示区域。使用语法 subplot(m,n,p)
,您可以定义一个由多个显示区域组成的 m
×n
矩阵,并指定处于活动状态的区域(即 p
)。
例如,您可以使用此语法并排显示两个图像。
[X1,map1]=imread("forest.tif"); [X2,map2]=imread("trees.tif"); subplot(1,2,1), imshow(X1,map1) subplot(1,2,2), imshow(X2,map2)
比较一对图像
imshowpair
函数在同一图窗窗口中显示一对图像。当比较图像时,这种显示方式很有帮助。imshowpair
支持许多可视化方法,包括:
伪彩色,即叠加两个基于不同色带的图像。灰色区域表示图像具有相同强度的位置,彩色区域表示图像强度值不同的位置。RGB 图像在以伪彩色显示之前先转换为灰度图像。
alpha 混合,图像的显示强度是两个输入图像的均值。alpha 混合支持灰度和真彩色图像。
棋盘,输出图像由来自两个输入图像的交替矩形区域组成。
两个图像的差异。RGB 图像转换为灰度图像。
蒙太奇,两个图像并排显示。这种可视化模式类似于使用
montage
函数的显示。
imshowpair
使用可选的空间参照信息来显示图像对。
另请参阅
imshow
| imshowpair
| montage