code: def refine_aseg(aseg, ball_size=4):
      
      # Read aseg data
      bmask = aseg.copy()
      bmask[bmask > 0] = 1
      bmask = bmask.astype(np.uint8)
  
      # Morphological operations
      selem = sim.ball(ball_size)
      newmask = sim.binary_closing(bmask, selem)
      newmask = binary_fill_holes(newmask.astype(np.uint8), selem).astype(np.uint8)
  
      return newmask.astype(np.uint8)
docs: First step to reconcile ANTs' and FreeSurfer's brain masks.
  
      Here, the ``aseg.mgz`` mask from FreeSurfer is refined in two
      steps, using binary morphological operations:
  
        1. With a binary closing operation the sulci are included
           into the mask. This results in a smoother brain mask
           that does not exclude deep, wide sulci.
  
        2. Fill any holes (typically, there could be a hole next to
           the pineal gland and the corpora quadrigemina if the great
           cerebral brain is segmented out).