File size: 856 Bytes
a9a2d42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from fastapi import FastAPI, File, UploadFile
from pydantic import BaseModel
from utils import predict
from starlette.responses import StreamingResponse, Response
from io import BytesIO
from PIL import Image
app=FastAPI()


@app.get("/")
def home():
	return {"health_check":"OK"} 
	
#@app.post("/remove")
#async def remove(file: UploadFile = File(...)):
#	contents=await file.read()
#	image = Image.open(BytesIO(contents)).convert("RGB")
#	mask=predict(image)
#	return {"mask": mask.tolist()}

@app.post("/remove")
async def remove(file: UploadFile = File(...)):
	contents=await file.read()
	image = Image.open(BytesIO(contents)).convert("RGB")
	mask=predict(image)
	img=Image.fromarray((mask*255).astype('uint8'))
	buffered=BytesIO()
	img.save(buffered,format="JPEG")
	img_str=buffered.getvalue()
	return Response(content=img_str, media_type="image/jpeg")