python - 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 代码的缓冲区时,像素模糊变得更少,除非我增加太多,否则图像中的白色经常会被意外拾取。
什么可能是一种去除模糊的方法(例如具有高容差的油漆桶工具),同时又不增加花费的时间?