我需要使用标准的Python包创建一个numpy 2D数组,它表示多边形的二进制掩码.
(更大的上下文:我想使用scipy.ndimage.morphology.distance_transform_edt获取此多边形的距离变换.)
谁能告诉我怎么做?
在 Python 中使用 PIL,我将一个 PNG 图像叠加在另一个更大的图像之上。较小的图像是半透明的。
我希望较小图像后面的区域在较大图像上模糊。以下代码模糊了一个矩形区域:
box = (3270, 1150, 4030, 2250) # (x1, y1, x2, y2)
ic = outputImage.crop(box)
ic = ic.filter(ImageFilter.BoxBlur(20))
outputImage.paste(ic, box)
Run Code Online (Sandbox Code Playgroud)
但是,我需要模糊具有圆角的矩形区域。
这是叠加图像的样子:

那么,是否可以为 PIL 中的裁剪区域定义自定义形状?
如果没有,是否有可能至少是麦田圈形状的区域?(为了完全覆盖并且没有任何悬垂,我的区域必须分解为 6 个子区域:4 个圆圈和 2 个矩形。这样做会减慢我的代码速度,但我会采取任何我能得到的解决方案。)
我知道这可以用 Numpy 来完成,但我更喜欢使用 PIL,因为这个脚本中的其他所有内容都已经用 PIL 编码了。