python 实现图片修复(可用于去水印)


Posted in Python onNovember 19, 2020

在现实的生活中,我们可能会遇到一些美好的或是珍贵的图片被噪声干扰,比如旧照片的折痕,比如镜头上的灰尘或污渍,更或者是某些我们想为我所用但有讨厌水印,那么有没有一种办法可以消除这些噪声呢?

答案是肯定的,依然是被我们用了无数次的OpenCV这款优秀的框架。

效果预览

python 实现图片修复(可用于去水印)

图片修复原理

那OpenCV究竟是怎么实现的,简单的来说就是开发者标定噪声的特征,在使用噪声周围的颜色特征推理出应该修复的图片的颜色,从而实现图片修复的。

程序实现解析

  • 标定噪声的特征,使用cv2.inRange二值化标识噪声对图片进行二值化处理,具体代码:cv2.inRange(img, np.array([240, 240, 240]), np.array([255, 255, 255])),把[240, 240, 240]~[255, 255, 255]以外的颜色处理为0;
  • 使用OpenCV的dilate方法,扩展特征的区域,优化图片处理效果;
  • 使用inpaint方法,把噪声的mask作为参数,推理并修复图片;

完整代码

#coding=utf-8
#图片修复

import cv2
import numpy as np

path = "img/inpaint.png"

img = cv2.imread(path)
hight, width, depth = img.shape[0:3]

#图片二值化处理,把[240, 240, 240]~[255, 255, 255]以外的颜色变成0
thresh = cv2.inRange(img, np.array([240, 240, 240]), np.array([255, 255, 255]))

#创建形状和尺寸的结构元素
kernel = np.ones((3, 3), np.uint8)

#扩张待修复区域
hi_mask = cv2.dilate(thresh, kernel, iterations=1)
specular = cv2.inpaint(img, hi_mask, 5, flags=cv2.INPAINT_TELEA)

cv2.namedWindow("Image", 0)
cv2.resizeWindow("Image", int(width / 2), int(hight / 2))
cv2.imshow("Image", img)

cv2.namedWindow("newImage", 0)
cv2.resizeWindow("newImage", int(width / 2), int(hight / 2))
cv2.imshow("newImage", specular)
cv2.waitKey(0)
cv2.destroyAllWindows()

以上就是python 实现图片修复(可用于去水印)的详细内容,更多关于python 图片修复的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python实现在无须过多援引的情况下创建字典的方法
Sep 25 Python
Python中用pycurl监控http响应时间脚本分享
Feb 02 Python
python正常时间和unix时间戳相互转换的方法
Apr 23 Python
python使用urllib2实现发送带cookie的请求
Apr 28 Python
python提取页面内url列表的方法
May 25 Python
tensorflow建立一个简单的神经网络的方法
Feb 10 Python
Python中new方法的详解
Jan 15 Python
解决Mac下使用python的坑
Aug 13 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 Python
Python request post上传文件常见要点
Nov 20 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
如何利用opencv判断两张图片是否相同详解
Jul 07 Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 #Python
Python并发爬虫常用实现方法解析
Nov 19 #Python
python实现文件分片上传的接口自动化
Nov 19 #Python
Python类class参数self原理解析
Nov 19 #Python
Python爬虫如何破解JS加密的Cookie
Nov 19 #Python
python制作一个简单的gui 数据库查询界面
Nov 19 #Python
解决python3中os.popen()出错的问题
Nov 19 #Python
You might like
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
js跨域访问示例(客户端/服务端)
2014/05/19 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python数据结构之Array用法实例
2014/10/09 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
八大排序算法的Python实现
2021/01/28 Python
Python使用QQ邮箱发送Email的方法实例
2017/02/09 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
安全标准化汇报材料
2014/02/03 职场文书
环境整治工作方案
2014/05/18 职场文书
师德师风整改措施
2014/10/24 职场文书
2014年工人工作总结
2014/11/25 职场文书
校运会新闻稿
2015/07/17 职场文书
外出培训学习心得体会
2016/01/18 职场文书
自荐信大全
2019/03/21 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python