| import streamlit as st |
| from PIL import Image |
| import numpy as np |
| from tensorflow.keras.models import load_model |
| import io |
|
|
| def main(): |
| st.set_page_config(page_title="Hurma Sınıflandırıcı") |
|
|
| st.title("📷 Hurma Resmi Sınıflandırma") |
| st.write("Bir hurma resmi yükleyin ve hangi tür olduğunu tahmin edelim.") |
|
|
| |
| model = load_model("src/dates_classifier_model.h5") |
|
|
| |
| class_names = ['Ajwa', 'Medjool', 'Sokari'] |
|
|
| file = st.file_uploader("Resim seç", type=["jpg", "jpeg", "png"]) |
| if file is not None: |
| try: |
| image = Image.open(io.BytesIO(file.read())).convert("RGB") |
| st.image(image, caption="Yüklenen Resim", use_container_width=True) |
|
|
| img = image.resize((224, 224)) |
| img = np.array(img) / 255.0 |
| img = np.expand_dims(img, axis=0) |
|
|
| prediction = model.predict(img) |
| predicted_class = np.argmax(prediction) |
|
|
| |
| if predicted_class < len(class_names): |
| st.success(f"Tahmin: {class_names[predicted_class]}") |
| else: |
| st.error("⚠️ Tahmin edilen sınıf, sınıf isimleriyle eşleşmiyor. Lütfen modelinizi kontrol edin.") |
| except Exception as e: |
| st.error(f"⚠️ Hata oluştu: {str(e)}") |
|
|
| if __name__ == "__main__": |
| main() |
|
|