Interface DepthVisualOdometry<Vis extends boofcv.struct.image.ImageBase<Vis>,​Depth extends boofcv.struct.image.ImageGray<Depth>>

  • Type Parameters:
    Vis - Visual camera sensor
    Depth - Depth camera sensor
    All Superinterfaces:
    org.ddogleg.struct.VerbosePrint, VisualOdometry<georegression.struct.se.Se3_F64>
    All Known Implementing Classes:
    PyramidDirectColorDepth_to_DepthVisualOdometry, VisOdomPixelDepthPnP_to_DepthVisualOdometry

    public interface DepthVisualOdometry<Vis extends boofcv.struct.image.ImageBase<Vis>,​Depth extends boofcv.struct.image.ImageGray<Depth>>
    extends VisualOdometry<georegression.struct.se.Se3_F64>

    Visual odometry that estimate the camera's ego-motion in Euclidean space using a camera image and a depth image. Camera motion is estimated relative to the first frame in the left camera's point of view.

    The following is a set of assumptions and behaviors that all implementations of this interface must follow:

    • Visual and depth images must be captured simultaneously
    • Cameras must have a global shutter
    • Calibration parameters can be changed at any time, but must be set at least once before processing an image.
    • If process returns false then the motion could not be estimated and isFault() should be checked
    • If isFault() is true then the reset() should be called since it can't estimate motion any more
    • reset() puts back into its initial state

    Optional interfaces are provided for accessing internal features.

    • Method Detail

      • setCalibration

        void setCalibration​(boofcv.struct.calib.CameraPinholeBrown paramVisual,
                            boofcv.struct.distort.Point2Transform2_F32 visToDepth)
        Specifies the intrinsic parameters for the visual camera and the transform from visual to depth pixels.
        Parameters:
        paramVisual - Intrinsic parameters for visual camera
        visToDepth - Transform from visual camera pixels into depth camera pixels
      • process

        boolean process​(Vis visual,
                        Depth depth)
        Process the new image and update the motion estimate. The return value must be checked to see if the estimate was actually updated. If false is returned then VisualOdometry.isFault() also needs to be checked to see if the pose estimate has been reset.
        Parameters:
        visual - Image from visual camera
        depth - Image from depth sensor
        Returns:
        true if the motion estimate has been updated and false if not
      • getVisualType

        boofcv.struct.image.ImageType<Vis> getVisualType()
        Type of visual images it can process.
        Returns:
        The image type
      • getDepthType

        java.lang.Class<Depth> getDepthType()
        Type of depth images it can process.
        Returns:
        The image type