在 MATLAB 中合并两幅图像
MATLAB 允许我们通过各种方法合并两幅图像,如图像融合、图像连接、图像连接、图像叠加、图像混合等。在本教程中,我们将探索合并两幅图像的所有这些技术。
使用 `imtile()` 函数在 MATLAB 中合并两幅图像
在 MATLAB 中,我们可以使用 `imtile()` 函数合并两幅图像。此函数允许我们将多幅图像排列成平铺布局。
语法
要合并两幅图像,`imtile` 函数采用以下语法:
img = imtile({img1, img2}, 'GridSize', [1, 2]);
现在,让我们通过 MATLAB 程序查看 `imtile` 函数的实现。
示例
% MATLAB 程序使用 `imtile` 函数合并两幅图像 % 读取两幅输入图像 img1 = imread('https://www.tutorialspoint.com/assets/questions/media/14304-1687425340.jpg'); img2 = imread('https://www.tutorialspoint.com/assets/questions/media/14304-1687425236.jpg'); % 调用 `imtile` 函数以平铺布局合并两幅图像 img = imtile({img1, img2}, 'GridSize', [1, 2]); % 显示组合图像 imshow(img); title('组合图像');
输出
说明
在此 MATLAB 程序中,我们首先读取要组合的两幅图像。为此,我们使用 `imread` 函数并将两幅输入图像存储在变量 `img1` 和 `img2` 中。然后,我们使用 `imtile` 函数将图像组合成平铺布局。在本例中,我们使用 [1, 2] 创建水平平铺布局。如果我们想创建垂直布局,那么我们将使用 [2, 1]。最后,我们使用带有适当标题的 `imshow` 函数显示组合图像。
使用 `cat()` 函数在 MATLAB 中组合两幅图像
在 MATLAB 中,我们可以使用 `cat()` 函数连接两幅图像。`cat()` 函数允许水平或垂直组合两幅图像而不进行平铺。
语法
img = cat(dim, img1, img2);
这里,`img1` 和 `img2` 是我们要组合的两幅图像。参数"dim"定义要操作的维度,即对于垂直方向,其值为"1",对于水平方向,其值为"2"。
以下 MATLAB 程序演示了"cat()"函数的实现,以水平和垂直方式组合两幅图像。
示例
% MATLAB 程序使用 `cat` 函数合并两幅图像 % 读取两幅输入图像 img1 = imread('https://www.tutorialspoint.com/assets/questions/media/14304-1687425308.jpg'); img2 = imread('https://www.tutorialspoint.com/assets/questions/media/14304-1687425236.jpg'); % 调整 img2 的大小以匹配 img1 的大小 img2 = imresize(img2, size(img1, [1, 2])); % 水平连接图像 outimg1 = cat(2, img1, img2); % 垂直连接图像 outimg2 = cat(1, img1, img2); % 显示组合图像 subplot(1, 2, 1); imshow(outimage1); title('水平组合图像'); subplot(1, 2, 2); imshow(outimage2); title('垂直组合图像');
输出
说明
在此 MATLAB 程序中,我们首先使用 `imread()` 函数读取两个输入图像。然后,我们使用 `imresize` 函数调整第二个图像 `img2` 的大小,以匹配第一个图像 `img1` 的大小。接下来,我们使用 `cat` 函数水平和垂直组合两幅图像,并将输出存储在 `outimg1` 和 `outimg2` 变量中。最后,我们使用 `imshow` 函数以适当的标题显示存储在 `outimg1` 和 `outimg2` 中的图像。
使用 `imfuse` 函数在 MATLAB 中组合两幅图像
MATLAB 提供了另一个名为 `imfuse` 的内置函数,可根据不同的融合方法组合两幅图像。
语法
要组合两幅图像,`imfuse` 函数采用以下语法,
img = imfuse(img1, img2, 'FusionMode', 'options');
这里,`img1` 和 `img2` 是我们要合并的两幅图像,`FusionMode` 指定我们要用来合并图像的融合方法。
现在让我们了解 `imfuse()` 函数的实现,该函数使用不同的融合技术来合并两幅图像。
示例
% MATLAB 程序演示使用 infuse 函数合并两幅图像 % 读取两幅输入图像 img1 = imread('https://www.tutorialspoint.com/assets/questions/media/14304-1687425308.jpg'); img2 = imread('https://www.tutorialspoint.com/assets/questions/media/14304-1687425236.jpg'); % 调整 img2 的大小以匹配 img1 的大小 img2 = imresize(img2, size(img1, [1, 2])); % 创建假彩色合成图像 outimg1 = imfuse(img1, img2, 'falsecolor'); % 创建合成图像以突出显示图像之间的差异区域 outimg2 = imfuse(img1, img2, 'diff'); % 创建混合图像 outimg3 = imfuse(img1, img2, 'blend'); % 显示组合图像 subplot(1, 3, 1); imshow(outimg1); title('false-color image'); subplot(1, 3, 2); imshow(outimg2); title('difference image'); subplot(1, 3, 3); imshow(outimg3); title('blend image');
输出
解释
在此 MATLAB 程序中,我们使用 `imread` 函数读取两个输入图像并存储在 `img1` 和 `img2` 变量中。接下来,我们将 `img2` 的大小与 `img1` 匹配。之后,我们使用不同的参数(例如 `faslecolor`、`diff` 和 `blend`)调用 `imfuse` 函数,以使用不同的融合技术合并两个图像。最后,我们使用 `imshow` 函数以适当的标题显示三个输出图像。
结论
总之,MATLAB 提供了各种内置函数和技术来合并图像。在本文的以上部分中,我们已经解释了借助 MATLAB 程序将两幅图像合并在一起的所有技术。