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

原图: 

Python实现处理图片水印的方法详解_第1张图片

去水印后:

Python实现处理图片水印的方法详解_第2张图片

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

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

Python实现处理图片水印的方法详解_第3张图片

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

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

Python实现处理图片水印的方法详解_第4张图片

背景HSV值为

Python实现处理图片水印的方法详解_第5张图片

黑色正文部分HSV值为

Python实现处理图片水印的方法详解_第6张图片

于是: 

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实现处理图片水印的方法详解_第7张图片

源代码:

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)

到此这篇关于Python实现处理图片水印的方法详解的文章就介绍到这了,更多相关Python处理图片水印内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(Python实现处理图片水印的方法详解)