python - 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)
解决方案
您的代码不会将白色像素值转换为黑色像素。它以某种方式以不同的方式表示像素值。我们可以检查它是否使用 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)
推荐阅读
- elasticsearch - django弹性搜索为模型ID大数字搜索提供TransportError 400
- ajax - 存储数据后 Ajax 页面正在重新加载
- c - 如何纠正我的代码中出现的错误以查找 Euler's Totient。任何人都可以纠正我出错的部分吗?
- kotlin - Kotlin 如何创建动态对象
- java - 如何使用 setter 和 getter 方法获取对象的对象数组及其响应
- oauth-2.0 - google action 帐号关联 帐号关联失败
- javascript - 如何在渲染之前计算将在ui元素中渲染的字符数
- reactive-programming - 如果 X 秒后可观察对象没有发出任何内容,如何执行操作?
- reactjs - 如何从材料表中删除覆盖装载机?
- java - 如何在 GetLogger 中获取类名并在 log4j 2 中打印正确的类名