在 MATLAB 中组合两张图像


MATLAB 允许我们通过各种方法组合两张图像,例如图像融合、图像拼接、图像连接、图像叠加、图像混合等。在本教程中,我们将探索所有这些组合两张图像的技术。

使用 `imtile()` 函数在 MATLAB 中组合两张图像

在 MATLAB 中,我们可以使用 `imtile()` 函数组合两张图像。此函数允许我们将多张图像排列在平铺布局中。

语法

要组合两张图像,`imtile` 函数采用以下语法

img = imtile({img1, img2}, 'GridSize', [1, 2]);

现在,让我们通过 MATLAB 程序了解 `imtile` 函数的实现。

示例

% MATLAB program to combine two images using `imtile` function
% Read the two input images
img1 = imread('https://tutorialspoint.com/assets/questions/media/14304-1687425340.jpg');
img2 = imread('https://tutorialspoint.com/assets/questions/media/14304-1687425236.jpg');
% Call `imtile` function to combine two images in tiled layout
img = imtile({img1, img2}, 'GridSize', [1, 2]);
% Display the combined images
imshow(img); title('Combined Images');
    

输出

解释

在这个 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 program to combine two images using `cat` function
% Read the two input images
img1 = imread('https://tutorialspoint.com/assets/questions/media/14304-1687425308.jpg');
img2 = imread('https://tutorialspoint.com/assets/questions/media/14304-1687425236.jpg');
% Resize the img2 to match the size of img1
img2 = imresize(img2, size(img1, [1, 2]));
% Concatenate the images horizontally
outimg1 = cat(2, img1, img2);
% Concatenate the images Vertically
outimg2 = cat(1, img1, img2);
% Display the combined images
subplot(1, 2, 1); imshow(outimage1); title('Horizontally Combined Images');
subplot(1, 2, 2); imshow(outimage2); title('Vertically Combined Images');   

输出

解释

在这个 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 program to demonstrate the use of infuse function to combine two images
% Read the two input images
img1 = imread('https://tutorialspoint.com/assets/questions/media/14304-1687425308.jpg');
img2 = imread('https://tutorialspoint.com/assets/questions/media/14304-1687425236.jpg');
% Resize img2 to match the size of img1
img2 = imresize(img2, size(img1, [1, 2]));
% Create a false-color composite image
outimg1 = imfuse(img1, img2, 'falsecolor');
% Create a composite image to highlight areas of dissimilarity between the images
outimg2 = imfuse(img1, img2, 'diff');
% Create a blended image
outimg3 = imfuse(img1, img2, 'blend');
% Display the combined images
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 程序将两张图像组合在一起。

更新于: 2023-07-18

589 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告