# Импортируем необходимые библиотеки 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()