docstr: Takes points in eye coordinates (X, Y, Z) and convert them to NDC coordinates
  x_ndc = -fx_ndc * X / Z + px_ndc
  y_ndc = -fy_ndc * Y / Z + py_ndc
  z_ndc = 1 / Z
code: def eye_2_ndc(self, points_eye):
      """
      Takes points in eye coordinates (X, Y, Z) and convert them to NDC coordinates
      x_ndc = -fx_ndc * X / Z + px_ndc
      y_ndc = -fy_ndc * Y / Z + py_ndc
      z_ndc = 1 / Z
      """
  
      points_ndc = (np.ones(points_eye.shape).T / points_eye[:, 2]).T
      points_ndc[:, :2] *= -points_eye[:, :2] * self.focal_length_ndc
      points_ndc[:, :2] += self.principal_point_ndc
      return points_ndc
  
file_path: norfair/demos/3d_track/src/utils.py
imports: import cv2
  import numpy
  from norfair import Palette
label_desc: Use image node_id 4 for calling the PixelCoordinatesProjecter obj's underlying member method code with example usage: obj.eye_2_ndc(points_eye) and returns: points_ndc