class_docstr: Random rotate and then crop the largest possible rectangle.
  Note that this will produce images of different shapes.
docstr: Args:
      max_deg, interp, step_deg: same as :class:`Rotation`
docstr_tok: ["Args",":","max_deg",",","interp",",","step_deg",":","same","as",":","class",":","`","Rotation","`"]
code: def __init__(self, max_deg, interp=cv2.INTER_LINEAR, step_deg=None):
      """
      Args:
          max_deg, interp, step_deg: same as :class:`Rotation`
      """
      assert step_deg is None or (
          max_deg == 180 and max_deg % step_deg == 0
      )
      super(RotationAndCropValid, self).__init__()
      self._init(locals())
  
imports: import math
  import numpy
  import cv2
  from .base import ImageAugmentor
  from .transform import WarpAffineTransform, CropTransform, TransformList
label_desc: Use image node_id 1 to create a new RotationAndCropValid object from inherited base classes: ImageAugmentor with example: obj = RotationAndCropValid(max_deg, interp, step_deg)