Python PIL库提供了许多图像处理方法, 其中ImageChops.subtract()方法是用于计算两个图像像素之间差异的方法,该方法会返回一个新图像,该图像表示第二个图像从第一个图像中减去的结果。
方法语法
ImageChops.subtract(image1, image2, scale=1.0, offset=0)
方法参数
- image1:第一个图像对象
- image2:第二个图像对象
- scale:缩放因子,默认值是1.0,表示输出图像的像素值大小与输入图像的像素值大小一致
- offset:输出像素值的偏移量,默认值是0,表示输出图像的像素值是输入图像像素值差异的绝对值与偏移量之和
方法返回值
- 返回一个新图像,表示第二个图像从第一个图像中减去的结果
注意事项
- 该方法只适用于单通道图像(灰度图像),如果要计算多通道图像的差异需要先将其转换为单通道图像。
下面给出两个示例说明:
示例1:计算两个图像的差异
from PIL import Image, ImageChops
# 读取图片
im1 = Image.open('image1.png')
im2 = Image.open('image2.png')
# 计算两个图像的差异
im_diff = ImageChops.subtract(im2, im1)
# 显示差异图像
im_diff.show()
示例2:设置输出图像的像素值大小与偏移量
from PIL import Image, ImageChops
# 读取图片
im1 = Image.open('image1.png')
im2 = Image.open('image2.png')
# 计算两个图像的差异
scale = 2.0
offset = 128
im_diff = ImageChops.subtract(im2, im1, scale=scale, offset=offset)
# 显示差异图像
im_diff.show()
在示例2中,我们通过设置scale参数为2.0,意味着输出的像素值大小是输入像素值大小的两倍,而offset参数为128,意味着输出的像素值会加上这个偏移量。因此,输出图像的像素值范围是[0, 255]。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python PIL ImageChops.subtract()方法 - Python技术站