如何利用Python去除图片水印?

简介


在这里插入图片描述
即上图中的这类水印,这种水印存在白色背景上的文档里,水印是灰色,需要保留的文字是黑色。

这种通常可以进行简单的亮度/对比度转换,直到水印消失并降低亮度以进行补偿。参考别人的方法,我发现可以用多种方法去除水印。大致原理比较相似,下面先讲itertools的方法。

PIL + itertools


PIL也是一个Python 图像处理库,其中Image模块是在Python PIL图像处理中常见的模块,对图像进行基础操作的功能基本都包含于此模块内。

itertools 之前更是被我们称为一个 零差评的 Python 内置库。其中itertools.product用来产生多个列表和迭代器的(积)。

水印部分RGB颜色为179,179,179


在这里插入图片描述

白色部分RGB为255,255,255


在这里插入图片描述

原理,我们希望将图片中[179,179,179]的像素点转换成[255,255,255]。

那就简单粗暴一点,也就是像素值相加大概500(179,179,179)以上的像素点,都改成[255,255,255]就好了。

from itertools import product
from PIL import Image

img = Image.open('1.png')
width, height = img.size
for pos in product(range(width), range(height)):
    if sum(img.getpixel(pos)[:3]) > 500:
        img.putpixel(pos, (255,255,255))
img.save('removed_1.png')

效果如下:


在这里插入图片描述

版权声明:本文为作者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原创文章,作者:老C,如若转载,请注明出处:https://www.code404.icu/1198.html

发表评论

登录后才能评论