OpenCV 4.11.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)
 

详细描述

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

此类实现了一种用于更大环境的 3D 重建算法,使用空间散列 TSDF 体积“子地图”。它还会定期运行姿态图优化,以最大限度地减少长时间序列跟踪中的漂移。目前,该算法未实现重新定位或闭环模块。可能会实现如 Glocker 等人在 ISMAR 2013 中所述的词袋实现或 RGBD 重新定位。

它接收从深度传感器(或任何深度图像源,例如立体相机匹配算法甚至光线追踪渲染器)获取的一系列深度图像。输出可以作为点及其法线的向量获得,也可以从给定的相机姿态进行 Phong 渲染。

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

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

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

此实现的灵感来自 Kintinuous、InfiniTAM 和其他 SOTA 算法。

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

构造函数和析构函数文档

◆ ~LargeKinfu()

virtual cv::large_kinfu::LargeKinfu::~LargeKinfu ( )
虚函数默认

成员函数文档

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

◆ update()

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

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