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

大规模密集深度融合实现。 更多...

#include <opencv2/rgbd/large_kinfu.hpp>

cv::large_kinfu::LargeKinfu 的协作图

公共成员函数

virtual ~LargeKinfu ()=default
 
virtual void getCloud (OutputArray points, OutputArray normals) const =0
 
virtual void getNormals (InputArray points, OutputArray normals) const =0
 
virtual const ParamsgetParams () const =0
 
virtual void getPoints (OutputArray points) const =0
 
virtual Affine3f getPose () const =0
 
virtual void render (OutputArray image) const =0
 
virtual void render (OutputArray image, const Matx44f &cameraPose) const =0
 
virtual void reset ()=0
 
virtual bool update (InputArray depth)=0
 

静态公共成员函数

static Ptr< LargeKinfucreate (const Ptr< Params > &_params)
 

详细描述

大规模密集深度融合实现。

此类使用空间散列 TSDF 体积“子图”实现用于较大环境的 3D 重建算法。 它还运行周期性的姿势图优化,以最大限度地减少长序列跟踪中的漂移。 目前,该算法未实现重定位或闭环模块。 Glocker 等人在 ISMAR 2013 中描述的潜在词袋实现或 RGBD 重定位将被实现

它采用从深度传感器(或任何深度图像源,如立体相机匹配算法,甚至光线行进渲染器)拍摄的一系列深度图像。 输出可以作为点向量及其法线获得,或者可以从给定的相机姿势进行 Phong 渲染。

模型的内部表示是一个空间散列体素立方体,它存储 TSDF 值,这些值表示到最近表面的距离(有关详细信息,请阅读有关 TSDF 的 [136] 文章)。 目前还没有到该表示的接口。

对于姿势图优化,创建了 Volume 类的 Submap 抽象。 当当前视锥体和现有体积/模型之间的可见性重叠较低时,新的子图将添加到模型中。 同时跟踪多个子图,并定期创建和优化姿势图。

LargeKinfu 尚未使用任何 OpenCL 加速。 要显式启用或禁用它,请使用 cv::setUseOptimized()cv::ocl::setUseOpenCL()

此实现受到 Kintinuous、InfiniTAM 和其他 SOTA 算法的启发

您需要在 CMake 中设置 OPENCV_ENABLE_NONFREE 选项才能使用 KinectFusion。

构造函数 & 析构函数文档

◆ ~LargeKinfu()

virtual cv::large_kinfu::LargeKinfu::~LargeKinfu ( )
virtualdefault

成员函数文档

◆ create()

static Ptr< LargeKinfu > cv::large_kinfu::LargeKinfu::create ( const Ptr< Params > & _params)
static
Python
cv.large_kinfu.LargeKinfu.create(_params) -> retval
cv.large_kinfu.LargeKinfu_create(_params) -> retval

◆ getCloud()

virtual void cv::large_kinfu::LargeKinfu::getCloud ( OutputArray points,
OutputArray normals ) const
纯虚函数
Python
cv.large_kinfu.LargeKinfu.getCloud([, points[, normals]]) -> points, normals

◆ getNormals()

virtual void cv::large_kinfu::LargeKinfu::getNormals ( InputArray points,
OutputArray normals ) const
纯虚函数
Python
cv.large_kinfu.LargeKinfu.getNormals(points[, normals]) -> normals

◆ getParams()

virtual const Params & cv::large_kinfu::LargeKinfu::getParams ( ) const
纯虚函数

◆ getPoints()

virtual void cv::large_kinfu::LargeKinfu::getPoints ( OutputArray points) const
纯虚函数
Python
cv.large_kinfu.LargeKinfu.getPoints([, points]) -> points

◆ getPose()

virtual Affine3f cv::large_kinfu::LargeKinfu::getPose ( ) const
纯虚函数

◆ render() [1/2]

virtual void cv::large_kinfu::LargeKinfu::render ( OutputArray image) const
纯虚函数
Python
cv.large_kinfu.LargeKinfu.render([, image]) -> image
cv.large_kinfu.LargeKinfu.render(cameraPose[, image]) -> image

◆ render() [2/2]

virtual void cv::large_kinfu::LargeKinfu::render ( OutputArray image,
const Matx44f & cameraPose ) const
纯虚函数
Python
cv.large_kinfu.LargeKinfu.render([, image]) -> image
cv.large_kinfu.LargeKinfu.render(cameraPose[, image]) -> image

◆ reset()

virtual void cv::large_kinfu::LargeKinfu::reset ( )
纯虚函数
Python
cv.large_kinfu.LargeKinfu.reset() ->

◆ update()

virtual bool cv::large_kinfu::LargeKinfu::update ( InputArray 深度)
纯虚函数
Python
cv.large_kinfu.LargeKinfu.update(深度) -> retval

此类文档由以下文件生成