Allinone / app.py
RANA
using wsgi which is gunicorn
b573744
raw
history blame
No virus
1.72 kB
from flask import Flask, request
# from io import BytesIO
# from PIL import Image
# import treeCountModel
import recycleModel
import numpy as np
# import requests
import cv2
app = Flask(__name__)
@app.route("/", methods=["GET", "POST"])
def index():
message = "Welcome to my API! Here are the available endpoints:"
recycle_url = request.host_url + "recycle-prediction"
tree_count_url = request.host_url + "tree-count"
response = {
"message": message,
"endpoints": {"recycle_prediction": recycle_url, "tree_count": tree_count_url},
}
return response, 200
@app.route("/recycle-prediction", methods=["GET", "POST"])
def recycle():
result = None
if request.method == "POST":
if "img" not in request.files:
return "No file uploaded for recycling material prediction", 400
img = request.files["img"]
img_array = cv2.imdecode(np.frombuffer(img.read(), np.uint8), cv2.IMREAD_COLOR)
model = recycleModel.recyclePrediction(img_array)
# model = recycleModel.recyclePrediction(img)
response = {"Recycling Material": model}
result = response
return result
return result
# @app.route("/tree-count/<path:url>", methods=["GET", "POST"])
# def treeCount(url):
# result = None
# if request.method == "GET":
# url = request.url
# url = url[50:]
# response = requests.get(url)
# if url is None:
# return "No image URL provided", 400
# img = Image.open(BytesIO(response.content))
# model = treeCountModel.countTree(img)
# result = {"Tree Count": model}
# return result
if __name__ == "__main__":
app.run(debug=True)