@@ -181,17 +181,20 @@ def _run_interface(self, runtime):
181181 )
182182
183183 # Recenter the fieldmap
184+ center = 0
184185 if self .inputs .recenter == "mode" :
185186 from scipy .stats import mode
186187
187188 # Handle pre- and post-1.9 mode behavior.
188189 # squeeze can be dropped when the minimum version reaches 1.9
189190 # Will become: data -= mode(data[mask], keepdims=False).mode
190- data - = np .squeeze (mode (data [mask ]).mode )
191+ center = np .squeeze (mode (data [mask ]).mode )
191192 elif self .inputs .recenter == "median" :
192- data - = np .median (data [mask ])
193+ center = np .median (data [mask ])
193194 elif self .inputs .recenter == "mean" :
194- data -= np .mean (data [mask ])
195+ center = np .mean (data [mask ])
196+
197+ data -= center
195198
196199 # Calculate collocation matrix from (possibly resized) image and knot grids
197200 colmat = sparse_vstack (grid_bspline_weights (fmapnii , grid ) for grid in bs_grids ).T .tocsr ()
@@ -228,7 +231,7 @@ def _run_interface(self, runtime):
228231 if need_resize :
229232 fmapnii = nb .load (self .inputs .in_data )
230233 fmapnii = nb .as_closest_canonical (fmapnii )
231- data = fmapnii .get_fdata (dtype = "float32" )
234+ data = fmapnii .get_fdata (dtype = "float32" ) - center
232235 if masknii is not None :
233236 masknii = nb .load (self .inputs .in_mask )
234237 masknii = nb .as_closest_canonical (masknii )
0 commit comments