code: def _debug_img(data, affine, title, shape=None):
      # Uncomment these lines for debugging help with volume morph:
      #
      # import nibabel as nib
      # if sparse.issparse(data):
      #     data = data.toarray()
      # data = np.asarray(data)
      # if shape is not None:
      #     data = np.reshape(data, shape, order='F')
      # _slicers.append(nib.viewers.OrthoSlicer3D(
      #     data, affine, axes=None, title=title))
      # _slicers[-1].figs[0].suptitle(title, color='r')
      return
  
imports: import copy
  import os.path
  import warnings
  import numpy
  from scipy import sparse
  from .fixes import _get_img_fdata
  from .morph_map import read_morph_map
  from .parallel import parallel_func
  from .source_estimate import _BaseSourceEstimate, _BaseSurfaceSourceEstimate, _BaseVolSourceEstimate, _get_ico_tris
  from .source_space._source_space import SourceSpaces, _ensure_src, _grid_interp
  from .surface import _compute_nearest, mesh_edges, read_surface
  from .utils import BunchConst, ProgressBar, _check_fname, _check_option, _custom_lru_cache, _ensure_int, _import_h5io_funcs, _import_nibabel, _validate_type, check_version, fill_doc, get_subjects_dir, logger, use_log_level, verbose, warn
  from .utils import warn
label_desc: Use image node_id 3 for calling a global function with example usage: _debug_img(data, affine, title, shape) without return types