利用Python+OpenCV三步去除水印


Posted in Python onMay 28, 2021

一、推理原理

1.标定噪声的特征,使用cv2.inRange二值化标识噪声对图片进行二值化处理,具体代码:cv2.inRange(img, np.array([200, 200, 240]), np.array([255, 255, 255])),把[200, 200, 200]~[255, 255, 255]以外的颜色处理为0

2.使用OpenCV的dilate方法,扩展特征的区域,优化图片处理效果

3.使用inpaint方法,把噪声的mask作为参数,推理并修复图片

二、推理步骤

1.从源图片,截取右下角部分,另存为新图片

2.识别水印,颜色值为:[200, 200, 200]~[255, 255, 255]

3.去掉水印,还原图片

4.把源图片、去掉水印的新图片,进行重叠合并

三、参考代码

import cv2
import numpy as np
from PIL import Image
import os
​
dir = os.getcwd()
path = "1.jpg"
newPath = "new.jpg"
img=cv2.imread(path,1)
hight,width,depth=img.shape[0:3]
​
#截取
cropped = img[int(hight*0.8):hight, int(width*0.7):width]  # 裁剪坐标为[y0:y1, x0:x1]
cv2.imwrite(newPath, cropped)
imgSY = cv2.imread(newPath,1)
​
#图片二值化处理,把[200,200,200]-[250,250,250]以外的颜色变成0
thresh = cv2.inRange(imgSY,np.array([200,200,200]),np.array([250,250,250]))
#创建形状和尺寸的结构元素
kernel = np.ones((3,3),np.uint8)
#扩展待修复区域
hi_mask = cv2.dilate(thresh,kernel,iterations=10)
specular = cv2.inpaint(imgSY,hi_mask,5,flags=cv2.INPAINT_TELEA)
cv2.imwrite(newPath, specular)
​
#覆盖图片
imgSY = Image.open(newPath)
img = Image.open(path)
img.paste(imgSY, (int(width*0.7),int(hight*0.8),width,hight))
img.save(newPath)

import cv2
import numpy as np
from PIL import Image
import os
​
dir = os.getcwd()
path = "1.jpg"
newPath = "new.jpg"
img=cv2.imread(path,1)
hight,width,depth=img.shape[0:3]
​
#截取
cropped = img[int(hight*0.8):hight, int(width*0.7):width]  # 裁剪坐标为[y0:y1, x0:x1]
cv2.imwrite(newPath, cropped)
imgSY = cv2.imread(newPath,1)
​
#图片二值化处理,把[200,200,200]-[250,250,250]以外的颜色变成0
thresh = cv2.inRange(imgSY,np.array([200,200,200]),np.array([250,250,250]))
#创建形状和尺寸的结构元素
kernel = np.ones((3,3),np.uint8)
#扩展待修复区域
hi_mask = cv2.dilate(thresh,kernel,iterations=10)
specular = cv2.inpaint(imgSY,hi_mask,5,flags=cv2.INPAINT_TELEA)
cv2.imwrite(newPath, specular)
​
#覆盖图片
imgSY = Image.open(newPath)
img = Image.open(path)
img.paste(imgSY, (int(width*0.7),int(hight*0.8),width,hight))
img.save(newPath)

四、效果图

没去水印前:

利用Python+OpenCV三步去除水印

去了后:

利用Python+OpenCV三步去除水印

到此这篇关于利用Python+OpenCV三步去除水印的文章就介绍到这了,更多相关Python+OpenCV去水印内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python命名空间详解
Aug 18 Python
Python2.x版本中基本的中文编码问题解决
Oct 12 Python
Python中对象迭代与反迭代的技巧总结
Sep 17 Python
Python基于dom操作xml数据的方法示例
May 12 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
一篇文章搞定Python操作文件与目录
Aug 13 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
Feb 03 Python
使用tensorflow实现矩阵分解方式
Feb 07 Python
python实现AHP算法的方法实例(层次分析法)
Sep 09 Python
详解anaconda安装步骤
Nov 23 Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 Python
python实现自定义日志的具体方法
May 28 #Python
python 爬取京东指定商品评论并进行情感分析
python b站视频下载的五种版本
May 27 #Python
教你怎么用python selenium实现自动化测试
Python Django框架介绍之模板标签及模板的继承
May 27 #Python
python 算法题——快乐数的多种解法
May 27 #Python
用Python监控你的朋友都在浏览哪些网站?
You might like
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
php面向对象值单例模式
2016/05/03 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
jquery 指南/入门基础
2007/11/30 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
js时间控件只显示年月
2017/01/08 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
Python图像灰度变换及图像数组操作
2016/01/27 Python
Python注释详解
2016/06/01 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
Django单元测试工具test client使用详解
2019/08/02 Python
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
打架检讨书100字
2014/01/08 职场文书
大学生志愿者感言
2014/01/15 职场文书
大学军训感言300字
2014/03/09 职场文书
公司委托书格式范文
2014/04/04 职场文书
说明书怎么写
2014/05/06 职场文书
锦旗赠语
2015/06/23 职场文书
运动会广播稿50字
2015/08/19 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
医学会议开幕词
2016/03/03 职场文书