File size: 2,785 Bytes
b1f46e5 4722fbd ceb119d b1f46e5 ceb119d b1f46e5 4722fbd 7928acb 4722fbd 7928acb 4722fbd 7928acb 5e168b6 7928acb 4722fbd b1f46e5 6e57d33 b1f46e5 6e57d33 b1f46e5 |
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
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")
|