Python Image.load() возвращает пиксели больше 250

Я загружаю свой файл изображения, используя Image.open("image.tif"). Затем я использую Image.load() для создания pixelMap изображения. Затем я храню каждый пиксель в массиве. Следующий код описывает этот процесс. Затем я хочу создать значение ascii для каждого пикселя и сохранить его в виде строки. Итак, я прохожу каждый пиксель в моем массиве пикселей, а затем меняю значение пикселя на значение ascii. Однако у меня ошибка, потому что я получаю некоторые значения пикселей больше 250. Как это возможно. Также это ч / б изображение. Что я делаю неправильно?

self.filename = filename
self.im = Image.open(filename)
self.pixelmap = self.im.load() #Loads the image as a map of pixels
self.arr = []
for i in range(self.im.size[0]):
    for j in range(self.im.size[1]):
    mypixel = self.pixelmap[i, j]
    self.arr.append(mypixel)


for i in msgFile.arr:
    self.message += str(unichr(int(i)))

1 ответ

Что -то вроде этого?

from PIL import Image
import numpy as np

image = np.asarray(Image.open('image.jpg'))
_y, _x, _z = image.shape
str_array = [str(image[y][x]) for y in range(_y) for x in range(_x)]
Другие вопросы по тегам