【发布时间】:2016-06-01 02:38:33
【问题描述】:
假设我有一个 0 到 1 范围内的 2D Numpy 值数组,它表示灰度图像。然后如何将其转换为 PIL Image 对象?迄今为止的所有尝试都产生了极其奇怪的分散像素或黑色图像。
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 数组图像由 (image[x][y] - min) / (max - min) 归一化,因此每个值都在 0 到 1 的范围内。然后乘以 255 和转换为 8 位整数。理论上,这应该通过具有模式 L 的 Image.fromarray 处理成灰度图像 - 但结果是一组分散的白色像素。
【问题讨论】:
标签: python numpy python-imaging-library