使用OpenCV快速去除天猫工商执照图片纯色水印

736 阅读2分钟
原文链接: zhuanlan.zhihu.com

一、前言

在之前的文章:使用Python爬取天猫店铺联系方式|思路与方法 中我们介绍了如何使用Python采集天猫店铺的企业联系方式。



在采集的过程中,我们有两个地方需要对图片进行处理,其中一个是验证码:



在这里我们需要将验证码下载到本地并进行验证码识别。第二个地方则是店铺工商执照的照片:



图片是带有天猫的灰色水印的,我们将图片下载下来:



如果这样直接对图片进行ORC文字识别,有可能会导致不能正确识别出公司名称来。我们需要对水印进行去除。

二、使用OpenCV快速去除水印

要对普通的图片水印进行去除,我们可以对图片进行灰度转换,然后再进行二值化转换。但是这样的方法容易造成图片的失真。

针对如上图这种配色单一的水印图片,我们可以直接将水印颜色填充替换为白色,从而实现水印的快速去除。

核心代码如下所示:

import cv2
import traceback
try:
    # 读取图片
    img = cv2.imread(filename)
    # 获取图片大小
    x, y, z = img.shape
    for i in range(x):
        for j in range(y):
            varP = img[i, j]
            if sum(varP) == 687:
                img[i, j] = [255, 255, 255]
    cv2.imwrite('zmister_qushuiyin.jpg', img)
except Exception as e:
    print(traceback.print_exc())


这样,我们的图片就可以快速去除天猫的水印:



三、使用PyQt5制作成桌面程序小工具

上面的代码快速地实现了天猫文字水印的去除,但是作为代码本身就不方便传播和使用。索性借助于PyQt5,我们将其打包为一个桌面图形界面程序。



这样,一个简单的去水印桌面小程序就写完了。

需要源码的可以关注微信公众号:州的先生,回复关键字“去水印源码”进行获取。