File size: 1,064 Bytes
8dfcc25
 
 
 
b1e0561
8dfcc25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import streamlit as st
import numpy as np
import cv2
from keras.models import model_from_json

def read_image(image_file):
    image = cv2.imdecode(np.fromstring(image_file.read(), np.uint8), cv2.IMREAD_COLOR)
    image = cv2.resize(image, (512, 512))
    image = image / 255.0
    image = image.astype(np.float32)
    return image

with open("model.json", "r") as json_file:
    model_json = json_file.read()
model = model_from_json(model_json)

model.load_weights("model.h5")

st.title("Image Segmentation App")
uploaded_file = st.file_uploader("Upload an image for segmentation...", type=["jpg", "jpeg", "png"])

if uploaded_file is not None:
    image = read_image(uploaded_file)
    image = np.expand_dims(image, axis=0)

    y_pred = model.predict(image)[0]
    y_pred = y_pred > 0.5
    y_pred = y_pred.astype(np.uint8) * 255

    col1, col2 = st.columns(2)

    with col1:
        st.image(uploaded_file, caption="Original Image", use_column_width=True)

    with col2:
        st.image(y_pred, caption="Predicted Segmentation Mask", use_column_width=True)