原图: 去水印后: 程序非常简单,首先读取图片后,转为HSV通道图像。 image = cv2.imread("watermark.png") HSV = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) 参考文末补充内容获取水印处的HSV值的范围 我这张
原图:
去水印后:
程序非常简单,首先读取图片后,转为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处理图片水印内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!