欢迎访问宙启技术站
智能推送

Python中使用PIL.ImageChopsdifference()函数检测图像差异

发布时间:2023-12-17 19:56:21

在Python中,可以使用PIL库的ImageChops模块中的difference()函数来检测图像之间的差异。下面是一个使用PIL.ImageChops.difference()函数的例子。

首先,我们需要导入PIL库和numpy库,并打开两个需要比较的图像文件。

from PIL import ImageChops
import numpy as np

# 打开两个需要比较的图像文件
img1 = Image.open('image1.jpg')
img2 = Image.open('image2.jpg')

接下来,我们需要将图像文件转换为numpy数组,以便进行比较。

# 将图像文件转换为numpy数组
img_arr1 = np.array(img1)
img_arr2 = np.array(img2)

然后,我们可以使用PIL.ImageChops.difference()函数来计算两个图像之间的差异。

# 计算两个图像之间的差异
diff = ImageChops.difference(img1, img2)

如果两个图像中的像素值完全一样,则diff将是一个全黑的图像。如果有差异,则diff将显示差异的位置。

最后,我们可以将差异图像保存到文件中,并显示出来。

# 将差异图像保存到文件
diff.save('diff_image.jpg')

# 显示差异图像
diff.show()

完整代码如下:

from PIL import ImageChops
import numpy as np

# 打开两个需要比较的图像文件
img1 = Image.open('image1.jpg')
img2 = Image.open('image2.jpg')

# 将图像文件转换为numpy数组
img_arr1 = np.array(img1)
img_arr2 = np.array(img2)

# 计算两个图像之间的差异
diff = ImageChops.difference(img1, img2)

# 将差异图像保存到文件
diff.save('diff_image.jpg')

# 显示差异图像
diff.show()

以上就是使用PIL.ImageChops.difference()函数检测图像差异的一个例子。你可以将该代码用于比较两个图像文件之间的差异,并保存差异图像进行查看。