为什么以下代码不显示图像?
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
如何解决问题?
答案 0 :(得分:3)
这里的问题是您的图片属于uint8
类,但您将其存储在double
类的三维数组中。在这个双类数组中,您有大于1的值,它们被解释为白色。
您需要将原始图片I
转换为double
(即I= im2double(I);
)或将J
转换为uint8
,即J = uint8(J);
。