from flask import Flask from flask_restful import Resource, Api, request import matplotlib.pyplot as plt import numpy as np import cv2 import io from PIL import Image, ImageOps import pickle app = Flask(__name__) app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 # 16 MB api = Api(app) size = 100, 100 #load Neural Network, generated with nnTrain nn = pickle.load(open('nn.pkl', 'rb')) class Predict(Resource): def get(self): message = {'message': 'getted route1'} return message def post(self): filer = request.files['file'] #open the uploaded image, and transform to the numpy array filer.save("currentimage.png") image = Image.open("currentimage.png") thumb = ImageOps.fit(image, size, Image.ANTIALIAS) image_data = np.asarray(thumb).flatten() imagetopredict = np.array([image_data]) #predict the class of the image with the neural network prediction = nn.predict(imagetopredict) print "prediction" print prediction[0][0] if prediction[0][0]==0: result = "noobject" else: result = "object" message = {'class': result} return message class Route2(Resource): def get(self): return {'message': 'getted route2'} class Route3(Resource): def get(self): return {'message': 'getted route3'} api.add_resource(Predict, '/predict') api.add_resource(Route2, '/route2') api.add_resource(Route3, '/route3') if __name__ == '__main__': app.run(port='3045')