OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
cv::rgbd::FastICPOdometry 类参考

#include <opencv2/rgbd/depth.hpp>

cv::rgbd::FastICPOdometry 协作图

公共成员函数

 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
 
- 继承自 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
 
- 继承自 cv::Algorithm 的公共成员函数
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除算法状态。
 
virtual bool empty () const
 如果 算法 为空(例如,在刚开始时或读取不成功后),则返回 true。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 从文件存储中读取算法参数。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 将算法参数存储到文件存储中。
 
void write (FileStorage &fs, const String &name) const
 

静态公共成员函数

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 >())
 
- 继承自 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 ()
 
- 继承自 cv::Algorithm 的静态公共成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 

保护成员函数

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
 
- 继承自 cv::rgbd::Odometry 的保护成员函数
- 继承自 cv::Algorithm 的保护成员函数
void writeFormat (FileStorage &fs) const
 

保护属性

float angleThreshold
 
Mat cameraMatrix
 
Mat iterCounts
 
int kernelSize
 
float maxDistDiff
 
float sigmaDepth
 
float sigmaSpatial
 

附加继承成员

- 继承自 cv::rgbd::Odometry 的公共类型
枚举  {
  旋转 = 1 ,
  平移 = 2 ,
  刚体运动 = 4
}
 

详细描述

ICPOdometry 的一个更快版本,用于 KinectFusion 实现。部分差异列表如下:

  • 并行工作
  • 使用通用内部函数编写
  • 按角度过滤点
  • 插值点和法线
  • 不使用掩码或最小/最大深度过滤
  • 不使用随机子集点
  • 仅支持 Rt 变换类型
  • 仅支持 4 浮点向量作为输入类型

构造函数 & 析构函数文档

◆ 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 >() )

构造函数。

参数
cameraMatrix相机矩阵
maxDistDiff如果两个给定帧的像素之间的深度差大于 maxDepthDiff,则将过滤掉对应关系
angleThreshold如果对应关系法线之间的角度大于阈值,则将过滤掉该对应关系
sigmaDepth双边平滑的深度西格玛(以米为单位)
sigmaSpatial双边平滑的空间西格玛(以像素为单位)
kernelSize双边平滑的核大小(以像素为单位)
iterCounts每个金字塔级别的迭代次数

成员函数文档

◆ checkParams()

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

实现 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

实现 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
另请参见
setCameraMatrix

实现 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
另请参见
setTransformType

实现 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

为帧准备缓存。该函数检查预计算/传入的数据(如果数据不满足则抛出错误),并计算帧所需的所有剩余缓存数据。返回的大小是准备好的帧的分辨率。

参数
frame将处理帧的里程计。
cacheType缓存类型:CACHE_SRC、CACHE_DST 或 CACHE_ALL。

重新实现自 cv::rgbd::Odometry

◆ setAngleThreshold()

void cv::rgbd::FastICPOdometry::setAngleThreshold ( float ◆ hashtableResize())
inline
Python
cv.rgbd.FastICPOdometry.setAngleThreshold(◆ hashtableResize()) ->

◆ setCameraMatrix()

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

另请参见
getCameraMatrix

实现 cv::rgbd::Odometry

◆ setIterationCounts()

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

◆ setKernelSize()

void cv::rgbd::FastICPOdometry::setKernelSize ( int ◆ hashtableResize())
inline
Python
cv.rgbd.FastICPOdometry.setKernelSize(◆ hashtableResize()) ->

◆ setMaxDistDiff()

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

◆ setSigmaDepth()

void cv::rgbd::FastICPOdometry::setSigmaDepth ( float ◆ hashtableResize())
inline
Python
cv.rgbd.FastICPOdometry.setSigmaDepth(◆ hashtableResize()) ->

◆ setSigmaSpatial()

void cv::rgbd::FastICPOdometry::setSigmaSpatial ( float ◆ hashtableResize())
inline
Python
cv.rgbd.FastICPOdometry.setSigmaSpatial(◆ hashtableResize()) ->

◆ setTransformType()

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

另请参见
getTransformType

实现 cv::rgbd::Odometry

成员数据文档

◆ angleThreshold

float cv::rgbd::FastICPOdometry::angleThreshold
保护

◆ cameraMatrix

Mat cv::rgbd::FastICPOdometry::cameraMatrix
保护

◆ iterCounts

Mat cv::rgbd::FastICPOdometry::iterCounts
保护

◆ kernelSize

int cv::rgbd::FastICPOdometry::kernelSize
保护

◆ maxDistDiff

float cv::rgbd::FastICPOdometry::maxDistDiff
保护

◆ sigmaDepth

float cv::rgbd::FastICPOdometry::sigmaDepth
保护

◆ sigmaSpatial

float cv::rgbd::FastICPOdometry::sigmaSpatial
保护

此类的文档是从以下文件生成的