code: def fourier2poly(fourier_coeff, num_reconstr_points=50):
      """Inverse Fourier transform
      Args:
          fourier_coeff (ndarray): Fourier coefficients shaped (n, 2k+1),
              with n and k being candidates number and Fourier degree
              respectively.
          num_reconstr_points (int): Number of reconstructed polygon points.
      Returns:
          Polygons (ndarray): The reconstructed polygons shaped (n, n')
      """
  
      a = np.zeros(
          (len(fourier_coeff), num_reconstr_points), dtype="complex"
      )
      k = (len(fourier_coeff[0]) - 1) // 2
  
      a[:, 0 : k + 1] = fourier_coeff[:, k:]
      a[:, -k:] = fourier_coeff[:, :k]
  
      poly_complex = ifft(a) * num_reconstr_points
      polygon = np.zeros((len(fourier_coeff), num_reconstr_points, 2))
      polygon[:, :, 0] = poly_complex.real
      polygon[:, :, 1] = poly_complex.imag
      return polygon.astype("int32").reshape((len(fourier_coeff), -1))
  
file_path: PaddleOCR/ppocr/postprocess/fce_postprocess.py
imports: import cv2
  import paddle
  import numpy
  from numpy.fft import ifft
  from ppocr.utils.poly_nms import poly_nms, valid_boundary
label_desc: Use image node_id 2 for calling a global function with example usage: fourier2poly(fourier_coeff, num_reconstr_points) and returns: polygon