利用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中os和shutil模块实用方法集锦
May 13 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
May 15 Python
浅谈利用numpy对矩阵进行归一化处理的方法
Jul 11 Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 Python
学生信息管理系统python版
Oct 17 Python
python面向对象实现名片管理系统文件版
Apr 26 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
基于python修改srt字幕的时间轴
Feb 03 Python
python爬虫实例之获取动漫截图
May 31 Python
Linux系统下升级pip的完整步骤
Jan 31 Python
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
Apr 24 Python
用Python爬虫破解滑动验证码的案例解析
May 06 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
使用php重新实现PHP脚本引擎内置函数
2007/03/06 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
老生常谈JavaScript 函数表达式
2016/09/01 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
了解JavaScript中let语句
2019/05/30 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
详解JavaScript中的this指向问题
2021/02/05 Javascript
Python 循环终止语句的三种方法小结
2019/06/24 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
使用python从三个角度解决josephus问题的方法
2020/03/27 Python
python 异步async库的使用说明
2020/05/04 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
Pyqt助手安装PyQt5帮助文档过程图解
2020/11/20 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
教师自我反思材料
2014/02/14 职场文书
有创意的广告词
2014/03/18 职场文书
生态养殖创业计划书
2014/05/06 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
个人党性分析总结
2015/03/05 职场文书
简历中自我评价范文
2015/03/11 职场文书
用JS写一个发布订阅模式
2021/11/07 Javascript
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js