grape-data / app.py
smyr-dc's picture
Upload 3 files
d7765a7 verified
Raw
History Blame Contribute Delete
2.09 kB
import streamlit as st
from tensorflow.keras.models import load_model
from PIL import Image
import numpy as np
model = load_model('my_model2.keras')
def process_image(img):
img = img.convert('RGB') # Görüntüyü RGB formatına dönüştür
img = img.resize((170, 170))
img_array = np.array(img)
img_normalized = img_array / 255.0
img_normalized = np.expand_dims(img_normalized, axis=0)
return img_normalized
st.title("üzüm yapraği siniflandirma")
st.write("Resim seç ve model yapraklarin hastaliğini tahmin etsin")
file = st.file_uploader('Bir Resim Seç', type=['jpg', 'jpeg', 'png'])
if file is not None:
img = Image.open(file)
st.image(img, caption='Yüklenen Resim')
image = process_image(img)
prediction = model.predict(image)
# Tahmin edilen olasılıkları yazdır
st.write(f"Tahmin edilen olasılıklar: {prediction[0][0]}")
# Tahmini sınıf etiketine dönüştür
predicted_class = np.argmax(prediction[0]) # En yüksek olasılığa sahip sınıfı seç
class_names = ['ESCA', 'Healthy', 'Leaf Blight', 'Black Rot']
st.write("Sonuç:", class_names[predicted_class])
# Özel mesajlar
if class_names[predicted_class] == 'ESCA':
st.write("Öneri: Bu hastalık, üzüm yapraklarında sararma ve kuruma ile kendini gösterir. Etkili bir mücadele için hasta yaprakları ve sürgünleri kesin. İyi hava akışını sağlamak için bağ alanınızı düzenli tutun.")
elif class_names[predicted_class] == 'Leaf Blight':
st.write("Öneri: Yapraklarda lekeler ve kuruma görülebilir. Hastalığın yayılmasını önlemek için etkilenen yaprakları kesin. İyi bir hava sirkülasyonu sağlamak için bitkilerinizi seyrek dikin ve düzenli olarak sulayın.")
elif class_names[predicted_class] == 'Black Rot':
st.write("Öneri: Siyah çürük, üzüm salkımlarında çürümeye neden olur. Hastalıklı yaprakları ve meyveleri kesin, toprak ve bitki hijyenine dikkat edin. Koruyucu fungisitler uygulamak da etkili olabilir.")