OpenCV去除水印

0 投票
1 回答
50 浏览
提问于 2025-04-14 17:18

我想去掉这个水印,我试了很多方法,但都没成功,有什么好主意吗?这是我的代码:

if __name__ == '__main__':

    img = cv2.imread("doc.jpg")
    cv2.imshow("Image With Water Mark", img)

    img1 = cv2.imread("doc.jpg")
    _, thresh = cv2.threshold(img1, 150, 255, cv2.THRESH_BINARY)
    #cv2.imshow('Image Without Water Mark', thresh)
    cv2.imshow('Image Without Water Mark', thresh)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

在这里输入图片描述

这是结果:

在这里输入图片描述

有没有什么解决这个问题的想法?

1 个回答

3

这个方法效果还不错。不过可能还需要进一步的平滑处理。文本基本上都是黑白的,但水印是灰色的。所以,要把所有黑色度低于60%的部分变成白色。

from PIL import Image

x = Image.open('vodRX.jpg')
x1 = x.convert('L')
x2 = x1.point( lambda p: (p > 100) * 255 )
x2.save('after.jpg')

不过,要注意你这样做可能是违法的。他们加水印是有原因的。

撰写回答