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__) | |
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 | |
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) | |