如何使用Pillow合并(逻辑OR)两个图像?

3

我有两张二进制的黑白图像(mode=1)在pillow中。我想创建一张相同大小的新图像,它只是两者的二进制加法。换句话说,我想对每个像素进行逻辑或运算。

我已经阅读了文档一段时间,但似乎无法完成这个看起来简单的任务。有什么想法吗?


您可以将这两个图像加载进来,使用Image.tobytes()检索它们的图像数据作为字节,或者将它们合并在一起,然后使用Image.frombytes()从结果创建一个新的图像。通过多次调用getpixel()putpixel()(或通过[x, y]访问的PixelAccess)来完成相同的操作的替代方法可能太慢而不实用。 - martineau
谢谢,我最终选择了使用getpixel()和putpixel()的方法。我原本希望有一种内置的方法来处理这个问题,但至少现在我有一个可行的解决方案了。 - Brandon Yates
我对Python还比较新,使用“tobytes()”和“frombytes()”时遇到了可变性问题,因此我没有继续使用它们。 - Brandon Yates
1个回答

0

使用ImageChops.add()方法:

PIL.ImageChops.add(image1, image2, scale=1.0, offset=0)[source] 添加两个图像,将结果除以比例并加上偏移量。如果省略,则比例默认为1.0,偏移量为0.0。

out = ((image1 + image2) / scale + offset)

Return type:    Image

这将让您创建一个复合图像,看起来像是两个图像之间的OR操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接