【问题标题】:How to concatenate many RGB images into one image in MATLAB?如何在 MATLAB 中将多个 RGB 图像连接成一张图像?
【发布时间】:2011-07-04 05:18:37
【问题描述】:

我有一百个大小相同的 RGB 图像,编号从 1 到 100。我想从中创建一个图像。例如,如果我给定 row=10 和 column=10,那么输出应该是前 10 个图像将形成第一行,依此类推。

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:

    一种方法是创建一个包含图像的 10×10 元胞数组,然后使用 CELL2MAT 将它们连接成一个大图像。

    nRows = 10;
    nCols = 10;
    imgCell = cell(nRows,nCols);
    
    for iImage = 1:nRows*nCols
    
    %# construct image name - fix this like so it conforms to your naming scheme
    %# also, add the path if necessary
    imageName = sprintf('image%i.jpg',iImage);
    
    %# add the image to imgCell
    %# images will filled first into all rows of column one
    %# then into all rows of column 2, etc
    imgCell{iImage} = imread(imageName);
    
    end
    
    %# if you want the images to be arranged along rows instead of 
    %# columns, you can transpose imgCell here
    %# imgCell = imgCell';
    
    %# catenate into big image
    bigImage = cell2mat(imgCell);
    
    %# show the result
    imshow(bigImage)
    

    【讨论】:

    • 您好乔纳斯,感谢您的回答。您的编码将创建一个大图像,其中图像将连接成一行或一列。我想要的是前 10 个图像应该连接在大结果图像的第一行。接下来 10 第二行以此类推完成 10 行。如果图像大小为 400x400。生成的图像将为 4000x4000。不是 400x40000。如果我之前不清楚,我很抱歉。
    • @Shan:如果有 100 个 400 x 400 的图像,我的代码应该创建一个 4k x 4k 的图像,如果你全部运行它,即正确初始化 imgCell。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 2019-09-11
    相关资源
    最近更新 更多