plt.imsave保存图像不正确

时间:2019-06-19 09:21:02

标签: python opencv matplotlib

我正在尝试使用一些矩形和圆形的随机图像生成CLEVR数据集。在调试每个nzcur语句的代码时,我可以看到一个新图像,该图像具有生成的形状以及在最后执行的循环中生成的形状。虽然,令我惊讶的是,每次生成的第5张图像在调试模式下都没有显示。

当我在本地保存图像时,我也只能看到两个对象。请找到图片以供参考。

plt.imshow()

调试期间生成的图像。 Image generated during debugging

图像存储在本地。

Image saved locally

有人可以在这里解释这个问题吗? 谢谢

1 个答案:

答案 0 :(得分:1)

要保存图像,请使用cv2.imwrite()

cv2.imwrite('..\\img\\train\\img_' + str(loop) + '.jpeg', img)

要正确地将其保存在plt.imsave中,还需要除以255

plt.imsave('..\\img\\train\\img_' + str(loop) + '.jpeg', img/255.0)

或将它们转换为'uint8'

img = img.astype('uint8')
plt.imsave('..\\img\\train\\img_' + str(loop) + '.jpeg', img)