Working on demo - not finished yet
Browse files- DeepDeformationMapRegistration/main.py +1 -1
- demo/src/compute.py +6 -3
- demo/src/gui.py +8 -20
DeepDeformationMapRegistration/main.py
CHANGED
@@ -338,7 +338,7 @@ def main():
|
|
338 |
else:
|
339 |
np.savez_compressed(os.path.join(os.path.join(args.outputdir, 'debug'), 'displacement_map.npz'), disp_map)
|
340 |
|
341 |
-
LOGGER.info('Predicted image and displacement map saved in: '.format(args.outputdir))
|
342 |
LOGGER.info(f'Displacement map prediction time: {time_disp_map_end - time_disp_map_start} s')
|
343 |
LOGGER.info(f'Predicted image time: {time_pred_img_end - time_pred_img_start} s')
|
344 |
|
|
|
338 |
else:
|
339 |
np.savez_compressed(os.path.join(os.path.join(args.outputdir, 'debug'), 'displacement_map.npz'), disp_map)
|
340 |
|
341 |
+
LOGGER.info(f'Predicted image and displacement map saved in: '.format(args.outputdir))
|
342 |
LOGGER.info(f'Displacement map prediction time: {time_disp_map_end - time_disp_map_start} s')
|
343 |
LOGGER.info(f'Predicted image time: {time_pred_img_end - time_pred_img_start} s')
|
344 |
|
demo/src/compute.py
CHANGED
@@ -1,3 +1,6 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
|
|
|
|
|
|
|
1 |
+
import subprocess as sp
|
2 |
+
|
3 |
+
|
4 |
+
def run_model(fixed_path, moving_path, output_path):
|
5 |
+
sp.check_call(["ddmr", "--fixed", fixed_path, "--moving", moving_path, \
|
6 |
+
"-o", output_path, "-a", "B", "--model", "BL-NS", "--original-resolution"])
|
demo/src/gui.py
CHANGED
@@ -2,7 +2,7 @@ import os
|
|
2 |
|
3 |
import gradio as gr
|
4 |
|
5 |
-
from .
|
6 |
from .utils import load_ct_to_numpy
|
7 |
from .utils import load_pred_volume_to_numpy
|
8 |
from .utils import nifti_to_glb
|
@@ -16,7 +16,8 @@ class WebUI:
|
|
16 |
share: int = 1,
|
17 |
):
|
18 |
# global states
|
19 |
-
self.
|
|
|
20 |
self.pred_images = []
|
21 |
|
22 |
# @TODO: This should be dynamically set based on chosen volume size
|
@@ -26,21 +27,9 @@ class WebUI:
|
|
26 |
self.cwd = cwd
|
27 |
self.share = share
|
28 |
|
29 |
-
self.class_name = "meningioma" # default
|
30 |
self.class_names = {
|
31 |
-
"
|
32 |
-
"
|
33 |
-
"metastasis": "MRI_Metastasis",
|
34 |
-
"high-grade": "MRI_GBM",
|
35 |
-
"brain": "MRI_Brain",
|
36 |
-
}
|
37 |
-
|
38 |
-
self.result_names = {
|
39 |
-
"meningioma": "Tumor",
|
40 |
-
"low-grade": "Tumor",
|
41 |
-
"metastasis": "Tumor",
|
42 |
-
"high-grade": "Tumor",
|
43 |
-
"brain": "Brain",
|
44 |
}
|
45 |
|
46 |
# define widgets not to be rendered immediantly, but later on
|
@@ -112,8 +101,7 @@ class WebUI:
|
|
112 |
model_selector = gr.Dropdown(
|
113 |
list(self.class_names.keys()),
|
114 |
label="Task",
|
115 |
-
info="Which task to perform
|
116 |
-
"each brain tumor type and brain extraction",
|
117 |
multiselect=False,
|
118 |
size="sm",
|
119 |
)
|
@@ -135,8 +123,8 @@ class WebUI:
|
|
135 |
with gr.Row():
|
136 |
gr.Examples(
|
137 |
examples=[
|
138 |
-
os.path.join(self.cwd, "
|
139 |
-
os.path.join(self.cwd, "
|
140 |
],
|
141 |
inputs=file_output,
|
142 |
outputs=file_output,
|
|
|
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
|
|
|
16 |
share: int = 1,
|
17 |
):
|
18 |
# global states
|
19 |
+
self.fixed_images = []
|
20 |
+
self.moving_images = []
|
21 |
self.pred_images = []
|
22 |
|
23 |
# @TODO: This should be dynamically set based on chosen volume size
|
|
|
27 |
self.cwd = cwd
|
28 |
self.share = share
|
29 |
|
|
|
30 |
self.class_names = {
|
31 |
+
"B": "Brain",
|
32 |
+
"L": "Liver"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
}
|
34 |
|
35 |
# define widgets not to be rendered immediantly, but later on
|
|
|
101 |
model_selector = gr.Dropdown(
|
102 |
list(self.class_names.keys()),
|
103 |
label="Task",
|
104 |
+
info="Which task to perform registration for",
|
|
|
105 |
multiselect=False,
|
106 |
size="sm",
|
107 |
)
|
|
|
123 |
with gr.Row():
|
124 |
gr.Examples(
|
125 |
examples=[
|
126 |
+
os.path.join(self.cwd, "ixi_image.nii.gz"),
|
127 |
+
os.path.join(self.cwd, "ixi_image2.nii.gz"),
|
128 |
],
|
129 |
inputs=file_output,
|
130 |
outputs=file_output,
|