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

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

内容简介:代码日志版权声明:翻译自: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


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

查看所有标签

猜你喜欢:

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

C#图解教程

C#图解教程

索利斯 (Daniel M.Solis) / 姚琪琳、苏林、朱晔 / 人民邮电出版社 / 2013-7-1 / CNY 89.00

本书是广受赞誉的C# 图解教程的最新版本。作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式、朴实简洁的文字,并辅以大量表格和代码示例,全面、直观地阐述了C# 语言的各种特性。新版本除了精心修订旧版内容外,还全面涵盖了C# 5.0 的新增特性,比如异步编程、调用者信息、case 表达式、带参数的泛型构造函数、支持null 类型运算等。通过本书,读者能够快速、深入理解C#,为自己的编程生涯......一起来看看 《C#图解教程》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具