Class OdometryFrame


  • public class OdometryFrame
    extends java.lang.Object
    An object that keeps per-frame data for Odometry algorithms from user-provided images to algorithm-specific precalculated data. When not empty, it contains a depth image, a mask of valid pixels and a set of pyramids generated from that data. A BGR/Gray image and normals are optional. OdometryFrame is made to be used together with Odometry class to reuse precalculated data between Rt data calculations. A correct way to do that is to call Odometry::prepareFrames() on prev and next frames and then pass them to Odometry::compute() method.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected long nativeObj  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static OdometryFrame __fromPtr__​(long addr)  
      protected void finalize()  
      void getDepth​(Mat depth)
      Get the original user-provided depth image
      void getGrayImage​(Mat image)
      Get the gray image generated from the user-provided BGR/Gray image
      void getImage​(Mat image)
      Get the original user-provided BGR/Gray image
      void getMask​(Mat mask)
      Get the valid pixels mask generated for the ICP calculations intersected with the user-provided mask
      long getNativeObjAddr()  
      void getNormals​(Mat normals)
      Get the normals image either generated for the ICP calculations or user-provided
      void getProcessedDepth​(Mat depth)
      Get the depth image generated from the user-provided one after conversion, rescale or filtering for ICP algorithm needs
      void getPyramidAt​(Mat img, int pyrType, long level)
      Get the image generated for the ICP calculations from one of the pyramids specified by pyrType.
      int getPyramidLevels()
      Get the amount of levels in pyramids (all of them if not empty should have the same number of levels) or 0 if no pyramids were prepared yet
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • nativeObj

        protected final long nativeObj
    • Constructor Detail

      • OdometryFrame

        protected OdometryFrame​(long addr)
      • OdometryFrame

        public OdometryFrame​(Mat depth,
                             Mat image,
                             Mat mask,
                             Mat normals)
        Construct a new OdometryFrame object. All non-empty images should have the same size.
        Parameters:
        depth - A depth image, should be CV_8UC1
        image - An BGR or grayscale image (or noArray() if it's not required for used ICP algorithm). Should be CV_8UC3 or CV_8C4 if it's BGR image or CV_8UC1 if it's grayscale. If it's BGR then it's converted to grayscale image automatically.
        mask - A user-provided mask of valid pixels, should be CV_8UC1
        normals - A user-provided normals to the depth surface, should be CV_32FC4
      • OdometryFrame

        public OdometryFrame​(Mat depth,
                             Mat image,
                             Mat mask)
        Construct a new OdometryFrame object. All non-empty images should have the same size.
        Parameters:
        depth - A depth image, should be CV_8UC1
        image - An BGR or grayscale image (or noArray() if it's not required for used ICP algorithm). Should be CV_8UC3 or CV_8C4 if it's BGR image or CV_8UC1 if it's grayscale. If it's BGR then it's converted to grayscale image automatically.
        mask - A user-provided mask of valid pixels, should be CV_8UC1
      • OdometryFrame

        public OdometryFrame​(Mat depth,
                             Mat image)
        Construct a new OdometryFrame object. All non-empty images should have the same size.
        Parameters:
        depth - A depth image, should be CV_8UC1
        image - An BGR or grayscale image (or noArray() if it's not required for used ICP algorithm). Should be CV_8UC3 or CV_8C4 if it's BGR image or CV_8UC1 if it's grayscale. If it's BGR then it's converted to grayscale image automatically.
      • OdometryFrame

        public OdometryFrame​(Mat depth)
        Construct a new OdometryFrame object. All non-empty images should have the same size.
        Parameters:
        depth - A depth image, should be CV_8UC1 Should be CV_8UC3 or CV_8C4 if it's BGR image or CV_8UC1 if it's grayscale. If it's BGR then it's converted to grayscale image automatically.
      • OdometryFrame

        public OdometryFrame()
        Construct a new OdometryFrame object. All non-empty images should have the same size. Should be CV_8UC3 or CV_8C4 if it's BGR image or CV_8UC1 if it's grayscale. If it's BGR then it's converted to grayscale image automatically.
    • Method Detail

      • getNativeObjAddr

        public long getNativeObjAddr()
      • __fromPtr__

        public static OdometryFrame __fromPtr__​(long addr)
      • getImage

        public void getImage​(Mat image)
        Get the original user-provided BGR/Gray image
        Parameters:
        image - Output image
      • getGrayImage

        public void getGrayImage​(Mat image)
        Get the gray image generated from the user-provided BGR/Gray image
        Parameters:
        image - Output image
      • getDepth

        public void getDepth​(Mat depth)
        Get the original user-provided depth image
        Parameters:
        depth - Output image
      • getProcessedDepth

        public void getProcessedDepth​(Mat depth)
        Get the depth image generated from the user-provided one after conversion, rescale or filtering for ICP algorithm needs
        Parameters:
        depth - Output image
      • getMask

        public void getMask​(Mat mask)
        Get the valid pixels mask generated for the ICP calculations intersected with the user-provided mask
        Parameters:
        mask - Output image
      • getNormals

        public void getNormals​(Mat normals)
        Get the normals image either generated for the ICP calculations or user-provided
        Parameters:
        normals - Output image
      • getPyramidLevels

        public int getPyramidLevels()
        Get the amount of levels in pyramids (all of them if not empty should have the same number of levels) or 0 if no pyramids were prepared yet
        Returns:
        automatically generated
      • getPyramidAt

        public void getPyramidAt​(Mat img,
                                 int pyrType,
                                 long level)
        Get the image generated for the ICP calculations from one of the pyramids specified by pyrType. Returns empty image if the pyramid is empty or there's no such pyramid level
        Parameters:
        img - Output image
        pyrType - Type of pyramid
        level - Level in the pyramid
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable