Spaces:
Runtime error
Runtime error
from keras.models import load_model | |
model=load_model('num_detect (1).h5') | |
import numpy as np | |
import cv2 | |
from keras.preprocessing import image | |
import matplotlib.pyplot as plt | |
def mnist_compatible(image_path, target_size=(28, 28)): | |
img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) | |
plt.imshow(img) | |
plt.show() | |
img_resized = cv2.resize(img, target_size) | |
img_inverted = 255 - img_resized | |
img_normalized = img_inverted.astype('float32') / 255.0 | |
img_array = image.img_to_array(img_normalized) | |
img_reshaped = img_array.reshape((*target_size, 1)) | |
return img_reshaped | |
def recognize_digit(dict): | |
path1 = dict['composite'] | |
arr = mnist_compatible(path1) | |
arr = np.expand_dims(arr, axis=0) | |
prediction = np.argmax(model.predict(arr)) | |
return prediction | |
def calculator(image1, operation, image2): | |
# Recognize the drawn digits | |
num1 = recognize_digit(image1) | |
num2 = recognize_digit(image2) | |
# Perform the calculator operation | |
if operation == "add": | |
result = num1 + num2 | |
elif operation == "subtract": | |
result = num1 - num2 | |
elif operation == "multiply": | |
result = num1 * num2 | |
elif operation == "divide": | |
result = num1 / num2 | |
return result | |
import gradio as gr | |
with gr.Blocks() as demo: | |
with gr.Row(): | |
with gr.Column(): | |
image1 = gr.Paint(label="Draw First Number", type="filepath", brush=gr.Brush(colors=["#32cc70"]), canvas_size=(301, 301)) | |
operation = gr.Radio(["add", "subtract", "multiply", "divide"]) | |
image2 = gr.Paint(label="Draw Second Number", type="filepath", brush=gr.Brush(colors=["#32cc70"]), canvas_size=(301, 301)) | |
submit_btn = gr.Button(value="Calculate") | |
with gr.Column(): | |
result = gr.Textbox(label="Result") | |
submit_btn.click(calculator, inputs=[image1, operation, image2], outputs=[result]) | |
demo.launch(share='True') |