File size: 1,640 Bytes
d658572 | 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 | # -*- encoding: utf-8 -*-
# This file supports web-based object classfication
# by sangkny
# modified by speedpointer
# -------------------------------------------------
from flask import Flask, render_template, request
from werkzeug.utils import secure_filename
import cv2
import numpy as np
from food_classifier_yolo import food_classifier_Json
# classification function
app = Flask(__name__)
#App name
def recognize(filename):
image = cv2.imread(filename) # be careful for hangul name
# read file and put it into an image array
return food_classifier_Json(image=image)
# classification for food images
import base64
# for hangul file name
def recognizeBase64(base64_code):
file_bytes = np.asarray(bytearray(base64.b64decode(base64_code)),dtype=np.uint8)
image_data_ndarray = cv2.imdecode(file_bytes,1)
return food_classifier_Json(image_data_ndarray)
import time
@app.route('/uploader', methods=['GET', 'POST'])# request routing
def upload_file():
if request.method == 'POST':
# if POST case
f = request.files['file']
f.save("./images_rec/"+secure_filename(f.filename))
# saving the requested file
t0 = time.time()
res = recognize("./images_rec/"+secure_filename(f.filename))
print("elapsed time:",time.time() - t0)
return res
# return the result
# return 'file uploaded successfully'
return render_template('upload.html')
if __name__ == '__main__':
# input
ip_address = "0.0.0.0"#"127.0.0.1"
port_number = 3000 #8000
app.run(ip_address,port=int(port_number))
# run app with ip and port numbers
|