我正在嘗試cv2.inpaint,如果您自己添加水印,然后使用cv2.inpaint,結果是完美的。
但是,如果我使用如下所示的互聯網影像:
源影像

水印圖片

結果很糟糕。
這是代碼
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)
uj5u.com熱心網友回復:
似乎水印蒙版和影像中的水印沒有對齊,您可以擴大蒙版以補償小的錯位。
使用 dilate 正確去除水印的代碼:
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/315312.html
