利用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+mysql实现简单的web程序
Sep 11 Python
python实现人脸识别代码
Nov 08 Python
python的scikit-learn将特征转成one-hot特征的方法
Jul 10 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
python实现简易淘宝购物
Nov 22 Python
PyTorch中topk函数的用法详解
Jan 02 Python
python 在sql语句中使用%s,%d,%f说明
Jun 06 Python
python简单实现插入排序实例代码
Dec 16 Python
python爬虫之爬取笔趣阁小说
Apr 22 Python
Python 装饰器(decorator)常用的创建方式及解析
Apr 24 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+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
JavaScript引用类型RegExp基本用法详解
2018/08/09 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
跟老齐学Python之折腾一下目录
2014/10/24 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
PyCharm 设置SciView工具窗口的方法
2019/01/15 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
pytorch 共享参数的示例
2019/08/17 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
Python 实现微信自动回复的方法
2020/09/11 Python
倩碧英国官网:Clinique英国
2018/08/10 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
大学生求职自荐信
2013/12/12 职场文书
关于期中考试的反思
2014/02/02 职场文书
yy婚礼主持词
2014/03/14 职场文书
慰问信范文
2015/02/14 职场文书
企业团队精神心得体会
2016/01/19 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
MySQL学习之基础命令实操总结
2022/03/19 MySQL
详解Vue3使用axios的配置教程
2022/04/29 Vue.js