|
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("my_cnn_model.keras")
|
|
|
|
def process_image(img):
|
|
img = img.resize((170,170))
|
|
img = np.array(img)
|
|
img = img / 255.0
|
|
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!", "It is Cancer!"]
|
|
st.write(class_names[predicted_class])
|
|
|