MaskCut / predict.py
makakwastaken's picture
Use docker
5e6d15e
Raw
History Blame Contribute Delete
793 Bytes
import base64
from io import BytesIO
from PIL import Image
import numpy as np
from model import Model
def predict(package, image_base64: str, threshold: float, num_objects: int):
# Decode the image from base64 to PIL.Image
# We use BytesIO to convert the base64 to bytes
base64_split = image_base64.split(',')[1]
buf = BytesIO(base64.b64decode(base64_split))
image = Image.open(buf)
# Get the image path from tmp_image
canvas = Image.new('RGB', image.size, (0, 0, 0))
# We copy the image that and fill it with black, to get the dimensions
rgb = np.array(canvas)
model : Model = package.get('model')
masks = model(image, threshold, num_objects)
for mask in masks:
fg = mask > 0.5
rgb[fg] = 255
return Image.fromarray(rgb)