Spaces:
Runtime error
Runtime error
| import cv2 | |
| import numpy as np | |
| import gradio as gr | |
| def create_edge_map(image, scale_value): | |
| # Convertir l'image en niveaux de gris si ce n'est pas déjà le cas | |
| if len(image.shape) > 2 and image.shape[2] == 3: | |
| gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) | |
| else: | |
| gray = image # L'image est déjà en niveaux de gris | |
| # Appliquer un flou gaussien pour réduire le bruit | |
| blurred = cv2.GaussianBlur(gray, (5, 5), 0) | |
| # Calculer le gradient horizontal | |
| gradient_x = cv2.Sobel(blurred, cv2.CV_64F, 1, 0, ksize=5) | |
| # Calculer le gradient vertical | |
| gradient_y = cv2.Sobel(blurred, cv2.CV_64F, 0, 1, ksize=5) | |
| # Calculer la magnitude du gradient | |
| magnitude = np.sqrt(gradient_x**2 + gradient_y**2) | |
| # Normaliser la magnitude pour une meilleure visualisation | |
| edge_map = cv2.normalize(magnitude, None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U) | |
| # Ajouter un ajustement basé sur le paramètre scale_value | |
| edge_map = cv2.addWeighted(edge_map, scale_value, np.zeros_like(edge_map), 0, 0) | |
| return edge_map | |
| # Fonction Gradio pour générer la carte de profondeur | |
| def edge_map_function(image, scale_value): | |
| # Convertir l'image PIL en numpy array | |
| image_np = np.array(image) | |
| # Générer la carte de profondeur | |
| edge_map = create_edge_map(image_np, scale_value) | |
| # Retourner l'image résultante | |
| return edge_map | |
| # Créer une interface Gradio pour tester la fonction edge_map_function | |
| inputs = [ | |
| gr.Image(label="Upload Image"), # Utilisation de l'entrée d'image par défaut | |
| gr.Slider(minimum=1, maximum=5, label="Edges Scale") | |
| ] | |
| output = gr.Image(label="Edges Map") # Utilisation de la sortie d'image par défaut | |
| # Créer une interface Gradio | |
| gr.Interface(fn=edge_map_function, inputs=inputs, outputs=output, title="Edges Generator").launch() | |