在 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 程序将两张图像组合在一起。