原图: 

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)
原文地址:https://blog.csdn.net/weixin_49828565/article/details/127631719

相关文章:

  • 2021-05-12
  • 2022-12-23
  • 2021-12-30
  • 2022-02-09
  • 2022-12-23
  • 2022-12-23
  • 2021-05-11
  • 2022-12-23
猜你喜欢
  • 2023-01-06
  • 2023-02-06
  • 2022-12-23
  • 2022-12-23
  • 2023-03-21
相关资源
相似解决方案