📜  Python PIL | ImageChops.subtract() 和 ImageChops.subtract_modulo() 方法(1)

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

Python PIL | ImageChops.subtract() 和 ImageChops.subtract_modulo() 方法介绍

Python Imaging Library(PIL)是用于处理图像的Python库。其中,ImageChops模块提供了用于像素层面的图像修改操作的函数。

本文介绍ImageChops模块中的subtract()和subtract_modulo()方法。

ImageChops.subtract()

subtract()方法用于从第一个图像中减去第二个图像。如果两个图像的大小不同,则在进行减法运算之前,第二个图像会被裁剪成第一个图像的尺寸。然后,在每个像素位置上,通过将第二个图像的值从第一个图像的值中减去来计算差值。

语法如下:

ImageChops.subtract(image1, image2, scale=1.0, offset=0)

参数说明:

  • image1: 第一个图像。
  • image2: 第二个图像。
  • scale: 缩放结果值的因子(默认为1.0)。
  • offset: 在缩放之后为结果值添加的常量偏移量(默认为0)。

示例代码:

from PIL import Image, ImageChops

# 打开两个图像
image1 = Image.open('image1.jpg')
image2 = Image.open('image2.jpg')

# 计算差值
diff = ImageChops.subtract(image1, image2)

# 显示差值
diff.show()

结果如下图所示:

subtract()方法结果示例

ImageChops.subtract_modulo()

subtract_modulo()方法用于从第一个图像中的每个像素中减去第二个图像的对应像素的值(如果第二个图像存在于该位置),否则从第二个图像的第一个像素中减去。然后,通过应用模运算器将结果调整为位深度(通常为8位),并使用标度和偏移量进行调整。

语法如下:

ImageChops.subtract_modulo(image1, image2, scale=1.0, offset=0)

参数说明:

  • image1: 第一个图像。
  • image2: 第二个图像。
  • scale: 缩放结果值的因子(默认为1.0)。
  • offset: 在缩放之后为结果值添加的常量偏移量(默认为0)。

示例代码:

from PIL import Image, ImageChops

# 打开两个图像
image1 = Image.open('image1.jpg')
image2 = Image.open('image2.jpg')

# 计算差值
diff = ImageChops.subtract_modulo(image1, image2)

# 显示差值
diff.show()

结果如下图所示:

subtract_modulo()方法结果示例

总结

本文介绍了Python PIL库的ImageChops模块中的subtract()和subtract_modulo()方法。这两种方法允许我们像素级别地进行图像修改操作。我们可以使用它们来计算两个图像之间的差异并显示结果。