Silueta / app.py
tomaseo2022's picture
Update app.py
2fbb632
import os
os.system('/usr/local/bin/python -m pip install --upgrade pip')
os.system("pip install opencv-python")
os.system("pip install pillow")
os.system("pip install rembg")
import gradio as gr
import cv2
import numpy as np
from PIL import Image
import rembg
from rembg import remove
def inference(img):
img = Image.open(img)
img = np.array(img)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 50, 150)
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
silhouette = np.zeros_like(img)
result = cv2.drawContours(silhouette, contours, -1, (255, 255, 255), 1)
output = remove_background(result)
return output
def remove_background(result):
output = remove(result)
return output
gr.Interface(
inference,
gr.inputs.Image(type="filepath", label="Input"),
gr.outputs.Image(type="numpy", label="Output"),
title="Convertir a silueta",
description="Ingresa una imagen para convertirla a silueta",
article="",
css="Footer {visibility: hidden}"
).launch()