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)