import gradio as gr import numpy as np import tensorflow as tf import cv2 # Load the trained model model = tf.keras.models.load_model("Handwritten_model.h5") # Make sure the filename matches your uploaded model def predict_digit(image): # Preprocess the image img = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) # Convert to grayscale img = cv2.resize(img, (28, 28)) # Resize to 28x28 pixels img = np.invert(img) # Invert the image colors img = img.astype("float32") / 255 # Normalize to [0, 1] img = img.reshape(1, 28, 28) # Reshape for the model input # Make prediction prediction = model.predict(img) predicted_class = np.argmax(prediction) return predicted_class # Define the Gradio interface using the updated API gr.Interface( fn=predict_digit, inputs=gr.Image(type="numpy", label="Upload a digit image"), # Updated to use gr.Image outputs="text", title="Handwritten Digit Recognition", description="Upload an image of a handwritten digit, and the model will predict which digit it is." ).launch()