0

我正在使用 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)))
4

1 回答 1

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)]
于 2014-04-28T13:35:35.820 回答