原因
plt.imshow() 函数设置:
- 对于二维数组(灰度图像),函数会自动将输入数据归一化变换至[0,1],然后显示。
- 对于三维数组(彩色图像),plt.imshow() 函数并不会自动对输入数据归一化处理,而是对数据取值范围提出要求:如果是float型数据,取值范围应在[0,1];如果是int型数据,取值范围应在[0,255]。
解决方法
方法一:plt.imshow(ndarray.astype(‘uint8’))
将 float 型数据截短转换成 uint8 型数据。
方法二:plt.imshow(ndarray/255)
将数据缩放到[0,1]。