-
Notifications
You must be signed in to change notification settings - Fork 3
/
app.py
43 lines (36 loc) · 1.24 KB
/
app.py
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
37
38
39
40
41
42
43
import os
import numpy as np
import cv2
from tensorflow.keras.models import load_model
import streamlit as st
from streamlit_drawable_canvas import st_canvas
""" Burmese Handwritten Digit Recognition """
model = load_model('cnn.h5')
# st.markdown('<style>body{color: White; background-color: DarkSlateGrey}</style>', unsafe_allow_html=True)
st.title('Burmese Digit Recognizer')
st.markdown('''
Try to write a digit!
''')
# data = np.random.rand(28,28)
# img = cv2.resize(data, (256, 256), interpolation=cv2.INTER_NEAREST)
SIZE = 192
mode = st.checkbox("Draw (or Delete)?", True)
canvas_result = st_canvas(
fill_color='#000000',
stroke_width=20,
stroke_color='#FFFFFF',
background_color='#000000',
width=SIZE,
height=SIZE,
drawing_mode="freedraw" if mode else "transform",
key='canvas')
if canvas_result.image_data is not None:
img = cv2.resize(canvas_result.image_data.astype('uint8'), (28, 28))
rescaled = cv2.resize(img, (SIZE, SIZE), interpolation=cv2.INTER_NEAREST)
st.write('Model Input')
st.image(rescaled)
if st.button('Predict'):
test_x = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
val = model.predict(test_x.reshape(1,28,28,1))
st.write(f'result: {np.argmax(val[0])}')
st.bar_chart(val[0])