import streamlit as st from tensorflow.keras.models import load_model from PIL import Image import numpy as np st.title("Skin Cancer Image Classification") st.write("Upload an image and let the model guess whether it is a cancer or not.") model = load_model("densenet_imagenet_model.keras") def process_image(img): img = img.resize((170,170)) # set the size as 170 x 170 pixel img = np.array(img) img = img / 255.0 # normalized img = np.expand_dims(img, axis=0) return img file = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"]) if file is not None: img = Image.open(file) st.image(img, caption="Uploaded Image") image = process_image(img) prediction = model.predict(image) predicted_class = np.argmax(prediction) class_names = ["It is NOT Cancer!", "A melanocytic nevus is usually a noncancerous condition where pigment-producing skin cells group together. It is a type of growth on the skin that contains nevus cells (a type of skin cell). "] st.write(class_names[predicted_class])