plt存图报错:
OSError: cannot write mode F as PNG
报错代码:
import matplotlib.pyplot as plt
plt.ion()
with torch.no_grad():
for index, x in enumerate(dataloaders):
y = model(x)
img_y = torch.squeeze(y).numpy()
img_y = img_y[:, :, np.newaxis]
img = labelVisualize(2, COLOR_DICT, img_y) if False else img_y[:, :, 0]
io.imsave("./res/" + str(index) + "_predict.png", img)
plt.pause(0.01)
# plt.show()
报错原因:
因为带保存的图片 img 里边的数据是浮点数据,需要把其图像数据转换为 uint8 数据类型,不然就会报上面的错误
修正代码如下:
import matplotlib.pyplot as plt
plt.ion()
with torch.no_grad():
for index, x in enumerate(dataloaders):
y = model(x)
img_y = torch.squeeze(y).numpy()
img_y = img_y[:, :, np.newaxis]
img = labelVisualize(2, COLOR_DICT, img_y) if False else img_y[:, :, 0]
img = img.astype(np.uint8)
io.imsave("./res/" + str(index) + "_predict.png", img)
plt.pause(0.01)
# plt.show()
这样就解决了