Harun01 commited on
Commit
8a38fb8
·
verified ·
1 Parent(s): 1d863ee

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +32 -30
src/streamlit_app.py CHANGED
@@ -2,48 +2,50 @@ import numpy as np
2
  from tensorflow.keras.models import load_model
3
  from PIL import Image
4
  import streamlit as st
 
5
 
 
 
 
6
  model = load_model('src/dates_classifier_model.h5')
7
 
 
8
  def process_image(img):
9
  img = img.resize((224, 224))
10
  img = np.array(img) / 255.0
11
  img = np.expand_dims(img, axis=0)
12
  return img
13
 
14
- st.title('Hurma Resmi Sınıflandırma')
15
- st.write('Bir hurma resmi yükleyin, hangi tür olduğunu tahmin edelim.')
 
16
 
17
- # Session state'te resim tutma
18
- if 'image' not in st.session_state:
19
- st.session_state.image = None
20
 
21
- file = st.file_uploader('Bir Resim Seçin', type=['jpg', 'jpeg', 'png'])
 
22
 
 
23
  if file is not None:
 
 
 
 
24
  try:
25
- img = Image.open(file).convert('RGB')
26
- st.session_state.image = img
 
 
 
 
 
 
 
 
 
 
 
27
  except:
28
- st.error("Görsel açılamadı.")
29
-
30
- if st.session_state.image is not None:
31
- st.image(st.session_state.image, caption='Yüklenen Resim', use_column_width=True)
32
-
33
- processed = process_image(st.session_state.image)
34
- prediction = model.predict(processed)
35
- predicted_class = np.argmax(prediction)
36
-
37
- class_names = [
38
- 'Rutab',
39
- 'Meneifi',
40
- 'Sokari',
41
- 'Galaxy',
42
- 'Shaishe',
43
- 'Medjool',
44
- 'Ajwa',
45
- 'Nabtat Ali',
46
- 'Sugaey'
47
- ]
48
-
49
- st.success(f'Tahmin: **{class_names[predicted_class]}**')
 
2
  from tensorflow.keras.models import load_model
3
  from PIL import Image
4
  import streamlit as st
5
+ import io
6
 
7
+ st.set_page_config(page_title="Hurma Sınıflandırıcı", layout="centered")
8
+
9
+ # Modeli yükle
10
  model = load_model('src/dates_classifier_model.h5')
11
 
12
+ # Görseli işle
13
  def process_image(img):
14
  img = img.resize((224, 224))
15
  img = np.array(img) / 255.0
16
  img = np.expand_dims(img, axis=0)
17
  return img
18
 
19
+ # Uygulama başlığı
20
+ st.title('🥭 Hurma Resmi Sınıflandırma')
21
+ st.write('Lütfen bir hurma fotoğrafı yükleyin. Hangi tür olduğunu tahmin edelim.')
22
 
23
+ # Session State'te görüntüyü saklama
24
+ if "img_bytes" not in st.session_state:
25
+ st.session_state.img_bytes = None
26
 
27
+ # Dosya yükleyici
28
+ file = st.file_uploader("Bir Resim Seçin", type=["jpg", "jpeg", "png"])
29
 
30
+ # Dosya varsa bytes olarak sakla (çökme engellenir)
31
  if file is not None:
32
+ st.session_state.img_bytes = file.read()
33
+
34
+ # Görsel varsa göster ve tahmin et
35
+ if st.session_state.img_bytes:
36
  try:
37
+ img = Image.open(io.BytesIO(st.session_state.img_bytes)).convert("RGB")
38
+ st.image(img, caption="Yüklenen Resim", use_column_width=True)
39
+
40
+ processed = process_image(img)
41
+ prediction = model.predict(processed)
42
+ predicted_class = np.argmax(prediction)
43
+
44
+ class_names = [
45
+ 'Rutab', 'Meneifi', 'Sokari', 'Galaxy', 'Shaishe',
46
+ 'Medjool', 'Ajwa', 'Nabtat Ali', 'Sugaey'
47
+ ]
48
+
49
+ st.success(f"✅ Tahmin: **{class_names[predicted_class]}**")
50
  except:
51
+ st.error("⚠️ Görsel işlenemedi. Lütfen geçerli bir .jpg veya .png dosyası yükleyin.")