Python实现处理图片水印的方法详解

原图: 

Python实现处理图片水印的方法详解

去水印后:

Python实现处理图片水印的方法详解

程序非常简单,首先读取图片后,转为HSV通道图像。

image = cv2.imread(\"watermark.png\")
 
HSV = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

Python实现处理图片水印的方法详解

参考文末补充内容获取水印处的HSV值的范围

我这张图片的水印HSV值大概范围是

Python实现处理图片水印的方法详解

背景HSV值为

Python实现处理图片水印的方法详解

黑色正文部分HSV值为

Python实现处理图片水印的方法详解

于是: 

mask = cv2.inRange(HSV, (0, 0, 195), (0, 0, 255))
cv2.imshow(\"mask\", mask)

结束!!

处理后文字有点锯齿状,试了图像增强矫正和图像平滑处理效果都不明显(原图有些模糊也是原因之一)

如果有好的方法,麻烦教一教我!谢谢!

完整代码

import cv2
 
image = cv2.imread(r\"watermark.png\")
 
HSV = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# cv2.imshow(\"HSV\", HSV)
 
mask = cv2.inRange(HSV, (0, 0, 195), (0, 0, 255))
cv2.imshow(\"mask\", mask)
 
cv2.imwrite(\'watermark-result.png\', mask)
cv2.waitKey(0)

补充

用python和opencv定义鼠标点击事件获取图片各个位置的HSV值(附代码)

效果如下,鼠标左键点击图片中任意位置显示该点的HSV值。

Python实现处理图片水印的方法详解

源代码:

import cv2
 
# 读取图片
image = cv2.imread(r\"./images/screenshot/target_open.jpg\")
 
# 转为HSV图
HSV = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
 
# 定义一个鼠标左键按下去的事件
def getpos(event, x, y, flags, param):
    if event == cv2.EVENT_LBUTTONDOWN:
        print(HSV[y, x])
 
# cv2.imshow(\'image\', image)
cv2.imshow(\"imageHSV\", HSV)
 
cv2.setMouseCallback(\"imageHSV\", getpos)
cv2.waitKey(0)
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容