在 MATLAB 中合并两幅图像

matlabdata analysisprogramming

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 程序将两幅图像合并在一起的所有技术。


相关文章