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

时间:2017-07-19 03:33:18

标签: matlab

为什么以下代码不显示图像?

clear all;       
image_name = 'woman.png';
I = gray_imread(image_name);

N = 12;
J = zeros(size(I,1), size(I,2), N);
for i=1:N    
    J(:,:,i) = I;
end

sqrtt = ceil(sqrt(N));
m = sqrtt;
n = sqrtt;

for k=1:N
    K = J(:,:,k);
    subplot(m,n,k);
    imshow(K);
    set(gca,'xtick',[],'ytick',[])
end 

enter image description here

如何解决问题?

1 个答案:

答案 0 :(得分:3)

这里的问题是您的图片属于uint8类,但您将其存储在double类的三维数组中。在这个双类数组中,您有大于1的值,它们被解释为白色。

您需要将原始图片I转换为double(即I= im2double(I);)或将J转换为uint8,即J = uint8(J);