Преобразование массива 2D Numpy значений оттенков серого в изображение PIL

Скажем, у меня есть массив 2D Numpy значений в диапазоне от 0 до 1, который представляет изображение в градациях серого. Как преобразовать его в объект изображения PIL? Все попытки до сих пор дали чрезвычайно странные рассеянные пиксели или черные изображения.

for x in range(image.shape[0]): for y in range(image.shape[1]): image[y][x] = numpy.uint8(255 * (image[x][y] - min) / (max - min)) #Create a PIL image. img = Image.fromarray(image, 'L') 

В приведенном выше коде образ массива numpy нормализуется (изображение [x] [y] – min) / (max – min), поэтому каждое значение находится в диапазоне от 0 до 1. Затем оно умножается на 255 и преобразуется в 8-битное целое число. Теоретически это должно происходить с помощью Image.fromarray с режимом L в полутоновое изображение, но результатом является набор белых белых пикселей.

One Solution collect form web for “Преобразование массива 2D Numpy значений оттенков серого в изображение PIL”

Если я понял вас, вы хотите получить изображение в оттенках серого с помощью PIL.

Если это так, вам не нужно умножать каждый пиксел на 255.

Следующие работали для меня

 import numpy as np from PIL import Image # Creates a random image 100*100 pixels mat = np.random.random((100,100)) # Creates PIL image img = Image.fromarray(mat, 'L') img.show() 
  • При обновлении библиотеки изображений python (PIL) она сообщает мне, что «поддержка JPEG недоступна»
  • PIL (изображение) ValueError: не допустимое число таблиц квантования. Должно быть от 1 до 4
  • Умножение кортежа на скаляр
  • Использовать Python / PIL или аналогично сокращению пробелов
  • как правильно установить модули в Pycharm?
  • как вывести изображение на веб-странице Django с изображением PIL
  • Как измерить совпадение изображения в оптическом дальномерном
  • PIL поворачивает цвета изображения (BGR -> RGB)
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.