Silueta / app.py
tomaseo2022's picture
Update app.py
2c288c9
raw
history blame
1.39 kB
import os
os.system("pip install opencv-python")
os.system("pip install gradio --upgrade")
import gradio as gr
import cv2
import numpy as np
def image_to_silhouette_contours(image):
try:
print("Original image type:", type(image))
print("Original image shape:", image.shape)
# Convertir imagen a escala de grises
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
print("Gray image shape:", gray.shape)
# Aplicar bordes
edges = cv2.Canny(gray, 50, 150)
print("Edges image shape:", edges.shape)
# busca los contornos de los objetos en la imagen
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# Crear una imagen negra para dibujar los contornos
silhouette = np.zeros((image.shape[0], image.shape[1], 3), dtype=np.uint8)
# Dibuja los contornos en la imagen negra
cv2.drawContours(silhouette, contours, -1, (255, 255, 255), 1)
print("Silhouette image shape:", silhouette.shape)
return silhouette
except Exception as e:
print("An error occurred:", e)
return "Error"
# Crear interfaz de usuario con Gradio
gr.Interface(
image_to_silhouette,
gr.inputs.Image(type="filepath", label="Input"),
gr.outputs.Image(type="pil", label="Output"),
css="Footer {visibility: hidden}"
).launch()