Как убрать водяной знак фона в изображении Python
У меня есть изображение, как показано ниже,
Я хотел бы удалить фоновый водяной знак.
Пока я пытался, inpainting
метод в opencv
, Это не помогло мне.
Я попробовал следующий скрипт:
edges = cv2.Canny(img,50,150,apertureSize = 3)
dst = cv2.inpaint(img,edges,3,cv2.INPAINT_TELEA)
Я новичок в обработке изображений и opencv
, Итак, я не знаю, правильно ли я делаю или нет для выполнения рисования. Какой метод я должен сделать для удаления фоновых водяных знаков.
Я хотел бы удалить зеленый цитируемый водяной знак с моего изображения.
любая помощь будет более заметной.
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)