code: def deproject_pixel(self, depth, pixel):
          
          if not isinstance(pixel, Point) and not pixel.dim == 2:
              raise ValueError('Must provide 2D Point object for pixel projection')
          if pixel.frame != self._frame:
              raise ValueError('Cannot deproject pixel in frame %s from camera with frame %s' %(pixel.frame, self._frame))
  
          point = np.r_[pixel.data, depth]
          point_3d = np.linalg.inv(self.S).dot(point - self.t)
          return Point(data=point_3d, frame=self._frame)
docs: Deprojects a single pixel with a given depth into a 3D point.
  
          Parameters
          ----------
          depth : float
              The depth value at the given pixel location.
  
          pixel : :obj:`autolab_core.Point`
              A 2D point representing the pixel's location in the camera image.
  
          Returns
          -------
          :obj:`autolab_core.Point`
              The projected 3D point.
  
          Raises
          ------
          ValueError
              If pixel is not a valid 2D Point in the same reference frame
              as the camera.