Как удалить фон водяного знака в изображении Python

У меня есть изображение, как показано ниже,

enter image description here

Я хотел бы удалить фоновый водяной знак.

До сих пор я пытался, inpainting метод opencv. Это мне не помогло.

Я попробовал следующий скрипт:

edges = cv2.Canny(img,50,150,apertureSize = 3)
dst = cv2.inpaint(img,edges,3,cv2.INPAINT_TELEA)

Я новичок в обработке изображений и opencv. Итак, я не знаю, правильно ли я делаю это или нет для выполнения inpainting. Какой метод следует использовать для удаления фоновых водяных знаков.

Я хотел бы удалить зеленый кавычек с моего изображения.

enter image description here

любая помощь будет более заметной.

Ответ 1

Текст здесь отличается от водяного знака. Вы можете играть с простым преобразованием яркости/контраста, то есть увеличивать коэффициент усиления/контраста до тех пор, пока водяной знак не исчезнет и не уменьшит яркость для компенсации.

См. Документы OpenCV для простого руководства.

Вот быстрая попытка в Python, на самом деле не использующая OpenCV потому что ему не нужно ИМХО для такого простого линейного преобразования. Играйте с параметрами alpha (контраст) и beta (яркости), пока не получите желаемый результат

import cv2
import numpy as np

img = cv2.imread("veidz.jpg")

alpha = 2.0
beta = -160

new = alpha * img + beta
new = np.clip(new, 0, 255).astype(np.uint8)

cv2.imwrite("cleaned.png", new)

removed watermark