| OpenCV 4.3.0 Open Source Computer Vision

Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cv::rgbd::FastICPOdometry Class Reference
RGB-Depth Processing

`#include <opencv2/rgbd/depth.hpp>`

Inheritance diagram for cv::rgbd::FastICPOdometry:

## Public Member Functions
| FastICPOdometry ()
| FastICPOdometry (const Mat &cameraMatrix, float maxDistDiff=Odometry::DEFAULT_MAX_DEPTH_DIFF(), float angleThreshold=(float)(30. *CV_PI/180.), float sigmaDepth=0.04f, float sigmaSpatial=4.5f, int kernelSize=7, const std::vector< int > &iterCounts=std::vector< int >())
float | getAngleThreshold () const
cv::Mat | getCameraMatrix () const CV_OVERRIDE
cv::Mat | getIterationCounts () const
int | getKernelSize () const
double | getMaxDistDiff () const
float | getSigmaDepth () const
float | getSigmaSpatial () const
int | getTransformType () const CV_OVERRIDE
virtual Size | prepareFrameCache (Ptr< OdometryFrame > &frame, int cacheType) const CV_OVERRIDE
void | setAngleThreshold (float f)
void | setCameraMatrix (const cv::Mat &val) CV_OVERRIDE
void | setIterationCounts (const cv::Mat &val)
void | setKernelSize (int f)
void | setMaxDistDiff (float val)
void | setSigmaDepth (float f)
void | setSigmaSpatial (float f)
void | setTransformType (int val) CV_OVERRIDE
Public Member Functions inherited from cv::rgbd::Odometry
bool | compute (const Mat &srcImage, const Mat &srcDepth, const Mat &srcMask, const Mat &dstImage, const Mat &dstDepth, const Mat &dstMask, OutputArray Rt, const Mat &initRt=Mat()) const
bool | compute (Ptr< OdometryFrame > &srcFrame, Ptr< OdometryFrame > &dstFrame, OutputArray Rt, const Mat &initRt=Mat()) const
Public Member Functions inherited from cv::Algorithm
| Algorithm ()
virtual | ~Algorithm ()
virtual void | clear ()
| Clears the algorithm state. More...
virtual bool | empty () const
| Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More...
virtual String | getDefaultName () const
virtual void | read (const FileNode &fn)
| Reads algorithm parameters from a file storage. More...
virtual void | save (const String &filename) const
virtual void | write (FileStorage &fs) const
| Stores algorithm parameters in a file storage. More...
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const
| simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...

## Static Public Member Functions
static Ptr< FastICPOdometry > | create (const Mat &cameraMatrix, float maxDistDiff=Odometry::DEFAULT_MAX_DEPTH_DIFF(), float angleThreshold=(float)(30. *CV_PI/180.), float sigmaDepth=0.04f, float sigmaSpatial=4.5f, int kernelSize=7, const std::vector< int > &iterCounts=std::vector< int >())
Static Public Member Functions inherited from cv::rgbd::Odometry
static Ptr< Odometry > | create (const String &odometryType)
static float | DEFAULT_MAX_DEPTH ()
static float | DEFAULT_MAX_DEPTH_DIFF ()
static float | DEFAULT_MAX_POINTS_PART ()
static float | DEFAULT_MAX_ROTATION ()
static float | DEFAULT_MAX_TRANSLATION ()
static float | DEFAULT_MIN_DEPTH ()
Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tp > | load (const String &filename, const String &objname=String())
| Loads algorithm from the file. More...
template<typename _Tp >
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String())
| Loads algorithm from a String. More...
template<typename _Tp >
static Ptr< _Tp > | read (const FileNode &fn)
| Reads algorithm from the file node. More...

## Protected Member Functions
virtual void | checkParams () const CV_OVERRIDE
virtual bool | computeImpl (const Ptr< OdometryFrame > &srcFrame, const Ptr< OdometryFrame > &dstFrame, OutputArray Rt, const Mat &initRt) const CV_OVERRIDE
Protected Member Functions inherited from cv::Algorithm
void | writeFormat (FileStorage &fs) const

## Protected Attributes
float | angleThreshold
Mat | cameraMatrix
Mat | iterCounts
int | kernelSize
float | maxDistDiff
float | sigmaDepth
float | sigmaSpatial

## Additional Inherited Members
Public Types inherited from cv::rgbd::Odometry
enum | { ROTATION = 1, TRANSLATION = 2, RIGID_BODY_MOTION = 4 }

## Detailed Description

A faster version of ICPOdometry which is used in KinectFusion implementation Partial list of differences:

- Works in parallel
- Written in universal intrinsics
- Filters points by angle
- Interpolates points and normals
- Doesn't use masks or min/max depth filtering
- Doesn't use random subsets of points
- Supports only Rt transform type
- Supports only 4-float vectors as input type

## Constructor & Destructor Documentation

## ◆ FastICPOdometry() [1/2]

cv::rgbd::FastICPOdometry::FastICPOdometry | ( |  | ) |

## ◆ FastICPOdometry() [2/2]

cv::rgbd::FastICPOdometry::FastICPOdometry | ( | const Mat & | cameraMatrix,
|  | float | maxDistDiff = `Odometry::DEFAULT_MAX_DEPTH_DIFF()`,
|  | float | angleThreshold = `(float)(30. *CV_PI/180.)`,
|  | float | sigmaDepth = `0.04f`,
|  | float | sigmaSpatial = `4.5f`,
|  | int | kernelSize = `7`,
|  | const std::vector< int > & | iterCounts = `std::vector< int >()`
| ) |  |

Constructor.

Parameters

  cameraMatrix | Camera matrix
  maxDistDiff | Correspondences between pixels of two given frames will be filtered out if their depth difference is larger than maxDepthDiff
  angleThreshold | Correspondence will be filtered out if an angle between their normals is bigger than threshold
  sigmaDepth | Depth sigma in meters for bilateral smooth
  sigmaSpatial | Spatial sigma in pixels for bilateral smooth
  kernelSize | Kernel size in pixels for bilateral smooth
  iterCounts | Count of iterations on each pyramid level

## Member Function Documentation

## ◆ checkParams()

virtual void cv::rgbd::FastICPOdometry::checkParams | ( |  | ) | const
| protected virtual

Implements cv::rgbd::Odometry.

## ◆ computeImpl()

virtual bool cv::rgbd::FastICPOdometry::computeImpl | ( | const Ptr< OdometryFrame > & | srcFrame,
|  | const Ptr< OdometryFrame > & | dstFrame,
|  | OutputArray | Rt,
|  | const Mat & | initRt
| ) |  | const
| protected virtual

Implements cv::rgbd::Odometry.

## ◆ create()

static Ptr<FastICPOdometry> cv::rgbd::FastICPOdometry::create | ( | const Mat & | cameraMatrix,
|  | float | maxDistDiff = `Odometry::DEFAULT_MAX_DEPTH_DIFF()`,
|  | float | angleThreshold = `(float)(30. *CV_PI/180.)`,
|  | float | sigmaDepth = `0.04f`,
|  | float | sigmaSpatial = `4.5f`,
|  | int | kernelSize = `7`,
|  | const std::vector< int > & | iterCounts = `std::vector< int >()`
| ) |  |
| static

Python:
| retval | = | cv.rgbd.FastICPOdometry_create( | cameraMatrix[, maxDistDiff[, angleThreshold[, sigmaDepth[, sigmaSpatial[, kernelSize[, iterCounts]]]]]] | )

## ◆ getAngleThreshold()

float cv::rgbd::FastICPOdometry::getAngleThreshold | ( |  | ) | const
| inline

Python:
| retval | = | cv.rgbd_FastICPOdometry.getAngleThreshold( |  | )

## ◆ getCameraMatrix()

cv::Mat cv::rgbd::FastICPOdometry::getCameraMatrix | ( |  | ) | const
| inline virtual

Python:
| retval | = | cv.rgbd_FastICPOdometry.getCameraMatrix( |  | )

See also
  setCameraMatrix

Implements cv::rgbd::Odometry.

## ◆ getIterationCounts()

cv::Mat cv::rgbd::FastICPOdometry::getIterationCounts | ( |  | ) | const
| inline

Python:
| retval | = | cv.rgbd_FastICPOdometry.getIterationCounts( |  | )

## ◆ getKernelSize()

int cv::rgbd::FastICPOdometry::getKernelSize | ( |  | ) | const
| inline

Python:
| retval | = | cv.rgbd_FastICPOdometry.getKernelSize( |  | )

## ◆ getMaxDistDiff()

double cv::rgbd::FastICPOdometry::getMaxDistDiff | ( |  | ) | const
| inline

Python:
| retval | = | cv.rgbd_FastICPOdometry.getMaxDistDiff( |  | )

## ◆ getSigmaDepth()

float cv::rgbd::FastICPOdometry::getSigmaDepth | ( |  | ) | const
| inline

Python:
| retval | = | cv.rgbd_FastICPOdometry.getSigmaDepth( |  | )

## ◆ getSigmaSpatial()

float cv::rgbd::FastICPOdometry::getSigmaSpatial | ( |  | ) | const
| inline

Python:
| retval | = | cv.rgbd_FastICPOdometry.getSigmaSpatial( |  | )

## ◆ getTransformType()

int cv::rgbd::FastICPOdometry::getTransformType | ( |  | ) | const
| inline virtual

Python:
| retval | = | cv.rgbd_FastICPOdometry.getTransformType( |  | )

See also
  setTransformType

Implements cv::rgbd::Odometry.

## ◆ prepareFrameCache()

virtual Size cv::rgbd::FastICPOdometry::prepareFrameCache | ( | Ptr< OdometryFrame > & | frame,
|  | int | cacheType
| ) |  | const
| virtual

Python:
| retval | = | cv.rgbd_FastICPOdometry.prepareFrameCache( | frame, cacheType | )

Prepare a cache for the frame. The function checks the precomputed/passed data (throws the error if this data does not satisfy) and computes all remaining cache data needed for the frame. Returned size is a resolution of the prepared frame.

Parameters

  frame | The odometry which will process the frame.
  cacheType | The cache type: CACHE_SRC, CACHE_DST or CACHE_ALL.

Reimplemented from cv::rgbd::Odometry.

## ◆ setAngleThreshold()

void cv::rgbd::FastICPOdometry::setAngleThreshold | ( | float | f | ) |
| inline

Python:
| None | = | cv.rgbd_FastICPOdometry.setAngleThreshold( | f | )

## ◆ setCameraMatrix()

void cv::rgbd::FastICPOdometry::setCameraMatrix | ( | const cv::Mat & | val | ) |
| inline virtual

Python:
| None | = | cv.rgbd_FastICPOdometry.setCameraMatrix( | val | )

See also
  getCameraMatrix

Implements cv::rgbd::Odometry.

## ◆ setIterationCounts()

void cv::rgbd::FastICPOdometry::setIterationCounts | ( | const cv::Mat & | val | ) |
| inline

Python:
| None | = | cv.rgbd_FastICPOdometry.setIterationCounts( | val | )

## ◆ setKernelSize()

void cv::rgbd::FastICPOdometry::setKernelSize | ( | int | f | ) |
| inline

Python:
| None | = | cv.rgbd_FastICPOdometry.setKernelSize( | f | )

## ◆ setMaxDistDiff()

void cv::rgbd::FastICPOdometry::setMaxDistDiff | ( | float | val | ) |
| inline

Python:
| None | = | cv.rgbd_FastICPOdometry.setMaxDistDiff( | val | )

## ◆ setSigmaDepth()

void cv::rgbd::FastICPOdometry::setSigmaDepth | ( | float | f | ) |
| inline

Python:
| None | = | cv.rgbd_FastICPOdometry.setSigmaDepth( | f | )

## ◆ setSigmaSpatial()

void cv::rgbd::FastICPOdometry::setSigmaSpatial | ( | float | f | ) |
| inline

Python:
| None | = | cv.rgbd_FastICPOdometry.setSigmaSpatial( | f | )

## ◆ setTransformType()

void cv::rgbd::FastICPOdometry::setTransformType | ( | int | val | ) |
| inline virtual

Python:
| None | = | cv.rgbd_FastICPOdometry.setTransformType( | val | )

See also
  getTransformType

Implements cv::rgbd::Odometry.

## Member Data Documentation

## ◆ angleThreshold

float cv::rgbd::FastICPOdometry::angleThreshold
| protected

## ◆ cameraMatrix

Mat cv::rgbd::FastICPOdometry::cameraMatrix
| protected

## ◆ iterCounts

Mat cv::rgbd::FastICPOdometry::iterCounts
| protected

## ◆ kernelSize

int cv::rgbd::FastICPOdometry::kernelSize
| protected

## ◆ maxDistDiff

float cv::rgbd::FastICPOdometry::maxDistDiff
| protected

## ◆ sigmaDepth

float cv::rgbd::FastICPOdometry::sigmaDepth
| protected

## ◆ sigmaSpatial

float cv::rgbd::FastICPOdometry::sigmaSpatial
| protected

The documentation for this class was generated from the following file:

- opencv2/rgbd/depth.hpp