用枕头在图像上羽化边缘

exs*_*ake 3 image pillow python-3.6

我试图弄清楚如何使用带Pillow和Python的图像边缘。

我需要像这样的可爱猫咪(忽略可见边缘):

在此处输入图片说明

我尝试过,im.filter(ImageFilter.BLUR)但不是我要找的东西。

And*_*kha 6

看一下这个例子:

from PIL import Image
from PIL import ImageFilter

RADIUS = 10

# Open an image
im = Image.open(INPUT_IMAGE_FILENAME)

# Paste image on white background
diam = 2*RADIUS
back = Image.new('RGB', (im.size[0]+diam, im.size[1]+diam), (255,255,255))
back.paste(im, (RADIUS, RADIUS))

# Create blur mask
mask = Image.new('L', (im.size[0]+diam, im.size[1]+diam), 255)
blck = Image.new('L', (im.size[0]-diam, im.size[1]-diam), 0)
mask.paste(blck, (diam, diam)) 

# Blur image and paste blurred edge according to mask
blur = back.filter(ImageFilter.GaussianBlur(RADIUS/2))
back.paste(blur, mask=mask)
back.save(OUTPUT_IMAGE_FILENAME)
Run Code Online (Sandbox Code Playgroud)

原始图片(作者- 艾琳·梅):

猫咪

粘贴在白色背景上:

小猫在白色背景上粘贴

模糊区域(粘贴蒙版):

模糊区域

结果:

带有羽毛(模糊)边缘的小猫的图像