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

栏目: Python · 发布时间: 6年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/1616767/pil-best-way-to-replace-color
我试图从我的图像中删除某种颜色,但是它不能像我所希望的那样工作.我试图做同样的事情,看到这里 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

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/1616767/pil-best-way-to-replace-color


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Learning PHP & MySQL中文版

Learning PHP & MySQL中文版

车立红 / 中国电力出版社 / 2007-06 / 36.00元

《Learning PHP & MySQL中文版》将介绍程序、模板和数据库的工作原理,讲述如何应对其中的挑战,并彻底地探索这些技术。一起来看看 《Learning PHP & MySQL中文版》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具