GD24 / app.py
LazyBoss's picture
Rename glaucoma_app.py to app.py
d11328a verified
from flask import Flask, request, jsonify, send_file
from PIL import Image, ImageOps
import numpy as np
import tensorflow as tf
import io
app = Flask(__name__)
# Load the TensorFlow model
model = tf.keras.models.load_model('my_model2.h5')
def import_and_predict(image_data):
image = ImageOps.fit(image_data, (100, 100), Image.ANTIALIAS)
image = image.convert('RGB')
image = np.asarray(image)
image = (image.astype(np.float32) / 255.0)
img_reshape = image[np.newaxis, ...]
prediction = model.predict(img_reshape)
return prediction
@app.route('/')
def index():
return "Welcome to the Glaucoma Detector API!"
@app.route('/predict', methods=['POST'])
def predict():
if 'file' not in request.files:
return jsonify({'error': 'No file part'}), 400
file = request.files['file']
if file.filename == '':
return jsonify({'error': 'No selected file'}), 400
if file and file.filename.lower().endswith('.jpg'):
image = Image.open(io.BytesIO(file.read()))
prediction = import_and_predict(image)
pred = prediction[0][0]
if pred > 0.5:
result = "Your eye is Healthy. Great!"
else:
result = "You are affected by Glaucoma. Please consult an ophthalmologist as soon as possible."
return jsonify({'prediction': result})
else:
return jsonify({'error': 'Invalid file format'}), 400
if __name__ == '__main__':
app.run(port=5000, debug=True) # You can specify any port you prefer