利用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的设计模式编程
Mar 01 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
tensorflow 使用flags定义命令行参数的方法
Apr 23 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
Jun 26 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 Python
Python笔试面试题小结
Sep 07 Python
Python tkinter模版代码实例
Feb 05 Python
Tensorflow:转置函数 transpose的使用详解
Feb 11 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
python将下载到本地m3u8视频合成MP4的代码详解
Nov 24 Python
如何查看python关键字
Jan 17 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 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 URL地址获取函数代码(端口等) 推荐
2010/05/15 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
prototype Element学习笔记(篇一)
2008/10/26 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
浅析node.js中close事件
2014/11/26 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
2015/12/25 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
python获取Linux发行版名称
2019/08/30 Python
基于Python解密仿射密码
2019/10/21 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
中式面点餐厅创业计划书
2014/01/29 职场文书
文化活动实施方案
2014/03/28 职场文书
公民授权委托书范本
2014/09/17 职场文书
2014年销售员工作总结
2014/12/01 职场文书
安全教育第一课观后感
2015/06/17 职场文书
中秋节随笔
2015/08/15 职场文书