You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
1.5 KiB

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