多语言展示
当前在线:472今日阅读:84今日分享:32

Matlab imshow结果奇怪,非黑即白,范围0~1

Matlab中,我们常用到imshow()函数进行画图,但是直接用imshow(I)这样的格式进行画图,结果很奇怪,画面非黑即白,用jet色标则非红即蓝,如图所示,这是为什么呢?
工具/原料

Matlab

方法/步骤
1

imshow支持的数据包括double和unit8两种类型,double的取值为0~1之间,unit8取值0~255。按照double的范围0~1,大于1的都被看作1,小于0的都看成0,所以图片会基本都是纯黑和纯白,无法看出差别。

2

我最常用的方法是,将imshow(I)改成imshow(I,[]),让matlab自动调整色标范围0~1为数据的最小到最大值范围。结果如图。figure()imshow(I,[])%I为任意矩阵colormap jetcolorbartitle('imshow(I,[]); colormap jet')figure()imshow(I,[])colormap graycolorbartitle('imshow(I,[]); colormap gray')

推荐信息