用于删除水印的OpenCV

2024-10-01 07:17:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试cv2.inpaint,如果您自己添加水印,然后使用cv2.inpaint,结果是完美的

但是,如果我使用互联网图像,如下所示:

源图像

enter image description here

水印图像
enter image description here

结果很糟糕

这是密码

zhihuimage = cv2.imread('../input/zhihumask/OpenCV_11.jpg')
zhihuwatermask = cv2.imread('../input/zhihumask/OpenCV_22.jpg')
# remove watermark with mark
zhihuwatermask = cv2.cvtColor(zhihuwatermask, cv2.COLOR_BGR2GRAY)
zhihuoutput = cv2.inpaint(zhihuimage, zhihuwatermask,3, flags= cv2.INPAINT_NS)

Tags: 图像密码input互联网cv2opencvremovejpg
1条回答
网友
1楼 · 发布于 2024-10-01 07:17:38

看起来水印遮罩和图像中的水印没有对齐,您可以放大遮罩以补偿小的不对齐

使用正确删除水印的扩展代码:

zhihuimage = cv2.imread('../input/zhihumask/OpenCV_11.jpg')
zhihuwatermask = cv2.imread('../input/zhihumask/OpenCV_22.jpg',cv2.IMREAD_GRAYSCALE)
# remove watermark with mark
dilatekernel = np.ones((5, 5), 'uint8')
zhihuwatermask = cv2.dilate(zhihuwatermask, dilatekernel)
zhihuoutput = cv2.inpaint(zhihuimage, zhihuwatermask, 3, flags=cv2.INPAINT_NS)

相关问题 更多 >