File size: 1,115 Bytes
8c9f5a4
 
822173b
 
 
8c9f5a4
 
4c39899
8c9f5a4
822173b
 
 
 
 
8c9f5a4
822173b
 
 
 
 
 
 
 
 
 
 
8c9f5a4
822173b
 
 
8c9f5a4
822173b
 
 
 
 
 
 
 
8c9f5a4
822173b
8c9f5a4
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 gradio as gr
import numpy as np
from PIL import Image
import cv2
import tensorflow as tf  # Assuming you're using TensorFlow for loading your model

# Load your model
model = tf.keras.models.load_model("effnet.h5")

def img_pred(upload):
    # Convert the Gradio input image to OpenCV format
    opencvImage = cv2.cvtColor(np.array(upload), cv2.COLOR_RGB2BGR)
    img = cv2.resize(opencvImage, (150, 150))
    img = img.reshape(1, 150, 150, 3)
    
    # Predict using the model
    p = model.predict(img)
    p = np.argmax(p, axis=1)[0]
    
    # Map prediction to tumor type
    if p == 0:
        result = 'Glioma Tumor'
    elif p == 1:
        result = 'No Tumor'
    elif p == 2:
        result = 'Meningioma Tumor'
    else:
        result = 'Pituitary Tumor'
    
    return f'The Model predicts: {result}'

# Define Gradio interface
iface = gr.Interface(
    fn=img_pred,
    inputs=gr.Image(type="pil"),
    outputs="text",
    title="Brain Tumor Detection",
    description="Upload an MRI image to check if there is a tumor and determine the type if detected."
)

# Launch the app
iface.launch()