OpenCV  4.8.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

#include <opencv2/rgbd/depth.hpp>

Inheritance diagram for cv::rgbd::FastICPOdometry:
cv::rgbd::Odometry cv::Algorithm

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 (FileStorage &fs, const String &name) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 

Static Public Member Functions

static Ptr< FastICPOdometrycreate (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< Odometrycreate (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:

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
cameraMatrixCamera matrix
maxDistDiffCorrespondences between pixels of two given frames will be filtered out if their depth difference is larger than maxDepthDiff
angleThresholdCorrespondence will be filtered out if an angle between their normals is bigger than threshold
sigmaDepthDepth sigma in meters for bilateral smooth
sigmaSpatialSpatial sigma in pixels for bilateral smooth
kernelSizeKernel size in pixels for bilateral smooth
iterCountsCount of iterations on each pyramid level

Member Function Documentation

◆ checkParams()

virtual void cv::rgbd::FastICPOdometry::checkParams ( ) const
protectedvirtual

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
protectedvirtual

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:
cv.rgbd.FastICPOdometry.create(cameraMatrix[, maxDistDiff[, angleThreshold[, sigmaDepth[, sigmaSpatial[, kernelSize[, iterCounts]]]]]]) -> retval
cv.rgbd.FastICPOdometry_create(cameraMatrix[, maxDistDiff[, angleThreshold[, sigmaDepth[, sigmaSpatial[, kernelSize[, iterCounts]]]]]]) -> retval

◆ getAngleThreshold()

float cv::rgbd::FastICPOdometry::getAngleThreshold ( ) const
inline
Python:
cv.rgbd.FastICPOdometry.getAngleThreshold() -> retval

◆ getCameraMatrix()

cv::Mat cv::rgbd::FastICPOdometry::getCameraMatrix ( ) const
inlinevirtual
Python:
cv.rgbd.FastICPOdometry.getCameraMatrix() -> retval
See also
setCameraMatrix

Implements cv::rgbd::Odometry.

◆ getIterationCounts()

cv::Mat cv::rgbd::FastICPOdometry::getIterationCounts ( ) const
inline
Python:
cv.rgbd.FastICPOdometry.getIterationCounts() -> retval

◆ getKernelSize()

int cv::rgbd::FastICPOdometry::getKernelSize ( ) const
inline
Python:
cv.rgbd.FastICPOdometry.getKernelSize() -> retval

◆ getMaxDistDiff()

double cv::rgbd::FastICPOdometry::getMaxDistDiff ( ) const
inline
Python:
cv.rgbd.FastICPOdometry.getMaxDistDiff() -> retval

◆ getSigmaDepth()

float cv::rgbd::FastICPOdometry::getSigmaDepth ( ) const
inline
Python:
cv.rgbd.FastICPOdometry.getSigmaDepth() -> retval

◆ getSigmaSpatial()

float cv::rgbd::FastICPOdometry::getSigmaSpatial ( ) const
inline
Python:
cv.rgbd.FastICPOdometry.getSigmaSpatial() -> retval

◆ getTransformType()

int cv::rgbd::FastICPOdometry::getTransformType ( ) const
inlinevirtual
Python:
cv.rgbd.FastICPOdometry.getTransformType() -> retval
See also
setTransformType

Implements cv::rgbd::Odometry.

◆ prepareFrameCache()

virtual Size cv::rgbd::FastICPOdometry::prepareFrameCache ( Ptr< OdometryFrame > &  frame,
int  cacheType 
) const
virtual
Python:
cv.rgbd.FastICPOdometry.prepareFrameCache(frame, cacheType) -> retval

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
frameThe odometry which will process the frame.
cacheTypeThe cache type: CACHE_SRC, CACHE_DST or CACHE_ALL.

Reimplemented from cv::rgbd::Odometry.

◆ setAngleThreshold()

void cv::rgbd::FastICPOdometry::setAngleThreshold ( float  f)
inline
Python:
cv.rgbd.FastICPOdometry.setAngleThreshold(f) -> None

◆ setCameraMatrix()

void cv::rgbd::FastICPOdometry::setCameraMatrix ( const cv::Mat val)
inlinevirtual
Python:
cv.rgbd.FastICPOdometry.setCameraMatrix(val) -> None

See also
getCameraMatrix

Implements cv::rgbd::Odometry.

◆ setIterationCounts()

void cv::rgbd::FastICPOdometry::setIterationCounts ( const cv::Mat val)
inline
Python:
cv.rgbd.FastICPOdometry.setIterationCounts(val) -> None

◆ setKernelSize()

void cv::rgbd::FastICPOdometry::setKernelSize ( int  f)
inline
Python:
cv.rgbd.FastICPOdometry.setKernelSize(f) -> None

◆ setMaxDistDiff()

void cv::rgbd::FastICPOdometry::setMaxDistDiff ( float  val)
inline
Python:
cv.rgbd.FastICPOdometry.setMaxDistDiff(val) -> None

◆ setSigmaDepth()

void cv::rgbd::FastICPOdometry::setSigmaDepth ( float  f)
inline
Python:
cv.rgbd.FastICPOdometry.setSigmaDepth(f) -> None

◆ setSigmaSpatial()

void cv::rgbd::FastICPOdometry::setSigmaSpatial ( float  f)
inline
Python:
cv.rgbd.FastICPOdometry.setSigmaSpatial(f) -> None

◆ setTransformType()

void cv::rgbd::FastICPOdometry::setTransformType ( int  val)
inlinevirtual
Python:
cv.rgbd.FastICPOdometry.setTransformType(val) -> None

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: