python – PIL最好的方式来替换颜色?

我试图从我的图像中删除某种颜色,但是它不能像我所希望的那样工作.我试图做同样的事情,看到这里Using PIL to make all white pixels transparent?然而,图像质量有点有损,所以它留下一个奇怪的彩色像素的一点点在哪里被删除.如果所有三个值都低于100,那么我尝试像像素一样改变像素,但是由于图像质量差,周围的像素甚至不是黑色的.

有没有人知道用PIL在Python中更好的方式来替换颜色和周围的任何东西?这可能是我可以想到的唯一可靠的火灾方式,完全删除对象,但我不能想到一种方法来做到这一点.

图片具有白色背景和黑色文字.我们只是说我想从图像中完全删除文本,而不会留下任何文物.

真的很感激某人的帮助!谢谢

您需要将图像代表为二维数组.这意味着要创建像素列表的列表,或者使用一些聪明的数学方法将二维数组视为二维数组.然后,对于每个要定位的像素,您需要找到所有周围的像素.因此,您可以使用python生成器:

def targets(x,y):
    yield (x,y) # Center
    yield (x+1,y) # Left
    yield (x-1,y) # Right
    yield (x,y+1) # Above
    yield (x,y-1) # Below
    yield (x+1,y+1) # Above and to the right
    yield (x+1,y-1) # Below and to the right
    yield (x-1,y+1) # Above and to the left
    yield (x-1,y-1) # Below and to the left

所以,你会这样使用:

for x in range(width):
    for y in range(height):
        px = pixels[x][y]
        if px[0] == 255 and px[1] == 255 and px[2] == 255:
            for i,j in targets(x,y):
                newpixels[i][j] = replacementColor
翻译自:https://stackoverflow.com/questions/1616767/pil-best-way-to-replace-color

转载注明原文:python – PIL最好的方式来替换颜色?