【问题标题】:Increase PNG masked area on a JPG with Python Pillow (or PIL)使用 Python Pillow(或 PIL)增加 JPG 上的 PNG 遮罩区域
【发布时间】:2016-05-02 15:30:58
【问题描述】:

我正在尝试使用 png 黑色/透明蒙版来屏蔽 jpg 图像,但由于锯齿和边框模糊,我总是在输出原始 jpg 的轮廓线。

由于该任务不需要图形精度,因此可以通过将蒙版区域增加几个像素来轻松解决。

因此,例如,如果蒙版区域允许 100 像素的中心圆,只需将圆“扩展”某个像素即可解决问题。

有没有办法用 Pillow 实现这一点?

【问题讨论】:

  • 我不知道 Pillow,但如果你能在其中找到一些形态学函数,dilateerode 可能是可以使用的。
  • 遗憾的是我没有找到扩张/侵蚀功能:(但我还是找到了解决方案。

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


【解决方案1】:

我找到了解决方案;我把它写下来,以便其他人在需要时可以受益:

1) 对蒙版应用高斯模糊。这将用阴影“扩大”边界

1b) 仅在需要时转换为黑/白颜色

2) 应用转换,根据阈值将每个像素转换为黑色或白色。不允许使用其他颜色

类似的东西:

blackThreshold = 128.0
img = img.filter(ImageFilter.GaussianBlur(radius=3))
r,g,b,a = img.split() # supposing to have a RGBA PNG
gray = Image.merge('L',(a,)) # 
gray = gray.point(lambda x: 0 if x<blackThreshold else 255)

【讨论】:

    猜你喜欢
    • 2019-12-31
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2015-02-25
    相关资源
    最近更新 更多