图片去水印的思路
- 准备一张有水印的图片
- 用绘画工具在有水印的图片上框出水印位置
- 利用findContours函数查找水印所在的位置
- 初始化一个与原图像大小相同的0矩阵
- 将获取到的水印图片定位到初始化的矩阵中
- 利用inpaint函数进行水印的去除
详细步骤
准备一张带有水印的图片,命名为watermark.png

将水印部分用绘图工具框出来,并名为reference.png

读取模板图片转换为灰度图,并记录图片的大小
# 读取模板图像
image = cv2.imread("reference.png")
image_gary = cv2.cvtColor(image, cv2.COLOR_BGRA2GRAY) # 转换成灰度图
print(image.shape) # (255, 386, 3)
初始化一个与原图像大小相同的矩阵
temp = np.zeros((255,386))
temp = temp.astype(np.uint8)

查找模板中标记水印的位置,记录水印的位置和大小
ret,thresh = cv2.threshold(image_gary, 250, 255, cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(thresh, 2, 1)
cnt=contours[0]
x, y, w, h = cv2.boundingRect(cnt)
img = cv2.rectangle

本文详细介绍了一种基于计算机视觉的图片去水印方法,包括选取有水印的图片,定位水印区域,利用findContours函数查找水印位置,初始化矩阵,通过inpaint函数去除水印,展示了从定位水印到去除水印的全过程。
最低0.47元/天 解锁文章
1799





