File size: 1,265 Bytes
03be6a6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st 
from tensorflow.keras.models import load_model
from PIL import Image
import numpy as np

model = load_model("model_grapevine_disease_detection.h5")

def process_image(img):
    img = img.convert("RGB")
    img = img.resize((50,50))
    img = np.array(img)
    if img.ndim == 2:
        img = np.stack((img,)*3, axis=-1)
    img = img/255.0
    img = np.expand_dims(img, axis=0)
    return img

st.title("GRAPEVINE DISEASE CLASSIFICATION")
st.divider()

col1, col2, col3 = st.columns([1,2,1])
with col2:
    st.image("grapevine_disease.jpeg")
st.divider()

st.success("Upload your grapevine image and classify the images with the following labels: Black Rot, ESCA, Healthy, and Leaf Blight with CNN deep learning.")
st.divider()

st.write("Upload your image and see the results")
st.divider()

file = st.file_uploader("Choose an image", type=["jpg", "jpeg", "png", "webp"])

if file is not None:
    img = Image.open(file)
    st.image(img, caption="Downloaded image")
    image = process_image(img)
    prediction = model.predict(image)
    predicted_class = np.argmax(prediction)
    
    class_names = {0:"Black Rot", 1:"ESCA", 2:"Healthy", 3:"Leaf Blight"}
    
    st.write(f"Predicted Grapevine Disease: {class_names[predicted_class]}")