利用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 10 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
python调用自定义函数的实例操作
Jun 26 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
mac使用python识别图形验证码功能
Jan 10 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
使用Keras训练好的.h5模型来测试一个实例
Jul 06 Python
利用python实现汉诺塔游戏
Mar 01 Python
python神经网络ResNet50模型
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
国王的咖啡这么大来头,名字的由来是什么
2021/03/03 咖啡文化
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
thinkphp实现数组分页示例
2014/04/13 PHP
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
Jquery练习之表单验证实现代码
2010/12/14 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
js实现照片墙功能实例
2015/02/05 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
js实现下一页页码效果
2017/03/07 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
Python实现豆瓣图片下载的方法
2015/05/25 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
如何用python处理excel表格
2020/06/09 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
大学生的创业计划书就该这么写
2014/01/30 职场文书
实习公司领导推荐函
2014/05/21 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书
个人工作总结范文2014
2014/11/07 职场文书
公司慰问信范文
2015/03/23 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
MySQL三种方式实现递归查询
2022/04/18 MySQL
Python面试不修改数组找出重复的数字
2022/05/20 Python