Silueta / app.py
tomaseo2022's picture
Update app.py
ab6687a
raw
history blame
1.53 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(image):
# Convertir imagen a escala de grises
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Aplicar bordes
edges = cv2.Canny(gray, 50, 150)
# Crear m谩scara con forma de silueta negra
silhouette = np.zeros_like(image)
silhouette[:,:,0] = edges
silhouette[:,:,1] = edges
silhouette[:,:,2] = edges
return silhouette
# Crear interfaz de usuario con Gradio
interface = gr.Interface(fn=image_to_silhouette, inputs=gr.inputs.Image(label="Input"), outputs=gr.outputs.Image(label="Output"), live=True)
# A帽adir bot贸n de submit
submit_button = interface.add_input("submit", input_type="submit", button_text="Convertir")
# Funci贸n para manejar el evento de submit
def on_submit(inputs):
# Obtener imagen de la caja de entrada
image = inputs["image"]
# Convertir imagen a silueta y mostrar en la caja de salida
silhouette = image_to_silhouette(image)
return silhouette
# A帽adir evento de submit al bot贸n
submit_button.on_submit(on_submit)
# Mostrar interfaz
interface.launch()
examples = [
{"input": "https://images.pexels.com/photos/414612/pexels-photo-414612.jpeg", "output": "https://images.pexels.com/photos/414612/pexels-photo-414612.jpeg"}
]
gr.Interface(
image_to_silhouette,
[gr.inputs.Image(label="Input")],
gr.outputs.Image(label="Output"),
examples=examples
).launch(debug=True)