Python 使用PIL在图像中的矩形周围进行模糊
我想知道是否可以用python上的PIL模块对矩形进行模糊处理。我试过一些方法,你可以用面具来隔离某个区域。在这篇文章中,他做的与我想做的相反,但我没有找到解决办法 以下是我仅处理模糊矩形的代码:Python 使用PIL在图像中的矩形周围进行模糊,python,python-imaging-library,Python,Python Imaging Library,我想知道是否可以用python上的PIL模块对矩形进行模糊处理。我试过一些方法,你可以用面具来隔离某个区域。在这篇文章中,他做的与我想做的相反,但我没有找到解决办法 以下是我仅处理模糊矩形的代码: 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
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")
图片:
总而言之,我只想模糊粉色框的外部,而不是内部。您可以用以下代码替换代码的最后3行:
# Paste blurred region and save result
blurred.paste(im, mask=mask)
blurred.save("blurredImg.png")
使用蒙版将原始图像有效粘贴到模糊图像上,并保存结果。谢谢。你的代码片段对我帮助很大。 在我的探索过程中,我发现了另一种解决方案:
mask = Image.new('L', im.size, 255) # set color value 0 -> 255
draw = ImageDraw.Draw(mask) #unchanged
draw.rectangle([ (x1,y1), (x2,y2) ], fill=0) # set fill level 255 -> 0
#this will create and inverted B/W mask
非常感谢。我觉得自己是个白痴,没想过这个^^“@Pierre AdrienDelisle别担心,我们有时都会那样做=)