我有两张尺寸相似的图像,
由于外圆应具有接近重叠的像素,因此我希望得到一个结果图像,该图像具有图像A的内圆和图像B的方形。我想反转图像A,然后调用PIL.Image.composite(imageA, imageB, mask)
会做些什么,但这只是给了我imageA和imageB的组合。
是否可以使用Pillow或以某种方式使用numpy来使两个图像之间相似的像素变白?
答案 0 :(得分:1)
我认为您正在寻找两个图像之间的XOR。
如果您不进行很多逻辑表达式求值,我会慢慢进行,因此从 OR 开始,由于 图片A OR 图片B具有白色像素。然后使用 AND ,您将获得白色像素,而图像A 和图像B均为白色。最后,使用 XOR ,您将获得白色像素,图像A或图像B除外,但一个或另一个图像,但都不都是白色像素。
在代码中,看起来像这样:
#!/usr/local/bin/python3
from PIL import Image, ImageChops
# Load up the two images, discarding any alpha channel
im1 = Image.open('im1.png').convert('1')
im2 = Image.open('im2.png').convert('1')
# XOR the images together
result = ImageChops.logical_xor(im1,im2)
result = ImageChops.invert(result)
# Save the result
result.save('result.png')