code: def _blur_gaussian_scipy_(image, sigma, ksize):
      dtype = image.dtype
  
      if dtype.kind == "b":
          # We convert bool to float32 here, because gaussian_filter()
          # seems to only return True when the underlying value is
          # approximately 1.0, not when it is above 0.5. So we do that
          # here manually. cv2 does not support bool for gaussian blur.
          image = image.astype(np.float32, copy=False)
      elif dtype == iadt._FLOAT16_DTYPE:
          image = image.astype(np.float32, copy=False)
  
      # gaussian_filter() has no ksize argument
      # TODO it does have a truncate argument that truncates at x
      #      standard deviations -- maybe can be used similarly to ksize
      if ksize is not None:
          ia.warn(
              "Requested 'scipy' backend or picked it automatically by "
              "backend='auto' n blur_gaussian_(), but also provided "
              "'ksize' argument, which is not understood by that "
              "backend and will be ignored."
          )
  
      # Note that while gaussian_filter can be applied to all channels
      # at the same time, that should not be done here, because then
      # the blurring would also happen across channels (e.g. red values
      # might be mixed with blue values in RGB)
      if image.ndim == 2:
          image[:, :] = ndimage.gaussian_filter(
              image[:, :], sigma, mode="mirror"
          )
      else:
          nb_channels = image.shape[2]
          for channel in sm.xrange(nb_channels):
              image[:, :, channel] = ndimage.gaussian_filter(
                  image[:, :, channel], sigma, mode="mirror"
              )
  
      if dtype.kind == "b":
          image = image > 0.5
      elif dtype != image.dtype:
          image = iadt.restore_dtypes_(image, dtype)
  
      return image
  
imports: from __future__ import print_function, division, absolute_import
  import numpy
  from scipy import ndimage
  import cv2
  import six.moves
  import imgaug
  from imgaug.imgaug import _normalize_cv2_input_arr_
  from .None import meta
  from .None import convolutional
  from ..None import parameters
  from ..None import dtypes
label_desc: Use image node_id 2 for calling a global function with example usage: _blur_gaussian_scipy_(image, sigma, ksize) and returns: image