使用PIL在图像中的矩形周围进行模糊处理

时间:2019-07-11 10:26:18

标签: python python-imaging-library

我想知道是否可以使用python上的PIL模块对整个矩形进行模糊处理。我已经尝试过了一些事情,作为this post shows,您可以进行遮罩以隔离特定区域。在这篇文章中,他所做的与我想要的相反,但我没有找到解决方法。

这是我的代码,仅模糊矩形:

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFilter

# Open an image
im = Image.open('3055.png')

x1=810
y1=97
x2=1177
y2=992

# Create rectangle mask
mask = Image.new('L', im.size, 0)
draw = ImageDraw.Draw(mask)
draw.rectangle([ (x1,y1), (x2,y2) ], fill=255)
mask.save('mask.png')

# Blur image
blurred = im.filter(ImageFilter.GaussianBlur(52))

# Paste blurred region and save result
im.paste(blurred, mask=mask)
im.save("blurredImg.png")

图像:

originalImage

blurredImg

总而言之,我只想让粉红色盒子的外部模糊而不是内部。

2 个答案:

答案 0 :(得分:2)

谢谢。您的代码段对我有很大帮助。 在探查过程中,我发现了另一个解决方案,例如:

Active Choices Reactive Reference Parameter

答案 1 :(得分:1)

您可以使用以下代码替换代码的最后3行:

# Paste blurred region and save result
blurred.paste(im, mask=mask)
blurred.save("blurredImg.png")

使用蒙版有效地将原始图像粘贴在模糊的蒙版上,并保存结果。