code: def get_view_frustum(depth_im, cam_intr, cam_pose):
      """Get corners of 3D camera view frustum of depth image"""
      im_h = depth_im.shape[0]
      im_w = depth_im.shape[1]
      max_depth = np.max(depth_im)
      view_frust_pts = np.array(
          [
              (np.array([0, 0, 0, im_w, im_w]) - cam_intr[0, 2])
              * np.array(
                  [0, max_depth, max_depth, max_depth, max_depth]
              )
              / cam_intr[0, 0],
              (np.array([0, 0, im_h, 0, im_h]) - cam_intr[1, 2])
              * np.array(
                  [0, max_depth, max_depth, max_depth, max_depth]
              )
              / cam_intr[1, 1],
              np.array([0, max_depth, max_depth, max_depth, max_depth]),
          ]
      )
      view_frust_pts = rigid_transform(view_frust_pts.T, cam_pose).T
      return view_frust_pts
  
file_path: torch-points3d/torch_points3d/datasets/registration/fusion.py
imports: import numpy
  from numba import njit, prange
  from skimage import measure
label_desc: Use image node_id 2 for calling a global function with example usage: get_view_frustum(depth_im, cam_intr, cam_pose) and returns: view_frust_pts