Python - сохранение трехмерного массива в файл изображения - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь сохранить изображение (созданное GAN) в формате numpy.ndarray с формой (row, col, channel), имеющей значение с плавающей запятой.Первая стратегия, которую я нашел здесь, это использование PIL

from PIL import Image

img_array = np.reshape(img_array, (row, col))
img_array *= 255
img = Image.fromarray(img_array.astype(np.uint8))
img.save('foo.png')

Но после просмотра результата (как при построении графика с помощью matplotlib, так и при сохранении в виде файла изображения) он создает белые артефакты, такие как этот

Sample of image in PIL

По сравнению с построением массива прямо в matplotlib результат будет лучше, но при сохранении создайте поле в файле изображения

Sample of image from matplotlib

Как сохранить изображение таким образом, чтобы качество соответствовало сюжету?

Примечание: я проверил значение, используя img_array.max() или img_array.min(), и да, значение превышает порог 0-255

...