将图像转换为灰度

Converting image to Greyscale

我知道我们可以使用 PILPILLOW 将 RGB 图像转换为灰度图像。我们可以通过导入 Image 来做到这一点。一种可用于执行此操作的方法如下。

from PIL import Image img=Image.open('Sample.jpg').convert('LA') img.save('greyscale.png')

我们可以在不使用 python 包的情况下将 RGB 图像转换为灰度图像吗?我想那样学习。任何帮助,我该怎么做?

如果您使用 Pillow 查看来自 RGB 图像的数据,您将得到一个具有 3 个值的 turple,或者如果您在 RGBA 模式下读取则为 4 个。在灰度 (L) 中,您只有 1 个值。使用 Python,您有很多库可以将 RGB 转换为 L,并且它们有不同的 ways/methods。要将 RGB 转换为 L,您需要对 RGB 求和并使用许多公式,例如

 (max(R, G, B) + min(R, G, B)) / 2 #lightness method
 (R + G + B) / 3 # average method
 0.21 R + 0.72 G + 0.07 B # luminosity method

但是我不知道如何在没有库的情况下创建图像,因为我创建了一种使用 Pillow 绘制图像的方法