class_docstr: Rotate the input by an angle selected randomly from the uniform distribution.
  
  Args:
      limit ((int, int) or int): range from which a random angle is picked. If limit is a single int
          an angle is picked from (-limit, limit). Default: (-90, 90)
      interpolation (OpenCV flag): flag that is used to specify the interpolation algorithm. Should be one of:
          cv2.INTER_NEAREST, cv2.INTER_LINEAR, cv2.INTER_CUBIC, cv2.INTER_AREA, cv2.INTER_LANCZOS4.
          Default: cv2.INTER_LINEAR.
      border_mode (OpenCV flag): flag that is used to specify the pixel extrapolation method. Should be one of:
          cv2.BORDER_CONSTANT, cv2.BORDER_REPLICATE, cv2.BORDER_REFLECT, cv2.BORDER_WRAP, cv2.BORDER_REFLECT_101.
          Default: cv2.BORDER_REFLECT_101
      value (int, float, list of ints, list of float): padding value if border_mode is cv2.BORDER_CONSTANT.
      mask_value (int, float,
                  list of ints,
                  list of float): padding value if border_mode is cv2.BORDER_CONSTANT applied for masks.
      rotate_method (str): rotation method used for the bounding boxes. Should be one of "largest_box" or "ellipse".
          Default: "largest_box"
      crop_border (bool): If True would make a largest possible crop within rotated image
      p (float): probability of applying the transform. Default: 0.5.
  
  Targets:
      image, mask, bboxes, keypoints
  
  Image types:
      uint8, float32
code: def apply(
      self,
      img,
      angle=0,
      interpolation=cv2.INTER_LINEAR,
      x_min=None,
      x_max=None,
      y_min=None,
      y_max=None,
      **params,
  ):
      img_out = F.rotate(
          img, angle, interpolation, self.border_mode, self.value
      )
      if self.crop_border:
          img_out = FCrops.crop(img_out, x_min, y_min, x_max, y_max)
      return img_out
  
imports: import math
  import random
  from typing import Any, Dict, List, Optional, Sequence, Tuple, Union
  import cv2
  import numpy
  from ...core.transforms_interface import BoxInternalType, DualTransform, FillValueType, KeypointInternalType, to_tuple
  from ..crops import functional
  from .None import functional
label_desc: Use image node_id 2 for calling the Rotate obj's underlying member method code with example usage: obj.apply(img, angle, interpolation, x_min, x_max, y_min, y_max) and returns: img_out