利用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 相关文章推荐
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
Python不规范的日期字符串处理类
Jun 10 Python
python使用PIL缩放网络图片并保存的方法
Apr 24 Python
python实现将文本转换成语音的方法
May 28 Python
Python中基本的日期时间处理的学习教程
Oct 16 Python
python中redis的安装和使用
Dec 04 Python
Python中datetime模块参考手册
Jan 13 Python
基于Python List的赋值方法
Jun 23 Python
python tornado使用流生成图片的例子
Nov 18 Python
python隐藏类中属性的3种实现方法
Dec 19 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 Python
python分布式爬虫中消息队列知识点详解
Nov 26 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 curl的深入解析
2013/06/02 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
Angular.js之作用域scope'@','=','&'实例详解
2017/02/28 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
2019/01/24 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
pandas 选择某几列的方法
2018/07/03 Python
python 获取图片分辨率的方法
2019/01/08 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
Django之路由层的实现
2019/09/09 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
大学自主招生自荐信
2013/12/16 职场文书
实验教师岗位职责
2014/02/13 职场文书
2014年开学第一课活动方案
2014/03/06 职场文书
开学典礼决心书
2014/03/11 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
北京颐和园导游词
2015/01/30 职场文书
高三化学教学反思
2016/02/22 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
Python各协议下socket黏包问题原理
2022/04/12 Python