code: def fliplr(arr):
      """Flip an image-like array horizontally.
  
      **Supported dtypes**:
  
          * ``uint8``: yes; fully tested
          * ``uint16``: yes; fully tested
          * ``uint32``: yes; fully tested
          * ``uint64``: yes; fully tested
          * ``int8``: yes; fully tested
          * ``int16``: yes; fully tested
          * ``int32``: yes; fully tested
          * ``int64``: yes; fully tested
          * ``float16``: yes; fully tested
          * ``float32``: yes; fully tested
          * ``float64``: yes; fully tested
          * ``float128``: yes; fully tested
          * ``bool``: yes; fully tested
  
      Parameters
      ----------
      arr : ndarray
          A 2D/3D `(H, W, [C])` image array.
  
      Returns
      -------
      ndarray
          Horizontally flipped array.
  
      Examples
      --------
      >>> import numpy as np
      >>> import imgaug.augmenters.flip as flip
      >>> arr = np.arange(16).reshape((4, 4))
      >>> arr_flipped = flip.fliplr(arr)
  
      Create a ``4x4`` array and flip it horizontally.
  
      """
      # we don't check here if #channels > 512, because the cv2 function also
      # kinda works with that, it is very rare to happen and would induce an
      # additional check (with significant relative impact on runtime considering
      # flipping is already ultra fast)
      if arr.dtype in _FLIPLR_DTYPES_CV2:
          return _fliplr_cv2(arr)
      return _fliplr_sliced(arr)
  
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 1 for calling a global function with example usage: fliplr(arr) and returns: _fliplr_sliced, _fliplr_cv2