利用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之有容乃大的list(3)
Sep 15 Python
django model去掉unique_together报错的解决方案
Oct 18 Python
浅谈Python生成器generator之next和send的运行流程(详解)
May 08 Python
对IPython交互模式下的退出方法详解
Feb 16 Python
python3.7简单的爬虫实例详解
Jul 08 Python
python 叠加等边三角形的绘制的实现
Aug 14 Python
django中上传图片分页三级联动效果的实现代码
Aug 30 Python
Python面向对象封装操作案例详解
Dec 31 Python
Python3打包exe代码2种方法实例解析
Feb 17 Python
解决ROC曲线画出来只有一个点的问题
Feb 28 Python
在主流系统之上安装Pygame的方法
May 20 Python
什么是Python中的匿名函数
Jun 02 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中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
js快速排序的实现代码
2013/12/08 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
2017/02/18 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
Python易忽视知识点小结
2015/05/25 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Python实现线程池代码分享
2015/06/21 Python
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
详解Python 函数如何重载?
2019/04/23 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
医学护理系毕业生求职信
2013/10/01 职场文书
求职意向书
2014/04/01 职场文书
运动会标语
2014/06/21 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
毕业设计致谢词
2015/05/14 职场文书
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python