code: def draw_center_region_maps(
      self,
      top_line,
      bot_line,
      center_line,
      center_region_mask,
      top_height_map,
      bot_height_map,
      sin_map,
      cos_map,
      region_shrink_ratio,
  ):
      assert top_line.shape == bot_line.shape == center_line.shape
      assert (
          center_region_mask.shape
          == top_height_map.shape
          == bot_height_map.shape
          == sin_map.shape
          == cos_map.shape
      )
      assert isinstance(region_shrink_ratio, float)
  
      h, w = center_region_mask.shape
      for i in range(0, len(center_line) - 1):
          top_mid_point = (top_line[i] + top_line[i + 1]) / 2
          bot_mid_point = (bot_line[i] + bot_line[i + 1]) / 2
  
          sin_theta = self.vector_sin(top_mid_point - bot_mid_point)
          cos_theta = self.vector_cos(top_mid_point - bot_mid_point)
  
          tl = (
              center_line[i]
              + (top_line[i] - center_line[i]) * region_shrink_ratio
          )
          tr = (
              center_line[i + 1]
              + (top_line[i + 1] - center_line[i + 1])
              * region_shrink_ratio
          )
          br = (
              center_line[i + 1]
              + (bot_line[i + 1] - center_line[i + 1])
              * region_shrink_ratio
          )
          bl = (
              center_line[i]
              + (bot_line[i] - center_line[i]) * region_shrink_ratio
          )
          current_center_box = np.vstack([tl, tr, br, bl]).astype(
              np.int32
          )
  
          cv2.fillPoly(
              center_region_mask, [current_center_box], color=1
          )
          cv2.fillPoly(sin_map, [current_center_box], color=sin_theta)
          cv2.fillPoly(cos_map, [current_center_box], color=cos_theta)
  
          current_center_box[:, 0] = np.clip(
              current_center_box[:, 0], 0, w - 1
          )
          current_center_box[:, 1] = np.clip(
              current_center_box[:, 1], 0, h - 1
          )
          min_coord = np.min(current_center_box, axis=0).astype(
              np.int32
          )
          max_coord = np.max(current_center_box, axis=0).astype(
              np.int32
          )
          current_center_box = current_center_box - min_coord
          box_sz = max_coord - min_coord + 1
  
          center_box_mask = np.zeros(
              (box_sz[1], box_sz[0]), dtype=np.uint8
          )
          cv2.fillPoly(center_box_mask, [current_center_box], color=1)
  
          inds = np.argwhere(center_box_mask > 0)
          inds = inds + (min_coord[1], min_coord[0])
          inds_xy = np.fliplr(inds)
          top_height_map[
              (inds[:, 0], inds[:, 1])
          ] = self.dist_point2line(
              inds_xy, (top_line[i], top_line[i + 1])
          )
          bot_height_map[
              (inds[:, 0], inds[:, 1])
          ] = self.dist_point2line(
              inds_xy, (bot_line[i], bot_line[i + 1])
          )
  
imports: import cv2
  import numpy
  from ppocr.utils.utility import check_install
  from numpy.linalg import norm
label_desc: Use image node_id 12 for calling the DRRGTargets obj's underlying member method code with example usage: obj.draw_center_region_maps(top_line, bot_line, center_line, center_region_mask, top_height_map, bot_height_map, sin_map, cos_map, region_shrink_ratio) without return types