Spaces:
Runtime error
Runtime error
import cv2 | |
import numpy as np | |
import mediapipe as mp | |
import gradio as gr | |
mp_selfie_segmentation = mp.solutions.selfie_segmentation | |
BG_COLOR = (255, 255, 255) | |
def selfie_segmentation(image): | |
# Wenden Sie das Modell auf das Eingabebild an | |
with mp_selfie_segmentation.SelfieSegmentation( | |
model_selection=0) as selfie_segmentation: | |
image = cv2.imread(image) | |
image_height, image_width, _ = image.shape | |
# Convert the BGR image to RGB before processing. | |
results = selfie_segmentation.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) | |
condition = np.stack((results.segmentation_mask,) * 3, axis=-1) > 0.1 | |
bg_image = np.zeros(image.shape, dtype=np.uint8) | |
bg_image[:] = BG_COLOR | |
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) | |
return np.where(condition, image, bg_image) | |
#im = Image.fromarray(output_image) | |
#img_var /= im.save("example.png") | |
#bla = "/content/example.png" | |
#bla = Image.open("/content/example.png") | |
#return img_var | |
#pil_image = Image.fromarray(output_image) | |
#byte_io = BytesIO() | |
#pil_image.save(byte_io, format='PNG') | |
#byte_io.seek(0) | |
#return byte_io.read() | |
# Start a interface in gradio | |
iface = gr.Interface(fn=selfie_segmentation, | |
inputs="image", | |
outputs="image") | |
# starten Sie die Schnittstelle | |
iface.launch() |