docstr: Although I don't know, this seems a bit ineffecient. See if there's a better 3D hole-filler out there
  Or better yet, arbitrary dimension hole_filler.
docstr_tok: ["Although","I","do","n't","know",",","this","seems","a","bit","ineffecient",".","See","if","there","'s","a","better","3D","hole-filler","out","there","Or","better","yet",",","arbitrary","dimension","hole_filler","."]
code: def postprocess(self, input_data, raw_data=None, casename=None):
      """Although I don't know, this seems a bit ineffecient. See if there's a better 3D hole-filler out there
      Or better yet, arbitrary dimension hole_filler.
      """
  
      for batch in range(input_data.shape[0]):
          for channel in range(input_data.shape[-1]):
              for slice_idx in range(
                  input_data.shape[self.slice_dimension]
              ):
                  input_data[
                      batch, ..., slice_idx, channel
                  ] = binary_fill_holes(
                      input_data[batch, ..., slice_idx, channel]
                  ).astype(
                      np.float
                  )
  
      return input_data
  
imports: import numpy
  from skimage.measure import label
  from scipy.ndimage.morphology import binary_fill_holes
  from deepneuro.postprocessing.postprocessor import Postprocessor
  from deepneuro.utilities.util import add_parameter
label_desc: Use image node_id 2 for calling the FillHoles obj's underlying member method code with example usage: obj.postprocess(input_data, raw_data, casename) and returns: input_data