andreped commited on
Commit
6f67742
·
unverified ·
2 Parent(s): 7132e9c e50c269

Merge pull request #31 from andreped/hf-demo

Browse files

Fixed image viewer alignment and file upload; removed HU clip

Files changed (2) hide show
  1. demo/src/gui.py +50 -46
  2. demo/src/utils.py +2 -2
demo/src/gui.py CHANGED
@@ -1,11 +1,10 @@
1
  import os
2
 
3
  import gradio as gr
 
4
 
5
  from .compute import run_model
6
  from .utils import load_ct_to_numpy
7
- from .utils import load_pred_volume_to_numpy
8
- from .utils import nifti_to_glb
9
 
10
 
11
  class WebUI:
@@ -41,24 +40,28 @@ class WebUI:
41
  label="Which 2D slice to show",
42
  )
43
 
 
 
 
 
44
  def set_class_name(self, value):
45
  print("Changed task to:", value)
46
  self.class_name = value
47
 
48
  def upload_file(self, files):
49
- return files
50
 
51
  def process(self, mesh_file_names):
52
  fixed_image_path = mesh_file_names[0].name
53
  moving_image_path = mesh_file_names[1].name
 
54
 
55
- run_model(fixed_path, moving_path, output_path, self.class_names[self.class_name])
56
 
57
  self.fixed_images = load_ct_to_numpy(fixed_image_path)
58
  self.moving_images = load_ct_to_numpy(moving_image_path)
59
- #self.pred_images = load_ct_to_numpy("./prediction.nii.gz")
60
- self.pred_images = np.ones_like(moving_images)
61
- return None
62
 
63
  def get_fixed_image(self, k):
64
  k = int(k) - 1
@@ -123,14 +126,7 @@ class WebUI:
123
  outputs=None,
124
  )
125
 
126
- run_btn = gr.Button("Run analysis").style(
127
- full_width=False, size="lg"
128
- )
129
- run_btn.click(
130
- fn=lambda x: self.process(x),
131
- inputs=file_output,
132
- outputs=None,
133
- )
134
 
135
  """
136
  with gr.Row():
@@ -149,38 +145,46 @@ class WebUI:
149
  with gr.Row():
150
  with gr.Box():
151
  with gr.Column():
152
- fixed_images = []
153
- for i in range(self.nb_slider_items):
154
- visibility = True if i == 1 else False
155
- t = gr.Image(
156
- visible=visibility, elem_id="model-2d-fixed"
157
- ).style(
158
- height=512,
159
- width=512,
160
- )
161
- fixed_images.append(t)
162
-
163
- moving_images = []
164
- for i in range(self.nb_slider_items):
165
- visibility = True if i == 1 else False
166
- t = gr.Image(
167
- visible=visibility, elem_id="model-2d-moving"
168
- ).style(
169
- height=512,
170
- width=512,
171
- )
172
- moving_images.append(t)
173
-
174
- pred_images = []
175
- for i in range(self.nb_slider_items):
176
- visibility = True if i == 1 else False
177
- t = gr.Image(
178
- visible=visibility, elem_id="model-2d-pred"
179
- ).style(
180
- height=512,
181
- width=512,
 
 
 
 
 
 
 
 
 
182
  )
183
- pred_images.append(t)
184
 
185
  self.slider.input(
186
  self.get_fixed_image, self.slider, fixed_images
 
1
  import os
2
 
3
  import gradio as gr
4
+ import numpy as np
5
 
6
  from .compute import run_model
7
  from .utils import load_ct_to_numpy
 
 
8
 
9
 
10
  class WebUI:
 
40
  label="Which 2D slice to show",
41
  )
42
 
43
+ self.run_btn = gr.Button("Run analysis").style(
44
+ full_width=False, size="lg"
45
+ )
46
+
47
  def set_class_name(self, value):
48
  print("Changed task to:", value)
49
  self.class_name = value
50
 
51
  def upload_file(self, files):
52
+ return [f.name for f in files]
53
 
54
  def process(self, mesh_file_names):
55
  fixed_image_path = mesh_file_names[0].name
56
  moving_image_path = mesh_file_names[1].name
57
+ output_path = "./"
58
 
59
+ run_model(fixed_image_path, moving_image_path, output_path, self.class_names[self.class_name])
60
 
61
  self.fixed_images = load_ct_to_numpy(fixed_image_path)
62
  self.moving_images = load_ct_to_numpy(moving_image_path)
63
+ self.pred_images = np.ones_like(self.moving_images)
64
+ return self.pred_images
 
65
 
66
  def get_fixed_image(self, k):
67
  k = int(k) - 1
 
126
  outputs=None,
127
  )
128
 
129
+ self.run_btn.render()
 
 
 
 
 
 
 
130
 
131
  """
132
  with gr.Row():
 
145
  with gr.Row():
146
  with gr.Box():
147
  with gr.Column():
148
+
149
+ with gr.Row():
150
+ fixed_images = []
151
+ for i in range(self.nb_slider_items):
152
+ visibility = True if i == 1 else False
153
+ t = gr.Image(
154
+ visible=visibility, elem_id="model-2d-fixed"
155
+ ).style(
156
+ height=512,
157
+ width=512,
158
+ )
159
+ fixed_images.append(t)
160
+
161
+ moving_images = []
162
+ for i in range(self.nb_slider_items):
163
+ visibility = True if i == 1 else False
164
+ t = gr.Image(
165
+ visible=visibility, elem_id="model-2d-moving"
166
+ ).style(
167
+ height=512,
168
+ width=512,
169
+ )
170
+ moving_images.append(t)
171
+
172
+ pred_images = []
173
+ for i in range(self.nb_slider_items):
174
+ visibility = True if i == 1 else False
175
+ t = gr.Image(
176
+ visible=visibility, elem_id="model-2d-pred"
177
+ ).style(
178
+ height=512,
179
+ width=512,
180
+ )
181
+ pred_images.append(t)
182
+
183
+ self.run_btn.click(
184
+ fn=lambda x: self.process(x),
185
+ inputs=file_output,
186
+ outputs=t,
187
  )
 
188
 
189
  self.slider.input(
190
  self.get_fixed_image, self.slider, fixed_images
demo/src/utils.py CHANGED
@@ -14,8 +14,8 @@ def load_ct_to_numpy(data_path):
14
 
15
  data = np.rot90(data, k=1, axes=(0, 1))
16
 
17
- data[data < -150] = -150
18
- data[data > 250] = 250
19
 
20
  data = data - np.amin(data)
21
  data = data / np.amax(data) * 255
 
14
 
15
  data = np.rot90(data, k=1, axes=(0, 1))
16
 
17
+ #data[data < -150] = -150
18
+ #data[data > 250] = 250
19
 
20
  data = data - np.amin(data)
21
  data = data / np.amax(data) * 255