【发布时间】:2010-10-27 21:11:44
【问题描述】:
我有两个大小的图像,比如说 image1=250x250 和 image2=250x550。 我想要一张显示这两个图像组合的图像。 如 image3=image1+image2 表示 image3=250x800。
【问题讨论】:
标签: matlab
我有两个大小的图像,比如说 image1=250x250 和 image2=250x550。 我想要一张显示这两个图像组合的图像。 如 image3=image1+image2 表示 image3=250x800。
【问题讨论】:
标签: matlab
使用concatenation可以轻松组合图像:
image3 = [image1 image2]; %# Concatenate horizontally
然后您可以使用IMAGE、IMAGESC 或IMSHOW 中的任何一个函数来可视化image3:
image(image3); %# Display the image in a figure window
注意:
你没有提到你正在处理什么类型的图像,只是说它们是像素数据的二维矩阵。这意味着它们可以是 binary images(像素值为 0 或 1)、grayscale images(像素值表示从黑色到白色的范围)或 indexed color images(像素值表示颜色映射中的索引) .
对于二值和灰度图像,上述解决方案应该可以正常工作。但是,如果每个图像都有自己独特的colormap,则索引彩色图像可能更难以组合。如果图像是使用函数IMREAD从文件中加载的,你可以像这样得到颜色图:
[image1,map1] = imread('image1.png'); %# Image and colormap for image file 1
[image2,map2] = imread('image2.png'); %# Image and colormap for image file 2
现在,如果map1 和map2 包含不同的颜色排列,这两个图像就不能那么容易地组合在一起。一种解决方案是首先使用函数IND2RGB 将图像转换为3 维truecolor images,然后使用函数CAT 组合它们:
image1 = 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
现在您可以按上述方式查看image3。
如果您只想并排查看两张图片,您可以使用subplot在同一图中显示多张图片(或图表)。
【讨论】: