使用skimage.imshow显示2*2黑白矩阵时出现Low image data range警告
解决Low image data range警告问题
原因分析
你遇到的警告是因为skimage.io.imshow会根据输入数组的数据类型自动推断显示的对比度范围。你的数组默认是int64类型,而非图像常用的uint8(8位无符号整数,对应0-255的灰度范围),函数无法确定你的数据预期范围,因此会自动拉伸对比度并抛出警告。
解决方案
方案1:将数组转换为uint8类型
把数组转为图像标准的uint8类型,让imshow直接识别0-255的合法范围:
import numpy as np from skimage.io import imshow array_1 = np.array([[255,0],[0,255]], dtype=np.uint8) imshow(array_1, cmap='gray')
方案2:显式指定显示范围
在imshow中通过vmin和vmax参数明确告诉函数灰度值的上下限,避免自动拉伸:
import numpy as np from skimage.io import imshow array_1 = np.array([[255,0],[0,255]]) imshow(array_1, cmap='gray', vmin=0, vmax=255)
两种方法都能消除警告,且显示出正确的2x2黑白棋盘格矩阵。
内容的提问来源于stack exchange,提问作者John S
相关产品推荐
相关产品推荐

