天天看点

图片去水印

Python去除图片水印

  • ​​背景​​
  • ​​核心代码​​
  • ​​思路与代码解析​​
  • ​​后话​​

背景

手里有一张图片,由于水印导致部分内容被模糊了,于是试想能不能用程序把水印去掉,还原图片本真。

核心代码

# -*- coding: utf-8 -*-
"""
Created on Mon Jul  8 15:39:09 2019
title: 图片去水印
@author: Uncle Three
"""
import cv2 #导入PythonCV模块
import numpy as np #导入数值计算扩展模块
img=cv2.imread("1.png") #读图数据
height,weight,channel=img.shape[0:3] #图片的高,宽,和像素通道

thresh=cv2.inRange(img,np.array([170,170,170]),np.array([192,192,192])) ##图片二值化处理,把[189, 189, 189]~[192, 192, 192]以外的颜色变成0
scan=np.ones((3,3),np.uint8) #创建膨胀元素
cor=cv2.dilate(thresh,scan,iterations=1) #进行膨胀处理 (将水印三原色覆盖掉)
specular=cv2.inpaint(img,cor,5,flags=cv2.INPAINT_TELEA) #以膨胀结构来修复
cv2.imwrite("result.png",specular) #保存      

思路与代码解析

先用识别RGB值得软件识别出水印的RGB值,定位要去除的水印,然后用inRange过滤掉水印的RGB值,然后用水印周边的进行填补inpaint。

后话

去水印的效果并不好,或者还有很多值得去探究的,如果各位有好的思路,也欢迎留言。