Class cv::colored_kinfu::ColoredKinFu#

KinectFusion implementation. View details

Collaboration diagram for cv::colored_kinfu::ColoredKinFu:

Detailed Description#

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.

Constructor & Destructor Documentation#

~ColoredKinFu()#

cv::colored_kinfu::ColoredKinFu::~ColoredKinFu()

Member Function Documentation#

create()#

static Ptr< ColoredKinFu > cv::colored_kinfu::ColoredKinFu::create(const Ptr< Params > & _params)

getCloud()#

void cv::colored_kinfu::ColoredKinFu::getCloud(
OutputArray points,
OutputArray normals )

Gets points and normals of current 3d mesh.

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

Parameters

  • points — vector of points which are 4-float vectors

  • normals — vector of normals which are 4-float vectors

getNormals()#

void cv::colored_kinfu::ColoredKinFu::getNormals(
InputArray points,
OutputArray normals )

Calculates normals for given points.

Parameters

  • points — input vector of points which are 4-float vectors

  • normals — output vector of corresponding normals which are 4-float vectors

getParams()#

const Params & cv::colored_kinfu::ColoredKinFu::getParams()

Get current parameters.

getPoints()#

void cv::colored_kinfu::ColoredKinFu::getPoints(OutputArray points)

Gets points of current 3d mesh.

The order of points is undefined.

Parameters

  • points — vector of points which are 4-float vectors

getPose()#

Affine3f cv::colored_kinfu::ColoredKinFu::getPose()

Get current pose in voxel space.

render()#

void cv::colored_kinfu::ColoredKinFu::render(OutputArray image)

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.

Parameters

  • image — resulting image

render()#

void cv::colored_kinfu::ColoredKinFu::render(
OutputArray image,
const Matx44f & cameraPose )

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.

Parameters

  • image — resulting image

  • cameraPose — pose of camera to render from. If empty then render from current pose which is a last frame camera pose.

reset()#

void cv::colored_kinfu::ColoredKinFu::reset()

Resets the algorithm.

Clears current model and resets a pose.

update()#

bool cv::colored_kinfu::ColoredKinFu::update(
InputArray depth,
InputArray rgb )

Process next depth frame.

Parameters

  • depth — input Mat of depth frame

  • rgb — input Mat of rgb (colored) frame

Returns

true if succeeded to align new frame with current scene, false if opposite

Source file#

The documentation for this class was generated from the following file: