利用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查询阿里巴巴关键字排名的方法
Jul 08 Python
基于Python实现文件大小输出
Jan 11 Python
Pycharm远程调试openstack的方法
Nov 21 Python
PyTorch线性回归和逻辑回归实战示例
May 22 Python
Python中.join()和os.path.join()两个函数的用法详解
Jun 11 Python
python实现写数字文件名的递增保存文件方法
Oct 25 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
将python安装信息加入注册表的示例
Nov 20 Python
Python绘图实现显示中文
Dec 04 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 Python
Python 虚拟环境工作原理解析
Dec 24 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 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中输出转义JavaScript代码的实现代码
2011/04/22 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
javascript事件模型代码
2007/07/01 Javascript
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
JS前端笔试题分析
2016/12/19 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
python logging类库使用例子
2014/11/22 Python
Python编程中的文件操作攻略
2015/10/16 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
python列表,字典,元组简单用法示例
2019/07/11 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
Python中six模块基础用法
2019/12/08 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
白色公司:The White Company
2017/10/11 全球购物
大专毕业生自我鉴定
2013/11/21 职场文书
人事经理岗位职责
2014/04/28 职场文书
三好学生事迹材料
2014/12/24 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python
Python MNIST手写体识别详解与试练
2021/11/07 Python
Python socket如何解析HTTP请求内容
2022/02/12 Python