📜  Python PIL | Image.point() 方法(1)

📅  最后修改于: 2023-12-03 15:34:03.312000             🧑  作者: Mango

Python PIL | Image.point() 方法

Image.point() 方法是Pillow库中Image类的一个方法,它用于应用指定的函数来对像素亮度进行处理。该方法返回处理后的新图像。

语法
Image.point(function)

该方法需要一个参数function,它必须是一个接受单个亮度值作为参数并返回相应输出亮度值的函数。

参数
  • function - 用于处理像素亮度的函数。
返回值

该方法返回一个新的图像,其中像素亮度已根据function进行处理。

示例

假设我们有一张灰度图像,我们想让所有亮度值比128大的像素变亮,比128小的像素变暗。我们可以使用以下代码:

from PIL import Image

im = Image.open("example.jpg").convert("L")
new_im = im.point(lambda x: x*1.5 if x > 128 else x*0.5)
new_im.show()

在上面的代码中,我们首先将原图像转换为灰度图像,这是必须的,因为point()方法只能应用于单通道图像。接下来,我们使用lambda表达式定义一个匿名函数,该函数将对每个像素的亮度进行处理。如果像素的亮度值大于128,则将像素的亮度值乘以1.5,否则将其乘以0.5。最后,我们使用point()方法将处理后的图像保存到新的变量new_im中,并使用show()方法显示新图像。

注意事项
  • Image.point()方法只能用于单通道图像。
  • function参数必须是一个函数,且必须接受单个亮度值作为参数,并返回相应的输出亮度值。
  • function参数可以是一个lambda表达式,一些内置函数,或自定义函数,只要它符合上述要求即可。
  • 如果需要在原图像的基础上进行修改,而不是生成一张新的图像,可以使用Image.load()方法获取像素值,并直接对其进行修改。