PhotographerAlpha7 commited on
Commit
501f3fa
1 Parent(s): 6415ad5

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -0
app.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import cv2
2
+ import numpy as np
3
+ import gradio as gr
4
+
5
+ def create_edge_map(image, scale_value):
6
+ # Convertir l'image en niveaux de gris si ce n'est pas déjà le cas
7
+ if len(image.shape) > 2 and image.shape[2] == 3:
8
+ gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
9
+ else:
10
+ gray = image # L'image est déjà en niveaux de gris
11
+
12
+ # Appliquer un flou gaussien pour réduire le bruit
13
+ blurred = cv2.GaussianBlur(gray, (5, 5), 0)
14
+
15
+ # Calculer le gradient horizontal
16
+ gradient_x = cv2.Sobel(blurred, cv2.CV_64F, 1, 0, ksize=5)
17
+
18
+ # Calculer le gradient vertical
19
+ gradient_y = cv2.Sobel(blurred, cv2.CV_64F, 0, 1, ksize=5)
20
+
21
+ # Calculer la magnitude du gradient
22
+ magnitude = np.sqrt(gradient_x**2 + gradient_y**2)
23
+
24
+ # Normaliser la magnitude pour une meilleure visualisation
25
+ edge_map = cv2.normalize(magnitude, None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U)
26
+
27
+ # Ajouter un ajustement basé sur le paramètre scale_value
28
+ edge_map = cv2.addWeighted(edge_map, scale_value, np.zeros_like(edge_map), 0, 0)
29
+
30
+ return edge_map
31
+
32
+ # Fonction Gradio pour générer la carte de profondeur
33
+ def edge_map_function(image, scale_value):
34
+ # Convertir l'image PIL en numpy array
35
+ image_np = np.array(image)
36
+
37
+ # Générer la carte de profondeur
38
+ edge_map = create_edge_map(image_np, scale_value)
39
+
40
+ # Retourner l'image résultante
41
+ return edge_map
42
+
43
+ # Créer une interface Gradio pour tester la fonction edge_map_function
44
+ inputs = [
45
+ gr.inputs.Image(label="Upload Image"), # Utilisation de l'entrée d'image par défaut
46
+ gr.inputs.Slider(minimum=1, maximum=10, default=1, label="Edges Scale")
47
+ ]
48
+
49
+ output = gr.outputs.Image(label="Edges Map") # Utilisation de la sortie d'image par défaut
50
+
51
+ # Créer une interface Gradio
52
+ gr.Interface(fn=edge_map_function, inputs=inputs, outputs=output, title="Edges Generator").launch()