class_docstr: Apply image augmentors on several components, with shared augmentation parameters.
  
  Example:
  
      .. code-block:: python
  
          ds = MyDataFlow()   # produce [image(HWC), segmask(HW), keypoint(Nx2)]
          ds = AugmentImageComponents(
              ds, augs,
              index=(0,1), coords_index=(2,))
docstr: Args:
      ds (DataFlow): input DataFlow.
      augmentors (AugmentorList): a list of :class:`imgaug.ImageAugmentor` instance to be applied in order.
      index: tuple of indices of the image components.
      coords_index: tuple of indices of the coordinates components.
      copy, catch_exceptions: same as in :class:`AugmentImageComponent`
docstr_tok: ["Args",":","ds","(","DataFlow",")",":","input","DataFlow",".","augmentors","(","AugmentorList",")",":","a","list","of",":","class",":","`","imgaug.ImageAugmentor","`","instance","to","be","applied","in","order",".","index",":","tuple","of","indices","of","the","image","components",".","coords_index",":","tuple","of","indices","of","the","coordinates","components",".","copy",",","catch_exceptions",":","same","as","in",":","class",":","`","AugmentImageComponent","`"]
code: def __init__(
      self,
      ds,
      augmentors,
      index=(0, 1),
      coords_index=(),
      copy=True,
      catch_exceptions=False,
  ):
      """
      Args:
          ds (DataFlow): input DataFlow.
          augmentors (AugmentorList): a list of :class:`imgaug.ImageAugmentor` instance to be applied in order.
          index: tuple of indices of the image components.
          coords_index: tuple of indices of the coordinates components.
          copy, catch_exceptions: same as in :class:`AugmentImageComponent`
      """
      if isinstance(augmentors, AugmentorList):
          self.augs = augmentors
      else:
          self.augs = AugmentorList(augmentors)
      self.ds = ds
      self._exception_handler = ExceptionHandler(catch_exceptions)
      self._copy = copy
      self._index = index
      self._coords_index = coords_index
  
      super(AugmentImageComponents, self).__init__(ds, self._aug_mapper)
  
imports: import copy
  import numpy
  from contextlib import contextmanager
  from ..utils import logger
  from ..utils.argtools import shape2d
  from .base import RNGDataFlow
  from .common import MapData, MapDataComponent
label_desc: Use image node_id 1 to create a new AugmentImageComponents object from inherited base classes: MapData with example: obj = AugmentImageComponents(ds, augmentors, index, coords_index, copy, catch_exceptions)