将图像转换为灰度
Converting image to Greyscale
我知道我们可以使用 PIL
或 PILLOW
将 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 绘制图像的方法
我知道我们可以使用 PIL
或 PILLOW
将 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 绘制图像的方法