OpenCV453
公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
cv::kinfu::KinFu クラスabstract

KinectFusion implementation [詳解]

#include <kinfu.hpp>

公開メンバ関数

virtual const Params & getParams () const =0
 Get current parameters
 
virtual CV_WRAP void render (OutputArray image) const =0
 Renders a volume into an image [詳解]
 
virtual CV_WRAP void render (OutputArray image, const Matx44f &cameraPose) const =0
 Renders a volume into an image [詳解]
 
virtual CV_WRAP void getCloud (OutputArray points, OutputArray normals) const =0
 Gets points and normals of current 3d mesh [詳解]
 
virtual CV_WRAP void getPoints (OutputArray points) const =0
 Gets points of current 3d mesh [詳解]
 
virtual CV_WRAP void getNormals (InputArray points, OutputArray normals) const =0
 Calculates normals for given points [詳解]
 
virtual CV_WRAP void reset ()=0
 Resets the algorithm [詳解]
 
virtual const Affine3f getPose () const =0
 Get current pose in voxel space
 
virtual CV_WRAP bool update (InputArray depth)=0
 Process next depth frame [詳解]
 

静的公開メンバ関数

static CV_WRAP Ptr< KinFu > create (const Ptr< Params > &_params)
 

詳解

KinectFusion implementation

This class implements a 3d reconstruction algorithm described in [kinectfusion] paper.

It takes a sequence of depth images taken from depth sensor (or any depth images source such as stereo camera matching algorithm or even raymarching renderer). The output can be obtained as a vector of points and their normals or can be Phong-rendered from given camera pose.

An internal representation of a model is a voxel cuboid that keeps TSDF values which are a sort of distances to the surface (for details read the [kinectfusion] article about TSDF). There is no interface to that representation yet.

KinFu uses OpenCL acceleration automatically if available. To enable or disable it explicitly use cv::setUseOptimized() or cv::ocl::setUseOpenCL().

This implementation is based on kinfu-remake.

Note that the KinectFusion algorithm was patented and its use may be restricted by the list of patents mentioned in README.md file in this module directory.

That's why you need to set the OPENCV_ENABLE_NONFREE option in CMake to use KinectFusion.

関数詳解

◆ getCloud()

virtual CV_WRAP void cv::kinfu::KinFu::getCloud ( OutputArray  points,
OutputArray  normals 
) const
pure virtual

Gets points and normals of current 3d mesh

The order of normals corresponds to order of points. The order of points is undefined.

引数
pointsvector of points which are 4-float vectors
normalsvector of normals which are 4-float vectors

◆ getNormals()

virtual CV_WRAP void cv::kinfu::KinFu::getNormals ( InputArray  points,
OutputArray  normals 
) const
pure virtual

Calculates normals for given points

引数
pointsinput vector of points which are 4-float vectors
normalsoutput vector of corresponding normals which are 4-float vectors

◆ getPoints()

virtual CV_WRAP void cv::kinfu::KinFu::getPoints ( OutputArray  points) const
pure virtual

Gets points of current 3d mesh

The order of points is undefined.

引数
pointsvector of points which are 4-float vectors

◆ render() [1/2]

virtual CV_WRAP void cv::kinfu::KinFu::render ( OutputArray  image) const
pure virtual

Renders a volume into an image

Renders a 0-surface of TSDF using Phong shading into a CV_8UC4 Mat. Light pose is fixed in KinFu params.

引数
imageresulting image

◆ render() [2/2]

virtual CV_WRAP void cv::kinfu::KinFu::render ( OutputArray  image,
const Matx44f &  cameraPose 
) const
pure virtual

Renders a volume into an image

Renders a 0-surface of TSDF using Phong shading into a CV_8UC4 Mat. Light pose is fixed in KinFu params.

引数
imageresulting image
cameraPosepose of camera to render from. If empty then render from current pose which is a last frame camera pose.

◆ reset()

virtual CV_WRAP void cv::kinfu::KinFu::reset ( )
pure virtual

Resets the algorithm

Clears current model and resets a pose.

◆ update()

virtual CV_WRAP bool cv::kinfu::KinFu::update ( InputArray  depth)
pure virtual

Process next depth frame

Integrates depth into voxel space with respect to its ICP-calculated pose. Input image is converted to CV_32F internally if has another type.

引数
depthone-channel image which size and depth scale is described in algorithm's parameters
戻り値
true if succeeded to align new frame with current scene, false if opposite

このクラス詳解は次のファイルから抽出されました: