docstr: Random crop and flip a patch of the image.
  
  Args:
      crop_ratio (float): The ratio of cropping.
      iter_num (int): Number of operations.
      min_area_ratio (float): Minimal area ratio between cropped patch
          and original image.
docstr_tok: ["Random","crop","and","flip","a","patch","of","the","image",".","Args",":","crop_ratio","(","float",")",":","The","ratio","of","cropping",".","iter_num","(","int",")",":","Number","of","operations",".","min_area_ratio","(","float",")",":","Minimal","area","ratio","between","cropped","patch","and","original","image","."]
code: def __init__(
      self,
      pad_ratio=0.1,
      crop_ratio=0.5,
      iter_num=1,
      min_area_ratio=0.2,
      **kwargs,
  ):
      """Random crop and flip a patch of the image.
  
      Args:
          crop_ratio (float): The ratio of cropping.
          iter_num (int): Number of operations.
          min_area_ratio (float): Minimal area ratio between cropped patch
              and original image.
      """
      assert isinstance(crop_ratio, float)
      assert isinstance(iter_num, int)
      assert isinstance(min_area_ratio, float)
  
      self.pad_ratio = pad_ratio
      self.epsilon = 1e-2
      self.crop_ratio = crop_ratio
      self.iter_num = iter_num
      self.min_area_ratio = min_area_ratio
  
imports: import numpy
  from PIL import Image, ImageDraw
  import cv2
  from shapely.geometry import Polygon
  import math
  from ppocr.utils.poly_nms import poly_intersection
label_desc: Use image node_id 1 to create a new RandomCropFlip object  with example: obj = RandomCropFlip(pad_ratio, crop_ratio, iter_num, min_area_ratio)