如何在一个窗口matlab上组合两个图像?

时间:2010-10-27 21:11:45

标签: matlab

我有两个尺寸的图像让我们说image1 = 250x250和image2 = 250x550。 我希望有一个图像显示这两个图像组合。 像image3 = image1 + image2表示image3 = 250x800。

2 个答案:

答案 0 :(得分:12)

使用concatenation

可以轻松完成图像的组合
image3 = [image1 image2];  %# Concatenate horizontally

然后,您可以使用IMAGEIMAGESCIMSHOW中的任何一项功能来image3显示image(image3); %# Display the image in a figure window

[image1,map1] = imread('image1.png');  %# Image and colormap for image file 1
[image2,map2] = imread('image2.png');  %# Image and colormap for image file 2


注意:

您没有提到您正在处理的图像类型,只是它们是像素数据的二维矩阵。这意味着它们可以是binary images(像素值为0或1),grayscale images(像素值表示从黑到白的范围)或indexed color images(像素值为将索引表示为色彩图。)

对于二进制和灰度图像,上述解决方案应该可以正常工作。但是,如果每个图像都有自己唯一的colormap,则索引的彩色图像可能更难以组合。如果使用函数IMREAD从文件加载图像,则可以像这样获取颜色贴图:

map1

现在,如果map2image1 = ind2rgb(image1,map1); %# Convert image 1 to RGB image2 = ind2rgb(image2,map2); %# Convert image 2 to RGB image3 = cat(2,image1,image2); %# Concatenate the images along dimension 2 包含不同的颜色排列,则这两个图像不能轻易组合。一种解决方案是首先使用函数truecolor images将图像转换为三维IND2RGB,然后使用函数CAT将它们组合:

image3

现在您可以按照上述说明查看{{1}}。

答案 1 :(得分:1)

如果您只想并排查看这两个图像,可以使用subplot在同一图中显示多个图像(或图形)。