二十行代码去除图片水印(别再找工具修图啦)

别再找工具修图啦,用代码吧

图片上常常有多余信息,如水印等,常常困扰啦多少痴男怨女。

在简书上看到一段有意思的内容。于是将它搬啦过来。
原地址:https://www.meiwen.com.cn/subject/dofckqtx.html。

消除水印

原图和效果图:
左边为原图,右边效果图
在这里插入图片描述

代码

import cv2
import numpy as np




path="10.jpg"

img=cv2.imread(path,1)

hight,width,depth=img.shape[0:3]
#hight=img.shape[0]
#width=img.shape[1]
#depth=img.shape[2]
#图片二值化处理,把[200,200,200]-[250,250,250]以外的颜色变成0
thresh=cv2.inRange(img,np.array([200,200,200]),np.array([250,250,250]))
#创建形状和尺寸的结构元素
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()

关键点

#图片二值化处理,把[200,200,200]-[250,250,250]以外的颜色变成0
thresh=cv2.inRange(img,np.array([200,200,200]),np.array([250,250,250]))
关键在于如何选择区间,将区间外的颜色变为0。
多试几下吧。
颜色由 红黄蓝 三色组成。通道的数值为0-255. 每个通道的值越大,组合起来的颜色色块越亮。值越小越暗。。如果水印与图片其他部分有明显差距,还是可以找出来的,效果应该都还可以。

非研究CV,目前还不能给出更好的方案。
后续有想法学习下CV

如果你觉得本文对你有用,请点个赞支持下,谢谢!

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总裁余(余登武)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值