Python Image.load()返回大于250的像素

时间:2014-04-27 21:40:19

标签: python image python-imaging-library pixel image-load

我正在使用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 个答案:

答案 0 :(得分:0)

这样的事情?

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