Преобразование массива 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() 
  • шрифты с PIL
  • Как я могу загрузить файл шрифта с помощью PIL.ImageFont.truetype без указания абсолютного пути?
  • Загрузите растровое изображение RGBA с помощью PIL
  • При обновлении библиотеки изображений python (PIL) она сообщает мне, что «поддержка JPEG недоступна»
  • Пиксельная манипуляция с помощью PIL.Image и ctypes
  • Преобразование изображения в определенную палитру с использованием PIL без сглаживания
  • Какой формат создает «adb screencap /sdcard/screenshot.raw»? (без флага «-p»)
  • Расширение декодера PIL
  • Масштабировать изображения с сохранением прозрачности и цвета PIL?
  • PIL конвертирует изображение приводит к плохим результатам
  • Преобразование RGB в черный или белый
  • Python - лучший язык программирования в мире.