Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import os | |
| from PIL import Image | |
| import numpy as np | |
| import cv2 | |
| from keras.models import load_model | |
| from util import set_background | |
| st.set_page_config(page_title="Pneumonia Classifier", layout="centered") | |
| st.title("🩺 Pneumonia Classifier Application") | |
| st.header("Upload a Chest X-ray Image") | |
| def load_bg(): | |
| bg_path = os.path.join(os.path.dirname(__file__), "bgs", "bg5.png") | |
| bg = cv2.imread(bg_path) | |
| if bg is None: | |
| return None | |
| blurred = cv2.GaussianBlur(bg, (15, 15), 0) | |
| return blurred | |
| def load_pneumonia_model(): | |
| model_path = os.path.join( | |
| os.path.dirname(__file__), | |
| "model", | |
| "pneumonia_classifier.keras" | |
| ) | |
| return load_model(model_path) | |
| bg_img = load_bg() | |
| if bg_img is not None: | |
| tmp_bg = "/tmp/bg_blur.png" | |
| cv2.imwrite(tmp_bg, bg_img) | |
| set_background(tmp_bg) | |
| model = load_pneumonia_model() | |
| class_names = ["NORMAL", "PNEUMONIA"] | |
| file = st.file_uploader( | |
| "Upload a chest X-ray image", | |
| type=["jpeg", "jpg", "png"] | |
| ) | |
| if file is not None: | |
| image = Image.open(file).convert("L") | |
| st.image(image, caption="Uploaded X-ray", use_container_width=True) | |
| img = np.array(image) | |
| img = cv2.resize(img, (128, 128)) | |
| img = img / 255.0 | |
| img = np.expand_dims(img, axis=(0, -1)) | |
| prediction = model.predict(img) | |
| class_idx = np.argmax(prediction) | |
| confidence = np.max(prediction) | |
| st.success(f"Prediction: {class_names[class_idx]}") | |
| st.info(f"Confidence: {confidence * 100:.2f}%") | |