I=imread('X.jpg');
[a b]=size(I);
figure;imshow(I);
j=rgb2ycbcr(I);
figure;
imshow(j);
ca=mat2cell(j,8*ones(1,size(j,1)/8),8*ones(1,size(j,2)/8),3);
p=1;
for c=1:size(ca,1)
for r=1:size(ca,2)
subplot(8,8,p);
imshow(ca{c,r});
p=p+1;
end
end
我收到以下错误: 索引超过子图的数量。 有什么想法吗?
答案 0 :(得分:1)
之所以如此,是因为您在绘图时显示的图像块多于子图空间。请将您的for
循环代码改为:
p = 1;
figure;
for c=1:size(ca,1)
for r=1:size(ca,2)
subplot(size(ca,1),size(ca,2),p); %// Change
imshow(ca{c,r});
p=p+1;
end
end
这样,您将拥有尽可能多的子绘图空间,以便显示像素块。