【问题标题】:how to combine two images on one window matlab?如何在一个窗口matlab上组合两个图像?
【发布时间】:2010-10-27 21:11:44
【问题描述】:

我有两个大小的图像,比如说 image1=250x250 和 image2=250x550。 我想要一张显示这两个图像组合的图像。 如 image3=image1+image2 表示 image3=250x800。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    使用concatenation可以轻松组合图像:

    image3 = [image1 image2];  %# Concatenate horizontally
    

    然后您可以使用IMAGEIMAGESCIMSHOW 中的任何一个函数来可视化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
    

    现在,如果map1map2 包含不同的颜色排列,这两个图像就不能那么容易地组合在一起。一种解决方案是首先使用函数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

    【讨论】:

    • CAT 参数尺寸不一致............“为什么我在连接时会收到此错误”
    • @chee:这意味着您的图像的行数不同,或者您可能试图将 2-D 图像与 3-D 图像连接起来。
    • @chee:那么您必须对图像进行resizecroppad 以使不匹配的尺寸相等。
    • @FarazAhmad:您需要缩放逻辑图像,使其跨越与灰度图像相同的范围。
    • @FarazAhmad:没有示例代码或图像可供使用,我无法为您提供明确的解决方案,只能在缩放之前尝试将二进制图像转换为两倍:img1 = double(img1);
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      • 2012-03-24
      相关资源
      最近更新 更多