首页 > 解决方案 > PIL 图像打开将白色像素变成黑色像素

问题描述

当我用枕头()打开一个全白文件,from PIL import Image然后获取所有像素的颜色时,你应该看到类似的东西,[255, 255, 255, 255, 255, 255].....但我只看到[0, 0, 0, 0, 0, 0].....,代码如下:

from PIL import Image
image = Image.open("index.png", "r")
pixels = list(image.getdata())
print(pixels)

标签: pythonpython-3.xpython-imaging-library

解决方案


您的代码不会将白色像素值转换为黑色像素。它以某种方式以不同的方式表示像素值。我们可以检查它是否使用 RGB 色域将白色像素值转换为黑色像素。代码如下所示:

from PIL import Image
import numpy as np
img = Image.open("index.png") # open colour image


imgRgb = img.convert('RGB')
pixels = list(imgRgb.getdata())
width, height = imgRgb.size
pixels = np.asarray([pixels[i * width:(i + 1) * width] for i in range(height)], dtype=int)

推荐阅读