我有两个大小的图像让我们说image1 = 250x250和image2 = 250x550.我希望有一个图像显示这两个图像组合.像image3 = image1 + image2表示image3 = 250x800.
gno*_*ice 12
使用串联可以轻松地组合图像:
image3 = [image1 image2]; %# Concatenate horizontally
Run Code Online (Sandbox Code Playgroud)
然后,您可以image3使用IMAGE,IMAGESC或IMSHOW中的任何功能进行可视化:
image(image3); %# Display the image in a figure window
Run Code Online (Sandbox Code Playgroud)
注意:
您没有提到您正在处理的图像类型,只是它们是像素数据的二维矩阵.这意味着它们可以是二进制图像(像素值为0或1),灰度图像(具有表示从黑到白的范围的像素值)或索引颜色图像(具有表示颜色图中的索引的像素值).
对于二进制和灰度图像,上述解决方案应该可以正常工作.但是,如果每个图像都有自己独特的色彩映射,则索引的彩色图像可能更难以组合.如果使用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
Run Code Online (Sandbox Code Playgroud)
现在,如果map1并且map2包含不同的颜色排列,则两个图像不能如此容易地组合.一种解决方案是首先使用IND2RGB函数将图像转换为三维真彩色图像,然后使用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
Run Code Online (Sandbox Code Playgroud)
现在您可以image3按上述方式查看.