File size: 2,058 Bytes
9567606
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8946282
 
9567606
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Импортируем необходимые библиотеки
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()