【问题标题】:How to hide overlapping pixels using Pillow?如何使用 Pillow 隐藏重叠像素?
【发布时间】:2018-09-22 10:19:24
【问题描述】:

我有两张类似尺寸的图片:

由于外圆应该有接近重叠的像素,我想要一个结果图像,其中包含图像 A 的内圆和图像 B 的正方形。我认为反转图像 A 然后调用 PIL.Image.composite(imageA, imageB, mask) 就可以了一些东西,但它只是给了我一个 imageA 和 imageB 的组合。

有没有办法使用 Pillow 或使用 numpy 以某种方式使两个图像之间相似的像素变为白色?

【问题讨论】:

    标签: python python-3.x numpy python-imaging-library


    【解决方案1】:

    我认为您正在寻找两个图像之间的异或。

    如果你不做很多逻辑表达式评估,我会慢慢处理它,所以从 OR 开始,你会得到白色像素,结果是 图像 A OR 图像 B 具有白色像素。然后使用 AND,您将在图像 A AND 图像 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')
    

    【讨论】:

      猜你喜欢
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 2021-12-14
      相关资源
      最近更新 更多