#python #opencv #computer-vision #cv2
#python #opencv #компьютерное зрение #cv2
Вопрос:
Я пытаюсь удалить водяной знак / логотип с изображения. В настоящее время используется cv2.inpaint(img,mask, 100, cv2.INPAINT_TELEA)
функция (из opencv-contrib-python
библиотеки), и я могу удалить водяной знак с тестового изображения 1 ниже. Но тот же код не работает для тестовых изображений 2 и 3 ниже.
Текущий код:
import cv2
cv2.namedWindow("Original_Image", cv2.WINDOW_FREERATIO)
cv2.namedWindow("Result", cv2.WINDOW_FREERATIO)
img = cv2.imread('image10.jpeg')
mask = cv2.imread('99acres_mask.jpg', 0)
temp, mask = cv2.threshold(mask, 180, 255, cv2.THRESH_BINARY)
dst = cv2.inpaint(img,mask, 100, cv2.INPAINT_TELEA)
cv2.imwrite("removed_wm.png",dst)
Следующий вывод, который я получаю:
Даже я пытался изменить radius 100 в dst = cv2.inpaint(img,mask, 100, cv2.INPAINT_TELEA)
на 3, 10, 25, 30, 50 и другие значения, но ни одно из них не сработало. Также я меняю флаг INPAINT_TELEA
на ‘ INPAINT_NS
по-прежнему безуспешно.
Кто-нибудь может мне помочь удалить водяной знак и с других изображений.
Заранее спасибо.
Комментарии:
1. Она довольно хорошо работает на изображении 1. In не работает на изображении 2, возможно, потому, что алгоритм слишком упрощен для такого рода загроможденных изображений.
2. Да, это имеет смысл