class_docstr: Flip/mirror input images horizontally.
  
  .. note::
  
      The default value for the probability is ``0.0``.
      So, to flip *all* input images use ``Fliplr(1.0)`` and *not* just
      ``Fliplr()``.
  
  **Supported dtypes**:
  
  See :func:`~imgaug.augmenters.flip.fliplr`.
  
  Parameters
  ----------
  p : number or imgaug.parameters.StochasticParameter, optional
      Probability of each image to get flipped.
  
  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.Fliplr(0.5)
  
  Flip ``50`` percent of all images horizontally.
  
  
  >>> aug = iaa.Fliplr(1.0)
  
  Flip all images horizontally.
class_docstr_tok: ["Flip\/mirror","input","images","horizontally",".","..","note",":",":","The","default","value","for","the","probability","is","``","0.0","``",".","So",",","to","flip","*","all","*","input","images","use","``","Fliplr","(","1.0",")","``","and","*","not","*","just","``","Fliplr","(",")","``",".","*","*","Supported","dtypes","*","*",":","See",":","func",":","`","~imgaug.augmenters.flip.fliplr","`",".","Parameters","--","--","--","--","--","p",":","number","or","imgaug.parameters.StochasticParameter",",","optional","Probability","of","each","image","to","get","flipped",".","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.Fliplr","(","0.5",")","Flip","``","50","``","percent","of","all","images","horizontally",".",">",">",">","aug","=","iaa.Fliplr","(","1.0",")","Flip","all","images","horizontally","."]
code: def _augment_batch_(self, batch, random_state, parents, hooks):
      samples = self.p.draw_samples(
          (batch.nb_rows,), random_state=random_state
      )
      for i, sample in enumerate(samples):
          if sample >= 0.5:
              if batch.images is not None:
                  batch.images[i] = fliplr(batch.images[i])
  
              if batch.heatmaps is not None:
                  batch.heatmaps[i].arr_0to1 = fliplr(
                      batch.heatmaps[i].arr_0to1
                  )
  
              if batch.segmentation_maps is not None:
                  batch.segmentation_maps[i].arr = fliplr(
                      batch.segmentation_maps[i].arr
                  )
  
              if batch.keypoints is not None:
                  kpsoi = batch.keypoints[i]
                  width = kpsoi.shape[1]
                  for kp in kpsoi.keypoints:
                      kp.x = width - float(kp.x)
  
              if batch.bounding_boxes is not None:
                  bbsoi = batch.bounding_boxes[i]
                  width = bbsoi.shape[1]
                  for bb in bbsoi.bounding_boxes:
                      # after flip, x1 ends up right of x2
                      x1, x2 = bb.x1, bb.x2
                      bb.x1 = width - x2
                      bb.x2 = width - x1
  
              if batch.polygons is not None:
                  psoi = batch.polygons[i]
                  width = psoi.shape[1]
                  for poly in psoi.polygons:
                      # TODO maybe reverse the order of points afterwards?
                      #      the flip probably inverts them
                      poly.exterior[:, 0] = width - poly.exterior[:, 0]
  
              if batch.line_strings is not None:
                  lsoi = batch.line_strings[i]
                  width = lsoi.shape[1]
                  for ls in lsoi.line_strings:
                      # TODO maybe reverse the order of points afterwards?
                      #      the flip probably inverts them
                      ls.coords[:, 0] = width - ls.coords[:, 0]
  
      return batch
  
imports: from __future__ import print_function, division, absolute_import
  import numpy
  import cv2
  import six.moves
  from imgaug.imgaug import _normalize_cv2_input_arr_
  from .None import meta
  from ..None import parameters
  from ..None import dtypes
label_desc: Use image node_id 2 for calling the Fliplr obj's underlying member method code with example usage: obj._augment_batch_(batch, random_state, parents, hooks) and returns: batch