Backg / app.py
LapStore
try space
5e168b6
raw
history blame
No virus
2.79 kB
from fastapi import FastAPI ,Request ,Form, UploadFile, File
from fastapi.responses import JSONResponse
from fastapi.responses import HTMLResponse, FileResponse
import os
import io
from PIL import ImageOps,Image ,ImageFilter
#from transformers import pipeline
import matplotlib.pyplot as plt
import numpy as np
import ast
from server import *
#http://localhost:8000
app = FastAPI()
# Root route
@app.get('/')
def main():
return "Hello World taha"
##### use space /tmp/ ...
@app.post('/imageStep1')
async def image_step1(image_file: UploadFile = File(...),type_of_filters: str = Form(...), blur_radius: str = Form(...)):#--->,background_image: UploadFile = File(...)):
contents = await image_file.read()
image = Image.open(io.BytesIO(contents))
produced_image=SegmenterBackground().Back_step1(image,type_of_filters,int(blur_radius))[0]#---->
# Save the processed image to a temporary file
output_file_path_tmp = "/tmp/tmp_processed_image.png"
produced_image.save(output_file_path_tmp)
# Return the processed image for download
return FileResponse(output_file_path_tmp, media_type='image/png', filename="/tmp/tmp_processed_image.png")
@app.post('/imageStep2')
async def image_step2(image_file: UploadFile = File(...),things_replace: str = Form(...), blur_radius: str = Form(...)):#--->,background_image: UploadFile = File(...)):
contents = await image_file.read()
image = Image.open(io.BytesIO(contents))
things_replace=ast.literal_eval(things_replace)
produced_image=SegmenterBackground().Back_step2(image,"cam",things_replace,int(blur_radius))
# Save the processed image to a temporary file
output_file_path_tmp = "/tmp/tmp_processed_image.png"
produced_image.save(output_file_path_tmp)
# Return the processed image for download
return FileResponse(output_file_path_tmp, media_type='image/png', filename="/tmp/tmp_processed_image.png")
@app.post('/predict')
async def predict(supported_types_str: str = Form(),age: str = Form() , file: UploadFile = File(...)):
# Form(...) to accept input as web form ,may change when android /upload
supported_types=ast.literal_eval(supported_types_str)
contents = await file.read()
image = Image.open(io.BytesIO(contents))
# Process the image (example: convert to grayscale)
processed_image = image.convert("L")
# Save the processed image to a temporary file
output_file_path = "/tmp/tmp_processed_image.png"
processed_image.save(output_file_path)
# Return the processed image for download
return FileResponse(output_file_path, media_type='image/png', filename="/tmp/tmp_processed_image.png")