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)]