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.inputs.Image(label="Upload Image"), # Utilisation de l'entrée d'image par défaut | |
gr.inputs.Slider(minimum=1, maximum=10, default=1, label="Edges Scale") | |
] | |
output = gr.outputs.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() | |