File size: 1,718 Bytes
b573744 |
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 |
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)
|