DHEIVER commited on
Commit
59c942f
1 Parent(s): 021641e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -6
app.py CHANGED
@@ -1,6 +1,8 @@
1
  import gradio as gr
2
  import tensorflow as tf
3
  import numpy as np
 
 
4
  from gradio import components
5
 
6
  # Load the model
@@ -12,13 +14,17 @@ class_names = {
12
  1: 'Dyed lifted polyps'
13
  }
14
 
15
-
16
- def classify_image(image):
17
  # Preprocess the image
18
  img_array = tf.image.resize(image, [256, 256])
19
  img_array = tf.expand_dims(img_array, 0) / 255.0
20
 
21
- # Make a prediction
 
 
 
 
22
  prediction = model.predict(img_array)
23
  predicted_class = tf.argmax(prediction[0], axis=-1)
24
  confidence = np.max(prediction[0])
@@ -31,16 +37,23 @@ def classify_image(image):
31
  result = class_name
32
  details = f"The image is classified as {class_name} with a confidence of {confidence:.2f}."
33
 
34
- return result, confidence, details
 
 
 
 
 
35
 
 
36
 
37
  iface = gr.Interface(
38
- fn=classify_image,
39
  inputs=components.Image(shape=(256, 256)),
40
  outputs=[
41
  components.Textbox(label="Result"),
42
  components.Number(label="Confidence"),
43
- components.Textbox(label="Details")
 
44
  ],
45
  examples=[
46
  ['examples/0.jpg'],
 
1
  import gradio as gr
2
  import tensorflow as tf
3
  import numpy as np
4
+ import cv2
5
+ import matplotlib.cm as cm
6
  from gradio import components
7
 
8
  # Load the model
 
14
  1: 'Dyed lifted polyps'
15
  }
16
 
17
+ # Define color gradient segmentation function
18
+ def color_gradient_segmentation(image):
19
  # Preprocess the image
20
  img_array = tf.image.resize(image, [256, 256])
21
  img_array = tf.expand_dims(img_array, 0) / 255.0
22
 
23
+ # Apply color gradient segmentation
24
+ img_gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
25
+ _, img_binary = cv2.threshold(img_gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
26
+
27
+ # Make a prediction on the segmented image
28
  prediction = model.predict(img_array)
29
  predicted_class = tf.argmax(prediction[0], axis=-1)
30
  confidence = np.max(prediction[0])
 
37
  result = class_name
38
  details = f"The image is classified as {class_name} with a confidence of {confidence:.2f}."
39
 
40
+ # Apply color overlay on the segmented region
41
+ img_overlay = cv2.cvtColor(img_binary, cv2.COLOR_GRAY2RGB)
42
+ img_overlay[np.where((img_overlay == [255, 255, 255]).all(axis=2))] = [255, 0, 0] # Red overlay color
43
+
44
+ # Blend the original image with the color overlay
45
+ img_segmented = cv2.addWeighted(image, 0.8, img_overlay, 0.2, 0)
46
 
47
+ return result, confidence, details, img_segmented
48
 
49
  iface = gr.Interface(
50
+ fn=color_gradient_segmentation,
51
  inputs=components.Image(shape=(256, 256)),
52
  outputs=[
53
  components.Textbox(label="Result"),
54
  components.Number(label="Confidence"),
55
+ components.Textbox(label="Details"),
56
+ components.Image(label="Segmented Image")
57
  ],
58
  examples=[
59
  ['examples/0.jpg'],