【原创】python + OpenCV去除简单水印

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-8-16

代码讲解 + 原理分析 + 带你算一遍[茶杯]

[礼物]代码见【图一】,我也开源到gitee啦,白嫖直接见文末

[灯泡]快速过一遍原理,后面细讲:
获取水印颜色,获取背景颜色,将水印的颜色替换为背景颜色,怎么样,至少原理还是很简单吧[滑稽],不要觉得原理是触不可及的高深内容(虽然实现起来稍微花点时间就是了)

主要是怕你们都嫌麻烦直接划走了(/_\),先讲讲简单的原理,留住一点人(卑微),之前的帖子都没几个人回复,估计大部分是点进来划一下就走了~

[灯泡]目前只做了去除简单灰色水印(且主题文字为黑色),咱这个思路只适合最【简单的水印】去除,复杂的建议还是用ps自己慢慢用图章工具抹吧

[灯泡]稍有门槛,前置知识:
线性回归,python,Numpy,OpenCV,rgb基础认知

但我会尽量用基础的表达来阐述整个过程[玫瑰],同时,涉及到的知识点我也会用【[灯泡]】符号强调

其实蛮早以前就实现过去水印,那个时候参数都是参考别人训练好的数据,这次重新自己实现了一次,感觉还是蛮有收获的(对于业余爱好者来讲)

[彩虹]那么开始正文

应该都见过【图二】这种水印吧,灰色稍透明点,本文主要针对这种水印,还有嗷,图片去水印目前还没有实现,最好不要轻易尝试,会破坏原有颜色

[灯泡]【rgb颜色表示法】
r即red红,g即green绿,b即blue蓝,这种颜色表示法中rgb为三原色,其余颜色均为这三者混合而来

由于一个色块大小为8bit,所以按十进制来算,它的取值范围是0-255【重点】,值越小越亮,越大越暗,比如rgb(255,0,0),由于r红的位置为255最亮,所以整体呈红色,那么同理rgb(0,255,0),g位置255,为绿

(0,0,0)即三个颜色亮度都最低,自然就是黑色,相反(255,255,255)就是白色了

[灯泡]【颜色获取】
那么如何获取颜色呢?比较简单的方式是找个截图软件拾取(qq自带,ctrl + alt +a,质量一般,我更喜欢snipaste)【图三】,背景肯定是纯白了,然后再获取文字颜色(这步是为了防止文字变色过多)

[灯泡]【线性回归计算】(重点)
[玫瑰]不要看到数学就怕,认真思考,具备初中到高中的数学水平一般就能看懂啦,我直接上图手算了(只选了6个点)【图四】

首先我们需要黑色的采样(文字颜色),然后是水印采样和背景采样,我分别选了六个点,我们的目的很简单,就是把水印色替换为背景色,并且尽量保证文字颜色变化不大

现在可以开始列线性回归方程了【图五】,这个是很简单的线性回归,直接带点然后套公式就行了,比较复杂的用计算机或者py就行了【图六】,最终得到如【图七】公式

[灯泡]将公式交给Numpy计算【图一】
(可能选的点少了点,精度不够,我又自行调了下参数,最终按图一给出的数值即可)

n.clip是负责限制值域的函数,第一个参数是列表,剩下为最小值和最大值

如n.clip([0,1,2,3,4], 1, 3),最终会得到[1,1,2,3,3](超过部分设置为最大值),前文也说了颜色最大值为255,这么做是为了保证不超量

最终效果见【图九】

(好像一次只能用15个表情。。)
[彩虹]那么本文就到此为止啦(●'◡'●)

[礼物]gitee开源地址:

本帖含有隐藏内容,请您 回复 后查看


有疑问可以在评论区留言[玫瑰]

[彩虹]pluie
[彩虹]2022-08-16

51楼
星彡星 2022-8-20
管他呢,先关注再说,期待后面更优秀的教程[哈哈]
52楼
Pluie 2022-8-20
[玫瑰]感谢支持,接下来会继续做原创教程(开发为主),有兴趣的内容也欢迎评论区留言
53楼
成城CC 2022-8-21
去水印现在一个夸克不就搞定了吗
54楼
Pluie 2022-8-21
你的重心找错了哟,别说夸克,去水印软件市面上一抓一大把,微信小程序不是也很方便

所以这篇帖子本身的主要目的就不是提供工具,而是自己实现一遍,别人的永远是别人的,学会了才是自己的
55楼
看啥贼 2022-8-21
那可以去马赛克吗[滑稽]
56楼
Pluie 2022-8-21
马赛克本质不是遮挡,而是像素点的破坏,去除是没办法的,但是可以【修复】

现阶段AI能实现根据周围像素补全整张图片,但一般只限于人脸这些精度低的,如果一段文字给马赛克遮了那很难恢复,也就是说无法完整还原原图,但是可以做到大致相似

不过这就比较复杂了,我只是学着玩,没研究那么深入
好复杂的样子[滑稽]
58楼
Pluie 2022-8-22
[玫瑰]这个还行吧,基础知识到位是能看懂的,如果零基础是会有些吃力
59楼
看啥贼 2022-8-22
噢~~~~~
嚯嚯,没仔细看,cv这块了解的不多,我搞nlp[呵呵]

评论

登录后才可发表内容
  • 主题

    18

  • 帖子

    426

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0620s Mem:2167Kb