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

2170 0
黑夜隐士 2022-11-9 20:48:02 | 显示全部楼层 |阅读模式
原图:


去水印后:


程序非常简单,首先读取图片后,转为HSV通道图像。
image = cv2.imread("watermark.png")

HSV = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)


参考文末补充内容获取水印处的HSV值的范围
我这张图片的水印HSV值大概范围是


背景HSV值为


黑色正文部分HSV值为


于是:
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值。


源代码:
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处理图片水印内容请搜索中国红客联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持中国红客联盟!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行