在MATLAB中的一个窗口上显示多个图像

时间:2017-05-28 03:44:55

标签: image matlab subplot

这些是我需要在一个图中显示的原始图像,

enter image description here

以下是我的源代码,

function draw_multiple_images(image_list)    
    N = length(image_list);
    [m, n] = factor_out(N);

    % create the subplots
    figure;

    if(iscell(image_list))    
        for k=1:N
            h = subplot(m,n,k);
            image(image_list{k},'Parent',h);
            set(gca,'xtick',[],'ytick',[])
        end    
    elseif(isvector(image_list))
         for k=1:N
            h = subplot(m,n,k);
            image(image_list(k),'Parent',h);
            set(gca,'xtick',[],'ytick',[])
        end
    end
end

输出

为什么我认为它们是蓝黄色?

enter image description here

我需要将它们显示为黑白色。

1 个答案:

答案 0 :(得分:1)

我在colormap(gray(256));命令之后使用figure来解决问题。

function draw_multiple_images(image_list)    
    d = size(image_list);
    l = length(d);

    figure;
    hold all
    colormap(gray(256));  

    if(l==2)
        N = length(image_list);
        [m, n] = factor_out(N);

        if(iscell(image_list))    
            for k=1:N
                h = subplot(m,n,k);
                image(image_list{k},'Parent',h);
                set(gca,'xtick',[],'ytick',[])
            end    
        elseif(isvector(image_list))
            for k=1:N
                h = subplot(m,n,k);
                image(image_list(k),'Parent',h);
                set(gca,'xtick',[],'ytick',[])
            end
        end
    elseif(l==3)
        N = d(3) ;
        [m, n] = factor_out(N);
        for k=1:N
            I = image_list(:,:,k);
            subplot(m,n,k);
            imshow(I);
            set(gca,'xtick',[],'ytick',[])
        end  
    end     
    hold off
end