是否可以在Python Imaging Library(PIL)中屏蔽图像?

时间:2015-02-06 04:03:27

标签: python image image-processing python-imaging-library mask

我有一些交通摄像头图像,我想只提取道路上的像素。我之前使用遥感软件之前可以指定像

这样的操作

img1 * img2 = img3

其中img1是原始图像,img2是直黑白掩模。基本上,图像的白色部分将评估为

img1 * 1 = img3

并且黑色部分将评估为

img1 * 0 = img3

因此,人们可以拍摄一张图片,让所有非重要区域变黑。

有没有办法用PIL做到这一点?我找不到像我以前常常看到的类似图像代数的东西。我已经尝试过混合功能,但这只是将它们混合在一起。我已经阅读了一些关于numpy的内容,看起来它可能有能力,但我想知道在我潜水之前没有直接的方法在PIL中这样做。

谢谢。

2 个答案:

答案 0 :(得分:2)

Image.composite方法可以做你想要的。第一个图像应该是表示屏蔽区域的常量值,第二个图像应该是原始图像 - 第三个是掩模。

答案 1 :(得分:1)

您可以使用PIL库遮盖图像。将alpha参数添加到img2中,因为您不能仅将此图像粘贴到img1上。否则,您将看不到下面的内容,需要添加一个alpha值。

img2.putalpha(128)#如果您输入0,它将完全透明,请保持图像不透明

然后您可以同时遮盖两个图像 img1.paste(im=img2, box=(0, 0), mask=img2)