From ed6321025181fb9c8724f6ab0be3c4ff4e29a710 Mon Sep 17 00:00:00 2001 From: Stian Johnsen Date: Thu, 11 Apr 2019 10:44:05 +0100 Subject: [PATCH] Implemented background filling with user-specified value --- niftynet/application/regression_application.py | 3 ++- niftynet/application/segmentation_application.py | 3 ++- niftynet/engine/windows_aggregator_grid.py | 8 +++++++- niftynet/utilities/user_parameters_default.py | 6 ++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/niftynet/application/regression_application.py b/niftynet/application/regression_application.py index 82101ae0..9b6c5bca 100755 --- a/niftynet/application/regression_application.py +++ b/niftynet/application/regression_application.py @@ -203,7 +203,8 @@ def initialise_grid_aggregator(self): output_path=self.action_param.save_seg_dir, window_border=self.action_param.border, interp_order=self.action_param.output_interp_order, - postfix=self.action_param.output_postfix) + postfix=self.action_param.output_postfix, + fill_constant=self.action_param.fill_constant) def initialise_resize_aggregator(self): self.output_decoder = ResizeSamplesAggregator( diff --git a/niftynet/application/segmentation_application.py b/niftynet/application/segmentation_application.py index d2f3672a..cba5900c 100755 --- a/niftynet/application/segmentation_application.py +++ b/niftynet/application/segmentation_application.py @@ -237,7 +237,8 @@ def initialise_grid_aggregator(self): output_path=self.action_param.save_seg_dir, window_border=self.action_param.border, interp_order=self.action_param.output_interp_order, - postfix=self.action_param.output_postfix) + postfix=self.action_param.output_postfix, + fill_constant=self.action_param.fill_constant) def initialise_resize_aggregator(self): self.output_decoder = ResizeSamplesAggregator( diff --git a/niftynet/engine/windows_aggregator_grid.py b/niftynet/engine/windows_aggregator_grid.py index d26341c7..47db969c 100755 --- a/niftynet/engine/windows_aggregator_grid.py +++ b/niftynet/engine/windows_aggregator_grid.py @@ -28,7 +28,8 @@ def __init__(self, output_path=os.path.join('.', 'output'), window_border=(), interp_order=0, - postfix='_niftynet_out'): + postfix='_niftynet_out', + fill_constant=0.0): ImageWindowsAggregator.__init__( self, image_reader=image_reader, output_path=output_path) self.name = name @@ -36,6 +37,7 @@ def __init__(self, self.window_border = window_border self.output_interp_order = interp_order self.postfix = postfix + self.fill_constant = fill_constant def decode_batch(self, window, location): n_samples = location.shape[0] @@ -68,6 +70,10 @@ def _initialise_empty_image(self, image_id, n_channels, dtype=np.float): for layer in self.reader.preprocessors: if isinstance(layer, PadLayer): empty_image, _ = layer(empty_image) + + if self.fill_constant != 0.0: + empty_image[:] = self.fill_constant + return empty_image def _save_current_image(self): diff --git a/niftynet/utilities/user_parameters_default.py b/niftynet/utilities/user_parameters_default.py index 4f5c3dfe..649f00ff 100755 --- a/niftynet/utilities/user_parameters_default.py +++ b/niftynet/utilities/user_parameters_default.py @@ -148,6 +148,12 @@ def add_inference_args(parser): type=spatialnumarray, default=(0, 0, 0)) + parser.add_argument( + "--fill-constant", + help="Output fill value used fill borders of output images.", + type=float, + default=0.0) + return parser