Spaces:
Running
Running
# Импортируем необходимые библиотеки | |
import gradio as gr | |
import cv2 | |
import numpy as np | |
# Определяем функцию, которая удаляет watermark с изображения | |
def remove_watermark(image): | |
# Преобразуем изображение в серый цвет | |
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) | |
# Применяем медианный фильтр для сглаживания шума | |
gray = cv2.medianBlur(gray, 5) | |
# Находим границы водяного знака с помощью алгоритма Canny | |
edges = cv2.Canny(gray, 50, 150) | |
# Находим контуры водяного знака с помощью алгоритма findContours | |
contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) | |
# Создаем маску для водяного знака с помощью алгоритма drawContours | |
mask = np.zeros_like(gray) | |
cv2.drawContours(mask, contours, -1, 255, -1) | |
# Применяем инпейнтинг для заполнения водяного знака цветом фона с помощью алгоритма inpaint | |
result = cv2.inpaint(image, mask, 3, cv2.INPAINT_TELEA) | |
# Возвращаем результат | |
return result | |
# Создаем интерфейс Gradio с помощью библиотеки gradio | |
iface = gr.Interface( | |
fn=remove_watermark, # Указываем функцию, которая будет обрабатывать изображение | |
inputs=gr.Image(), # Указываем тип входного параметра - изображение | |
outputs=gr.Image(), # Указываем тип выходного параметра - изображение | |
title="RWOI", # Указываем заголовок приложения | |
description="This app removes watermark from images using OpenCV." # Указываем описание приложения | |
) | |
# Запускаем приложение | |
iface.launch() | |