-
Notifications
You must be signed in to change notification settings - Fork 0
/
web.py
64 lines (50 loc) · 2.41 KB
/
web.py
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
58
59
60
61
62
63
64
import streamlit as st
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing import image
import numpy as np
# Load the pre-trained model
model = keras.models.load_model('model_website.h5')
# Function to make predictions
def predict_image(uploaded_image):
# Load and preprocess the uploaded image
img = tf.keras.preprocessing.image.load_img(uploaded_image, target_size=(224, 224), color_mode='grayscale')
img = tf.keras.preprocessing.image.img_to_array(img)
img = np.expand_dims(img, axis=0)
img = np.expand_dims(img, axis=-1)
img = tf.keras.applications.mobilenet_v2.preprocess_input(img)
prediction = model.predict(img)
kelas_prediksi = np.argmax(prediction)
persentase_prediksi = prediction[0][kelas_prediksi] * 100
return kelas_prediksi, persentase_prediksi
st.title("Deteksi Penyakit Paru-paru")
# Upload an image for prediction
uploaded_image = st.file_uploader("Upload Gambar Paru-paru", type=['jpg', 'jpeg', 'png'])
if uploaded_image is not None:
st.image(uploaded_image, caption="Gambar yang Diunggah", use_column_width=True)
st.write("")
kelas_prediksi, persentase_prediksi = predict_image(uploaded_image)
classes = ["Bukan Gambar X-ray Paru", "COVID19", "NORMAL", "PNEUMONIA", "TURBERCULOSIS"]
predicted_class = classes[kelas_prediksi]
st.subheader("Diagnosa:")
st.write(f"Persentase Prediksi: {persentase_prediksi:.2f}%")
# Menampilkan informasi tambahan sesuai dengan kelas prediksi
if kelas_prediksi == 0:
st.write("Gambar ini bukan merupakan gambar X-ray paru-paru.")
elif kelas_prediksi == 1:
st.write("Gambar ini menunjukkan adanya COVID-19.")
# Anda dapat menambahkan informasi tambahan untuk kelas ini
elif kelas_prediksi == 2:
st.write("Gambar ini normal tanpa tanda-tanda penyakit.")
# Anda dapat menambahkan informasi tambahan untuk kelas ini
elif kelas_prediksi == 3:
st.write("Gambar ini menunjukkan tanda-tanda pneumonia.")
# Anda dapat menambahkan informasi tambahan untuk kelas ini
elif kelas_prediksi == 4:
st.write("Gambar ini menunjukkan tanda-tanda tuberkulosis.")
# Anda dapat menambahkan informasi tambahan untuk kelas ini
# Sidebar
st.sidebar.title("Tentang Aplikasi")
st.sidebar.info("Aplikasi ini dapat digunakan untuk mendeteksi penyakit paru-paru pada gambar rontgen.")
# Footer
st.text("Dibuat oleh danang")