Class DepthSparse3D<T extends ImageGray<T>>

Direct Known Subclasses:
DepthSparse3D.F32, DepthSparse3D.I

public abstract class DepthSparse3D<T extends ImageGray<T>> extends Object
Computes the 3D coordinate a point in a visual camera given a depth image. The visual camera is a standard camera while the depth camera contains the depth (value along z-axis) of objects inside its field of view. The Kinect (structured light) and flash ladar (time of flight) are examples of sensors which could use this class. The z-axis is defined to be pointing straight out of the visual camera and both depth and visual cameras are assumed to be parallel with identical pointing vectors for the z-axis. A mapping is provided for converting between pixels in the visual camera and the depth camera. This mapping is assumed to be fixed with time.
  • Field Details

    • depthImage

      protected T extends ImageGray<T> depthImage
  • Constructor Details

    • DepthSparse3D

      protected DepthSparse3D(double depthScale)
      Configures parameters
      depthScale - Used to change units found in the depth image.
  • Method Details

    • configure

      public void configure(LensDistortionNarrowFOV model, PixelTransform<Point2D_F32> visualToDepth)
      Configures intrinsic camera parameters
      model - Model for narrow FOV cameras
      visualToDepth - Transform from visual to depth camera pixel coordinate systems.
    • setDepthImage

      public void setDepthImage(T depthImage)
      Sets the depth image. A reference is saved internally.
      depthImage - Image containing depth information.
    • process

      public boolean process(int x, int y)
      Given a pixel coordinate in the visual camera, compute the 3D coordinate of that point.
      x - x-coordinate of point in visual camera
      y - y-coordinate of point in visual camera
      true if a 3D point could be computed and false if not
    • getWorldPt

      public Point3D_F64 getWorldPt()
      The found 3D coordinate of the point in the visual camera coordinate system. Is only valid when process(int, int) returns true.
      3D coordinate of point in visual camera coordinate system
    • lookupDepth

      protected abstract double lookupDepth(int depthX, int depthY)
      Internal function which looks up the pixel's depth. Depth is defined as the value of the z-coordinate which is pointing out of the camera. If there is no depth measurement at this location return 0.
      depthX - x-coordinate of pixel in depth camera
      depthY - y-coordinate of pixel in depth camera
      depth at the specified coordinate