Python去除图片水印 背景 核心代码 思路与代码解析 后话 背景 手里有一张图片,由于水印导致部分内容被模糊了,于是试想能不能用程序把水印去掉
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。
后话
去水印的效果并不好,或者还有很多值得去探究的,如果各位有好的思路,也欢迎留言。