import streamlit as st import numpy as np from PIL import Image import io from tensorflow.keras.models import load_model st.set_page_config(page_title="Hurma Sınıflandırıcı", layout="centered") st.title("📷 Hurma Resmi Sınıflandırma") st.write("Lütfen bir hurma resmi yükleyin ve hangi tür olduğunu tahmin edelim.") # Model yükleniyor @st.cache_resource def load_model_cached(): return load_model("src/dates_classifier_model.h5") model = load_model_cached() class_names = [ 'Rutab', 'Meneifi', 'Sokari', 'Galaxy', 'Shaishe', 'Medjool', 'Ajwa', 'Nabtat Ali', 'Sugaey' ] # Fotoğraf işleme fonksiyonu def process_image(img): img = img.resize((224, 224)) img = np.array(img) / 255.0 img = np.expand_dims(img, axis=0) return img # Dosya yükleme uploaded_file = st.file_uploader("Resim Seç (.jpg, .jpeg, .png)", type=["jpg", "jpeg", "png"]) if uploaded_file is not None: try: # BytesIO üzerinden oku image = Image.open(io.BytesIO(uploaded_file.read())).convert("RGB") st.image(image, caption="Yüklenen Resim", use_column_width=True) # Tahmin processed = process_image(image) prediction = model.predict(processed) predicted_class = np.argmax(prediction) st.success(f"Tahmin edilen sınıf: **{class_names[predicted_class]}**") except Exception as e: st.error(f"Resim işlenemedi: {e}")