Пытаюсь удалить водяной знак с изображений методом opencv inpaint
, мне удалось использовать match pattern
для обозначения позиции водяного знака, но я не уверен, как использовать метод inpaint для его удаления.
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
img_rgb = cv.imread('img.jpg')
img_gray = cv.cvtColor(img_rgb, cv.COLOR_BGR2GRAY)
template = cv.imread('mask.png', 1)
(thresh, template) = cv.threshold(template, 127, 255, cv.THRESH_BINARY)
template = cv.cvtColor(template, cv.COLOR_BGR2GRAY)
w, h = template.shape[::-1]
res = cv.matchTemplate(img_gray, template, cv.TM_CCOEFF_NORMED)
threshold = 0.25
loc = np.where(res >= threshold)
# Draw marked rectangle
for pt in zip(*loc[::-1]):
cv.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2)