class_docstr: Apply a pyramidic mean shift filter to each image.
  
  See also :func:`blur_mean_shift_` for details.
  
  This augmenter expects input images of shape ``(H,W)`` or ``(H,W,1)``
  or ``(H,W,3)``.
  
  .. note::
  
      This augmenter is quite slow.
  
  Added in 0.4.0.
  
  **Supported dtypes**:
  
  See :func:`~imgaug.augmenters.blur.blur_mean_shift_`.
  
  Parameters
  ----------
  spatial_radius : number or tuple of number or list of number or imgaug.parameters.StochasticParameter, optional
      Spatial radius for pixels that are assumed to be similar.
  
          * If ``number``: Exactly that value will be used for all images.
          * If ``tuple`` ``(a, b)``: A random value will be uniformly
            sampled per image from the interval ``[a, b)``.
          * If ``list``: A random value will be sampled from that ``list``
            per image.
          * If ``StochasticParameter``: The parameter will be queried once
            per batch for ``(N,)`` values with ``N`` denoting the number of
            images.
  
  color_radius : number or tuple of number or list of number or imgaug.parameters.StochasticParameter, optional
      Color radius for pixels that are assumed to be similar.
  
          * If ``number``: Exactly that value will be used for all images.
          * If ``tuple`` ``(a, b)``: A random value will be uniformly
            sampled per image from the interval ``[a, b)``.
          * If ``list``: A random value will be sampled from that ``list``
            per image.
          * If ``StochasticParameter``: The parameter will be queried once
            per batch for ``(N,)`` values with ``N`` denoting the number of
            images.
  
  seed : None or int or imgaug.random.RNG or numpy.random.Generator or numpy.random.BitGenerator or numpy.random.SeedSequence or numpy.random.RandomState, optional
      See :func:`~imgaug.augmenters.meta.Augmenter.__init__`.
  
  name : None or str, optional
      See :func:`~imgaug.augmenters.meta.Augmenter.__init__`.
  
  random_state : None or int or imgaug.random.RNG or numpy.random.Generator or numpy.random.BitGenerator or numpy.random.SeedSequence or numpy.random.RandomState, optional
      Old name for parameter `seed`.
      Its usage will not yet cause a deprecation warning,
      but it is still recommended to use `seed` now.
      Outdated since 0.4.0.
  
  deterministic : bool, optional
      Deprecated since 0.4.0.
      See method ``to_deterministic()`` for an alternative and for
      details about what the "deterministic mode" actually does.
  
  Examples
  --------
  >>> import imgaug.augmenters as iaa
  >>> aug = iaa.MeanShiftBlur()
  
  Create a mean shift blur augmenter.
class_docstr_tok: ["Apply","a","pyramidic","mean","shift","filter","to","each","image",".","See","also",":","func",":","`","blur_mean_shift_","`","for","details",".","This","augmenter","expects","input","images","of","shape","``","(","H",",","W",")","``","or","``","(","H",",","W,1",")","``","or","``","(","H",",","W,3",")","``",".","..","note",":",":","This","augmenter","is","quite","slow",".","Added","in","0.4.0",".","*","*","Supported","dtypes","*","*",":","See",":","func",":","`","~imgaug.augmenters.blur.blur_mean_shift_","`",".","Parameters","--","--","--","--","--","spatial_radius",":","number","or","tuple","of","number","or","list","of","number","or","imgaug.parameters.StochasticParameter",",","optional","Spatial","radius","for","pixels","that","are","assumed","to","be","similar",".","*","If","``","number","``",":","Exactly","that","value","will","be","used","for","all","images",".","*","If","``","tuple","``","``","(","a",",","b",")","``",":","A","random","value","will","be","uniformly","sampled","per","image","from","the","interval","``","[","a",",","b",")","``",".","*","If","``","list","``",":","A","random","value","will","be","sampled","from","that","``","list","``","per","image",".","*","If","``","StochasticParameter","``",":","The","parameter","will","be","queried","once","per","batch","for","``","(","N",",",")","``","values","with","``","N","``","denoting","the","number","of","images",".","color_radius",":","number","or","tuple","of","number","or","list","of","number","or","imgaug.parameters.StochasticParameter",",","optional","Color","radius","for","pixels","that","are","assumed","to","be","similar",".","*","If","``","number","``",":","Exactly","that","value","will","be","used","for","all","images",".","*","If","``","tuple","``","``","(","a",",","b",")","``",":","A","random","value","will","be","uniformly","sampled","per","image","from","the","interval","``","[","a",",","b",")","``",".","*","If","``","list","``",":","A","random","value","will","be","sampled","from","that","``","list","``","per","image",".","*","If","``","StochasticParameter","``",":","The","parameter","will","be","queried","once","per","batch","for","``","(","N",",",")","``","values","with","``","N","``","denoting","the","number","of","images",".","seed",":","None","or","int","or","imgaug.random.RNG","or","numpy.random.Generator","or","numpy.random.BitGenerator","or","numpy.random.SeedSequence","or","numpy.random.RandomState",",","optional","See",":","func",":","`","~imgaug.augmenters.meta.Augmenter.__init__","`",".","name",":","None","or","str",",","optional","See",":","func",":","`","~imgaug.augmenters.meta.Augmenter.__init__","`",".","random_state",":","None","or","int","or","imgaug.random.RNG","or","numpy.random.Generator","or","numpy.random.BitGenerator","or","numpy.random.SeedSequence","or","numpy.random.RandomState",",","optional","Old","name","for","parameter","`","seed","`",".","Its","usage","will","not","yet","cause","a","deprecation","warning",",","but","it","is","still","recommended","to","use","`","seed","`","now",".","Outdated","since","0.4.0.","deterministic",":","bool",",","optional","Deprecated","since","0.4.0",".","See","method","``","to_deterministic","(",")","``","for","an","alternative","and","for","details","about","what","the","``","deterministic","mode","''","actually","does",".","Examples","--","--","--","--",">",">",">","import","imgaug.augmenters","as","iaa",">",">",">","aug","=","iaa.MeanShiftBlur","(",")","Create","a","mean","shift","blur","augmenter","."]
code: def _augment_batch_(self, batch, random_state, parents, hooks):
      if batch.images is not None:
          samples = self._draw_samples(batch, random_state)
          for i, image in enumerate(batch.images):
              batch.images[i] = blur_mean_shift_(
                  image,
                  spatial_window_radius=samples[0][i],
                  color_window_radius=samples[1][i],
              )
  
      return batch
  
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 the MeanShiftBlur obj's underlying member method code with example usage: obj._augment_batch_(batch, random_state, parents, hooks) and returns: batch