image-upscaler / app.py
ehristoforu's picture
Update app.py
8946282
raw
history blame
2.06 kB
# Импортируем необходимые библиотеки
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()