Loading...
Searching...
No Matches
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:

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 |
![]() | |
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 |
virtual cv::Mat | getCameraMatrix () const =0 |
virtual int | getTransformType () const =0 |
virtual Size | prepareFrameCache (Ptr< OdometryFrame > &frame, int cacheType) const |
virtual void | setCameraMatrix (const cv::Mat &val)=0 |
virtual void | setTransformType (int val)=0 |
![]() | |
Algorithm () | |
virtual | ~Algorithm () |
virtual void | clear () |
Clears the algorithm state. | |
virtual bool | empty () const |
Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. | |
virtual String | getDefaultName () const |
virtual void | read (const FileNode &fn) |
Reads algorithm parameters from a file storage. | |
virtual void | save (const String &filename) const |
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
virtual void | write (FileStorage &fs) const |
Stores algorithm parameters in a file storage. | |
void | write (FileStorage &fs, const String &name) const |
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 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 () |
![]() | |
template<typename _Tp > | |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
Loads algorithm from the file. | |
template<typename _Tp > | |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
Loads algorithm from a String. | |
template<typename _Tp > | |
static Ptr< _Tp > | read (const FileNode &fn) |
Reads algorithm from the file node. | |
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 |
virtual void | checkParams () const =0 |
virtual bool | computeImpl (const Ptr< OdometryFrame > &srcFrame, const Ptr< OdometryFrame > &dstFrame, OutputArray Rt, const Mat &initRt) const =0 |
![]() | |
void | writeFormat (FileStorage &fs) const |
Protected Attributes | |
float | angleThreshold |
Mat | cameraMatrix |
Mat | iterCounts |
int | kernelSize |
float | maxDistDiff |
float | sigmaDepth |
float | sigmaSpatial |
Additional Inherited Members | |
![]() | |
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()
|
protectedvirtual |
Implements cv::rgbd::Odometry.
◆ computeImpl()
|
protectedvirtual |
Implements cv::rgbd::Odometry.
◆ create()
|
static |
◆ getAngleThreshold()
|
inline |
◆ getCameraMatrix()
|
inlinevirtual |
- See also
- setCameraMatrix
Implements cv::rgbd::Odometry.
◆ getIterationCounts()
|
inline |
◆ getKernelSize()
|
inline |
◆ getMaxDistDiff()
|
inline |
◆ getSigmaDepth()
|
inline |
◆ getSigmaSpatial()
|
inline |
◆ getTransformType()
|
inlinevirtual |
- See also
- setTransformType
Implements cv::rgbd::Odometry.
◆ prepareFrameCache()
|
virtual |
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()
|
inline |
◆ setCameraMatrix()
|
inlinevirtual |
- See also
- getCameraMatrix
Implements cv::rgbd::Odometry.
◆ setIterationCounts()
|
inline |
◆ setKernelSize()
|
inline |
◆ setMaxDistDiff()
|
inline |
◆ setSigmaDepth()
|
inline |
◆ setSigmaSpatial()
|
inline |
◆ setTransformType()
|
inlinevirtual |
- See also
- getTransformType
Implements cv::rgbd::Odometry.
Member Data Documentation
◆ angleThreshold
|
protected |
◆ cameraMatrix
|
protected |
◆ iterCounts
|
protected |
◆ kernelSize
|
protected |
◆ maxDistDiff
|
protected |
◆ sigmaDepth
|
protected |
◆ sigmaSpatial
|
protected |
The documentation for this class was generated from the following file:
- opencv2/rgbd/depth.hpp