class_docstr: Grid Generator of RARE, which produces P_prime by multiplying T with P 
class_docstr_tok: ["Grid","Generator","of","RARE",",","which","produces","P_prime","by","multiplying","T","with","P"]
docstr: Return coordinates of fiducial points in I_r; C 
docstr_tok: ["Return","coordinates","of","fiducial","points","in","I_r",";","C"]
code: def _build_C(self, F):
      """Return coordinates of fiducial points in I_r; C"""
      ctrl_pts_x = np.linspace(-1.0, 1.0, int(F / 2))
      ctrl_pts_y_top = -1 * np.ones(int(F / 2))
      ctrl_pts_y_bottom = np.ones(int(F / 2))
      ctrl_pts_top = np.stack([ctrl_pts_x, ctrl_pts_y_top], axis=1)
      ctrl_pts_bottom = np.stack(
          [ctrl_pts_x, ctrl_pts_y_bottom], axis=1
      )
      C = np.concatenate([ctrl_pts_top, ctrl_pts_bottom], axis=0)
      return C
  
file_path: EasyOCR/trainer/modules/transformation.py
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 2 for calling the GridGenerator obj's underlying member method code with example usage: obj._build_C(F) and returns: C