Python 图像减法和加法

Python 图像减法和加法,python,python-imaging-library,Python,Python Imaging Library,我有两张照片。我从第二个中减去第一个,然后再次将差值加到第一个,并保存了图像。但新图像与原始图像不同。为什么会这样? 代码如下: import Image from PIL import ImageChops im1 = Image.open("scimg1.png") im2 = Image.open("scimg2.png") diff = ImageChops.subtract(im2, im1) newim2 = ImageChops.add(im1, diff) newim2.s

我有两张照片。我从第二个中减去第一个,然后再次将差值加到第一个,并保存了图像。但新图像与原始图像不同。为什么会这样? 代码如下:

import Image
from PIL import ImageChops

im1 = Image.open("scimg1.png") 
im2 = Image.open("scimg2.png")

diff = ImageChops.subtract(im2, im1)
newim2 = ImageChops.add(im1, diff)
newim2.save("newim2.png")
diff.save("diffimg.png")

从我在查看来自im1、im2和diff的像素值数组时看到的情况来看,diff值似乎永远不会低于0,即使im1的像素值大于im2的像素值

因此,例如,如果im1的一点上的像素值为255255255,im2的一点上的像素值为235235235,则即使255-235=-20,差值也将为0,0,0。然后尝试将diff值0添加到im1时,仍然会产生像素值255255255,而不是235235235

此外,diff数组似乎对应于im1数组的大小,因此如果im1小于im2,diff图像也将更小。但是,我不确定根据您使用的图像是否相同,我建议您导入numpy并查看您自己的图片阵列和差异