imshow不适用于值(尤其是十进制),而imagesc可以无缝地使用相同的值。
示例:
image = [0 0 0; 200.50 200 200; 128 128 128];
figure;
colormap gray;
imshow(image);
figure;
colormap gray;
imagesc(image);
答案 0 :(得分:2)
我建议您阅读documentation about imshow
或输入help imshow
并注意以下内容:
如果您的灰度图像是单个或双倍,则为默认显示范围 是[0 1]。如果图像的数据范围远大于或小于默认值 显示范围,您可能需要尝试将显示范围设置为 查看图像中使用默认值无法看到的功能 显示范围。对于具有整数类型的所有灰度图像,默认值 显示范围是[intmin(class(I))intmax(class(I))]
在您尝试使用imshow
时,大于1的值显示为白色。它与值为十进制的事实无关。使用:
imshow(image, []);
如果您希望色彩映射跨越整个图像范围。或者实际上,只需使用imagesc
为您完成。