OpenCV  4.10.0
开源计算机视觉
正在加载...
正在搜索...
没有匹配项
公共成员函数 | 静态公共成员函数 | 所有成员列表
cv::large_kinfu::LargeKinfu 类参考abstract

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

#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 重置 ()=0
 
virtual bool update (InputArray depth)=0
 

静态公共成员函数

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

详细说明

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

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

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

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

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

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) -> 返回值
cv.large_kinfu.LargeKinfu_create(_params) -> 返回值

◆ 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  depth)
纯虚
Python
cv.large_kinfu.LargeKinfu.update(depth) -> 返回值

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