Jupyter notebook 从float64到uint8的有损转换。范围[0,1]。保存前将图像转换为uint8以抑制此警告

Jupyter notebook 从float64到uint8的有损转换。范围[0,1]。保存前将图像转换为uint8以抑制此警告,jupyter-notebook,python-3.6,Jupyter Notebook,Python 3.6,我想使用imsave()保存多个图像。从float64到uint8的有损转换。范围[0,1]。保存前将图像转换为uint8以抑制此警告 请帮助您可以先缩放[0-255]范围内的float64值,这是uint8允许的值,然后使用numpy进行转换。如果图像在[0-1]范围内,只需将它们乘以255即可。否则,您必须重新缩放它们,然后乘以255 pre_dir = '/content/drive/My Drive/preds' for k in range(len(imgs_mask_test)):

我想使用imsave()保存多个图像。从float64到uint8的有损转换。范围[0,1]。保存前将图像转换为uint8以抑制此警告
请帮助

您可以先缩放[0-255]范围内的float64值,这是uint8允许的值,然后使用numpy进行转换。如果图像在[0-1]范围内,只需将它们乘以255即可。否则,您必须重新缩放它们,然后乘以255

pre_dir = '/content/drive/My Drive/preds'
for k in range(len(imgs_mask_test)):
    a=rescale_intensity(imgs_test[k][:,:,0],out_range=(-1,1))
    b=(imgs_mask_test[k][:,:,0]).astype(np.uint8)
    io.imsave(os.path.join(pre_dir, str(k)+'_pre.png'),mark_boundaries(a,b))
假设您有numpy阵列来缩放图像,则可以执行以下操作:

uint8image = np.uint8(float64image)

这对我帮助很大!主要是因为Skipage向我展示了一个与其他人不同的范围。非常感谢。
Scaled01 = image
Scaled01 -= Scaled01.min()
Scaled01 /= Scaled01.max()