matplotlib
##########################################
## float ##
# img = np.random.rand(300, 400)
# img = np.random.rand(300, 400)*255
## int ##
img = np.random.randint(0, 256, (300, 400))
# img = img.astype(np.float32)
# img = img.astype(np.uint8)
##########################################
## show ##
plt.imshow(img, cmap="gray")
plt.savefig("temp.png")
会连其他空白都保存
PIL
##########################################
## float ##
img = np.random.rand(300, 400)
# img = np.random.rand(300, 400)*255
## int ##
# img = np.random.randint(0, 256, (300, 400))
# img = img.astype(np.float32)
# img = img.astype(np.uint8)
##########################################
Img = Image.fromarray(img)
# Img = Image.fromarray(img, mode='P')
Img.save("temp.png")
对数据类型要求严格,要求必须是np.uint8,否则必须使用Image.fromarray(img, mode=’P’)
opencv2
##########################################
## float ##
img = np.random.rand(300, 400)
# img = np.random.rand(300, 400)*255
## int ##
# img = np.random.randint(0, 256, (300, 400))
##########################################
cv2.imwrite("temp.png", img)
输入数据范围不能为[0, 1.0]的float数
输入数据范围可以为[0, 255]的float数或整数
skimage
##########################################
## float ##
img = np.random.rand(300, 400)
# img = np.random.rand(300, 400)*255
## int ##
# img = np.random.randint(0, 256, (300, 400))
##########################################
io.imsave('temp.png', img)
输入数据范围可以为[0, 1.0]的float数,[0, 255]的float数或整数