首页 > 解决方案 > Python PIL - 可能的油漆桶状工具?

问题描述

我有一张我正在尝试使用 PIL Python 图像库编辑的图像。我试图通过用透明像素替换具有特定 RGBA 代码的像素来使浅褐色背景透明。我一直在研究Python: PIL replace a single RGBA color,并对其进行了编辑以允许缓冲区拾取颜色不完全相同的像素。这是我当前的代码:

data = numpy.array(im)
red, green, blue, alpha = data.T

for r in range(245, 256):
    for g in range(245, 256):
        for b in range(210, 230):
            white_areas = (red == r) & (green == g) & (blue == b) & (alpha == 255)
            if len(data[...][white_areas.T]) != 0:
                data[...][white_areas.T] = (0, 0, 0, 0)

但是,我发现在图像周围,由于一些颜色模糊,仍然有一些像素悬空,并且在图像边框的外边缘周围也有一些像素。当添加到深色背景中时,这一点清晰可见。我发现当我增加 RGB 代码的缓冲区时,像素模糊变得更少,除非我增加太多,否则图像中的白色经常会被意外拾取。

什么可能是一种去除模糊的方法(例如具有高容差的油漆桶工具),同时又不增加花费的时间?

标签: python

解决方案


推荐阅读