ehristoforu commited on
Commit
9567606
·
1 Parent(s): ef891b9

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -0
app.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Импортируем необходимые библиотеки
2
+ import gradio as gr
3
+ import cv2
4
+ import numpy as np
5
+
6
+ # Определяем функцию, которая удаляет watermark с изображения
7
+ def remove_watermark(image):
8
+ # Преобразуем изображение в серый цвет
9
+ gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
10
+ # Применяем медианный фильтр для сглаживания шума
11
+ gray = cv2.medianBlur(gray, 5)
12
+ # Находим границы водяного знака с помощью алгоритма Canny
13
+ edges = cv2.Canny(gray, 50, 150)
14
+ # Находим контуры водяного знака с помощью алгоритма findContours
15
+ contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
16
+ # Создаем маску для водяного знака с помощью алгоритма drawContours
17
+ mask = np.zeros_like(gray)
18
+ cv2.drawContours(mask, contours, -1, 255, -1)
19
+ # Применяем инпейнтинг для заполнения водяного знака цветом фона с помощью алгоритма inpaint
20
+ result = cv2.inpaint(image, mask, 3, cv2.INPAINT_TELEA)
21
+ # Возвращаем результат
22
+ return result
23
+
24
+ # Создаем интерфейс Gradio с помощью библиотеки gradio
25
+ iface = gr.Interface(
26
+ fn=remove_watermark, # Указываем функцию, которая будет обрабатывать изображение
27
+ inputs=gr.inputs.Image(), # Указываем тип входного параметра - изображение
28
+ outputs=gr.outputs.Image(), # Указываем тип выходного параметра - изображение
29
+ title="RWOI", # Указываем заголовок приложения
30
+ description="This app removes watermark from images using OpenCV." # Указываем описание приложения
31
+ )
32
+
33
+ # Запускаем приложение
34
+ iface.launch()