import streamlit as st from tensorflow.keras.models import load_model from PIL import Image import numpy as np model = load_model('src/skin_cancer_model.h5') def process_image(img): img = img.convert("RGB") img = img.resize(170, 170) img = np.array(img, dtype=np.float32) / 255.0 return np.expand_dims(img, axis=0) st.title("Skin Cancer Classification :cancer:") st.write("Upload an image of a skin lesion to classify it as benign or malignant.") file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) if file is not None: # Eğer kullanıcı bir dosya yüklediyse # Yüklenen dosyayı PIL ile açtık img = Image.open(file) # Yüklenen görüntüyü Streamlit uygulamasında gösterdik st.image(img, caption='Uploaded Image', use_column_width=True) # Yüklenen görüntüyü işledik img = process_image(img) # İşlenmiş görüntüyü modelimize verdik ve tahmin sonucunu aldık prediction = model.predict(img) # Modelin çıktısı 0 ile 1 arasında bir değer olduğu için, 0.5'ten büyükse sınıfı 1 (Cancer), değilse 0 (Non-Cancer) olarak belirledik prediction_class = 1 if prediction > 0.5 else 0 class_names = ['Cancer', 'Non-Cancer'] # Sınıf isimlerini tanımladık st.write(f'The lesion is classified as {class_names[prediction_class]}.') # Lezyonun sınıfını belirten bir mesaj yazdık