|
|
import streamlit as st
|
|
|
from tensorflow.keras.models import load_model
|
|
|
from PIL import Image
|
|
|
import numpy as np
|
|
|
import cv2
|
|
|
|
|
|
model=load_model('skin_cancer_model.h5')
|
|
|
|
|
|
def process_image(img):
|
|
|
|
|
|
img = np.array(img)
|
|
|
|
|
|
img = cv2.resize(img, (170, 170))
|
|
|
img = img / 255.0
|
|
|
img = np.expand_dims(img, axis=0)
|
|
|
return img
|
|
|
|
|
|
st.title('Skin Cancer Classification :stethoscope:')
|
|
|
st.write('Upload a image and model will predict if it is a skin cancer or not')
|
|
|
|
|
|
file=st.file_uploader('Choose a 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=['Not Cancer','Cancer']
|
|
|
st.write(class_names[predicted_class])
|
|
|
|
|
|
|