| OpenCV 5.0.0alpha Open Source Computer Vision

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
cv::Octree Class Reference
3D vision functionality

Octree for 3D vision. More...

`#include <opencv2/3d.hpp>`

Collaboration diagram for cv::Octree:

## Public Member Functions
| Octree ()
| Default constructor.
| ~Octree ()
| Default destructor.
void | clear ()
| Reset all octree parameter.
bool | deletePoint (const Point3f &point)
| Delete a given point from the Octree.
bool | empty () const
| returns true if the rootnode is NULL.
void | getPointCloudByOctree (OutputArray restoredPointCloud, OutputArray restoredColor=noArray())
| restore point cloud data from Octree.
bool | insertPoint (const Point3f &point, const Point3f &color={ })
| Insert a point data with color to a OctreeNode.
bool | isPointInBound (const Point3f &point) const
| Determine whether the point is within the space range of the specific cube.
void | KNNSearch (const Point3f &query, const int K, OutputArray points, OutputArray colors, OutputArray squareDists) const
| K Nearest Neighbor Search in Octree.
void | KNNSearch (const Point3f &query, const int K, OutputArray points, OutputArray squareDists=noArray()) const
| K Nearest Neighbor Search in Octree.
int | radiusNNSearch (const Point3f &query, float radius, OutputArray points, OutputArray colors, OutputArray squareDists) const
| Radius Nearest Neighbor Search in Octree.
int | radiusNNSearch (const Point3f &query, float radius, OutputArray points, OutputArray squareDists=noArray()) const
| Radius Nearest Neighbor Search in Octree.

## Static Public Member Functions
static Ptr< Octree > | createWithDepth (int maxDepth, double size, const Point3f &origin={ }, bool withColors=false)
| Creates an empty Octree with given maximum depth.
static Ptr< Octree > | createWithDepth (int maxDepth, InputArray pointCloud, InputArray colors=noArray())
| Create an Octree from the PointCloud data with the specific maxDepth.
static Ptr< Octree > | createWithResolution (double resolution, double size, const Point3f &origin={ }, bool withColors=false)
| Creates an empty Octree with given resolution.
static Ptr< Octree > | createWithResolution (double resolution, InputArray pointCloud, InputArray colors=noArray())
| Create an Octree from the PointCloud data with the specific resolution.

## Protected Attributes
Ptr< Impl > | p

## Detailed Description

Octree for 3D vision.

In 3D vision filed, the Octree is used to process and accelerate the pointcloud data. The class Octree represents the Octree data structure. Each Octree will have a fixed depth. The depth of Octree refers to the distance from the root node to the leaf node.All OctreeNodes will not exceed this depth.Increasing the depth will increase the amount of calculation exponentially. And the small number of depth refers low resolution of Octree. Each node contains 8 children, which are used to divide the space cube into eight parts. Each octree node represents a cube. And these eight children will have a fixed order, the order is described as follows:

For illustration, assume,

rootNode: origin == (0, 0, 0), size == 2

Then,

children[0]: origin == (0, 0, 0), size == 1

children[1]: origin == (1, 0, 0), size == 1, along X-axis next to child 0

children[2]: origin == (0, 1, 0), size == 1, along Y-axis next to child 0

children[3]: origin == (1, 1, 0), size == 1, in X-Y plane

children[4]: origin == (0, 0, 1), size == 1, along Z-axis next to child 0

children[5]: origin == (1, 0, 1), size == 1, in X-Z plane

children[6]: origin == (0, 1, 1), size == 1, in Y-Z plane

children[7]: origin == (1, 1, 1), size == 1, furthest from child 0

## Constructor & Destructor Documentation

## ◆ Octree()

cv::Octree::Octree | ( |  | ) |

Default constructor.

## ◆ ~Octree()

cv::Octree::~Octree | ( |  | ) |

Default destructor.

## Member Function Documentation

## ◆ clear()

void cv::Octree::clear | ( |  | ) |

Python:
| cv.Octree.clear( |  | ) -> | None

Reset all octree parameter.

Clear all the nodes of the octree and initialize the parameters.

## ◆ createWithDepth() [1/2]

static Ptr< Octree > cv::Octree::createWithDepth | ( | int | maxDepth,
|  | double | size,
|  | const Point3f & | origin = { },
|  | bool | withColors = false )
| static

Python:
| cv.Octree.createWithDepth( | maxDepth, size[, origin[, withColors]] | ) -> | retval
| cv.Octree.createWithDepth( | maxDepth, pointCloud[, colors] | ) -> | retval
| cv.Octree_createWithDepth( | maxDepth, size[, origin[, withColors]] | ) -> | retval
| cv.Octree_createWithDepth( | maxDepth, pointCloud[, colors] | ) -> | retval

Creates an empty Octree with given maximum depth.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters

  maxDepth | The max depth of the Octree
  size | bounding box size for the Octree
  origin | Initial center coordinate
  withColors | Whether to keep per-point colors or not

Returns
  resulting Octree

## ◆ createWithDepth() [2/2]

static Ptr< Octree > cv::Octree::createWithDepth | ( | int | maxDepth,
|  | InputArray | pointCloud,
|  | InputArray | colors = noArray() )
| static

Python:
| cv.Octree.createWithDepth( | maxDepth, size[, origin[, withColors]] | ) -> | retval
| cv.Octree.createWithDepth( | maxDepth, pointCloud[, colors] | ) -> | retval
| cv.Octree_createWithDepth( | maxDepth, size[, origin[, withColors]] | ) -> | retval
| cv.Octree_createWithDepth( | maxDepth, pointCloud[, colors] | ) -> | retval

Create an Octree from the PointCloud data with the specific maxDepth.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters

  maxDepth | Max depth of the octree
  pointCloud | point cloud data, should be 3-channel float array
  colors | color attribute of point cloud in the same 3-channel float format

Returns
  resulting Octree

Here is the call graph for this function:

## ◆ createWithResolution() [1/2]

static Ptr< Octree > cv::Octree::createWithResolution | ( | double | resolution,
|  | double | size,
|  | const Point3f & | origin = { },
|  | bool | withColors = false )
| static

Python:
| cv.Octree.createWithResolution( | resolution, size[, origin[, withColors]] | ) -> | retval
| cv.Octree.createWithResolution( | resolution, pointCloud[, colors] | ) -> | retval
| cv.Octree_createWithResolution( | resolution, size[, origin[, withColors]] | ) -> | retval
| cv.Octree_createWithResolution( | resolution, pointCloud[, colors] | ) -> | retval

Creates an empty Octree with given resolution.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters

  resolution | The size of the octree leaf node
  size | bounding box size for the Octree
  origin | Initial center coordinate
  withColors | Whether to keep per-point colors or not

Returns
  resulting Octree

## ◆ createWithResolution() [2/2]

static Ptr< Octree > cv::Octree::createWithResolution | ( | double | resolution,
|  | InputArray | pointCloud,
|  | InputArray | colors = noArray() )
| static

Python:
| cv.Octree.createWithResolution( | resolution, size[, origin[, withColors]] | ) -> | retval
| cv.Octree.createWithResolution( | resolution, pointCloud[, colors] | ) -> | retval
| cv.Octree_createWithResolution( | resolution, size[, origin[, withColors]] | ) -> | retval
| cv.Octree_createWithResolution( | resolution, pointCloud[, colors] | ) -> | retval

Create an Octree from the PointCloud data with the specific resolution.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters

  resolution | The size of the octree leaf node
  pointCloud | point cloud data, should be 3-channel float array
  colors | color attribute of point cloud in the same 3-channel float format

Returns
  resulting octree

Here is the call graph for this function:

## ◆ deletePoint()

bool cv::Octree::deletePoint | ( | const Point3f & | point | ) |

Python:
| cv.Octree.deletePoint( | point | ) -> | retval

Delete a given point from the Octree.

Delete the corresponding element from the pointList in the corresponding leaf node. If the leaf node does not contain other points after deletion, this node will be deleted. In the same way, its parent node may also be deleted if its last child is deleted.

Parameters

  point | The point coordinates, comparison is epsilon-based

Returns
  return ture if the point is deleted successfully.

## ◆ empty()

bool cv::Octree::empty | ( |  | ) | const

Python:
| cv.Octree.empty( |  | ) -> | retval

returns true if the rootnode is NULL.

## ◆ getPointCloudByOctree()

void cv::Octree::getPointCloudByOctree | ( | OutputArray | restoredPointCloud,
|  | OutputArray | restoredColor = noArray() )

Python:
| cv.Octree.getPointCloudByOctree( | [, restoredPointCloud[, restoredColor]] | ) -> | restoredPointCloud, restoredColor

restore point cloud data from Octree.

Restore the point cloud data from existing octree. The points in same leaf node will be seen as the same point. This point is the center of the leaf node. If the resolution is small, it will work as a downSampling function.

Parameters

  restoredPointCloud | The output point cloud data, can be replaced by noArray() if not needed
  restoredColor | The color attribute of point cloud data, can be omitted if not needed

Here is the call graph for this function:

## ◆ insertPoint()

bool cv::Octree::insertPoint | ( | const Point3f & | point,
|  | const Point3f & | color = { } )

Python:
| cv.Octree.insertPoint( | point[, color] | ) -> | retval

Insert a point data with color to a OctreeNode.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters

  point | The point data in Point3f format.
  color | The color attribute of point in Point3f format.

Returns
  Returns whether the insertion is successful.

## ◆ isPointInBound()

bool cv::Octree::isPointInBound | ( | const Point3f & | point | ) | const

Python:
| cv.Octree.isPointInBound( | point | ) -> | retval

Determine whether the point is within the space range of the specific cube.

Parameters

  point | The point coordinates.

Returns
  If point is in bound, return ture. Otherwise, false.

## ◆ KNNSearch() [1/2]

void cv::Octree::KNNSearch | ( | const Point3f & | query,
|  | const int | K,
|  | OutputArray | points,
|  | OutputArray | colors,
|  | OutputArray | squareDists ) const

Python:
| cv.Octree.KNNSearch( | query, K[, points[, squareDists]] | ) -> | points, squareDists
| cv.Octree.KNNSearch( | query, K[, points[, colors[, squareDists]]] | ) -> | points, colors, squareDists

K Nearest Neighbor Search in Octree.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Find the K nearest neighbors to the query point.

Parameters

  query | Query point.
  K | amount of nearest neighbors to find
  points | Point output. Contains K points in 3-float format, arranged in order of distance from near to far, can be replaced by noArray() if not needed
  colors | Color output. Contains colors corresponding to points in pointSet, can be replaced by noArray() if not needed
  squareDists | Dist output. Contains K squared distance in floats, arranged in order of distance from near to far, can be replaced by noArray() if not needed

## ◆ KNNSearch() [2/2]

void cv::Octree::KNNSearch | ( | const Point3f & | query,
|  | const int | K,
|  | OutputArray | points,
|  | OutputArray | squareDists = noArray() ) const

Python:
| cv.Octree.KNNSearch( | query, K[, points[, squareDists]] | ) -> | points, squareDists
| cv.Octree.KNNSearch( | query, K[, points[, colors[, squareDists]]] | ) -> | points, colors, squareDists

K Nearest Neighbor Search in Octree.

Find the K nearest neighbors to the query point.

Parameters

  query | Query point.
  K | amount of nearest neighbors to find
  points | Point output. Contains K points in 3-float format, arranged in order of distance from near to far, can be replaced by noArray() if not needed
  squareDists | Dist output. Contains K squared distance in floats, arranged in order of distance from near to far, can be omitted if not needed

Here is the call graph for this function:

## ◆ radiusNNSearch() [1/2]

int cv::Octree::radiusNNSearch | ( | const Point3f & | query,
|  | float | radius,
|  | OutputArray | points,
|  | OutputArray | colors,
|  | OutputArray | squareDists ) const

Python:
| cv.Octree.radiusNNSearch( | query, radius[, points[, squareDists]] | ) -> | retval, points, squareDists
| cv.Octree.radiusNNSearch( | query, radius[, points[, colors[, squareDists]]] | ) -> | retval, points, colors, squareDists

Radius Nearest Neighbor Search in Octree.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Search all points that are less than or equal to radius. And return the number of searched points.

Parameters

  query | Query point.
  radius | Retrieved radius value.
  points | Point output. Contains searched points in 3-float format, and output vector is not in order, can be replaced by noArray() if not needed
  colors | Color output. Contains colors corresponding to points in pointSet, can be replaced by noArray() if not needed
  squareDists | Dist output. Contains searched squared distance in floats, and output vector is not in order, can be replaced by noArray() if not needed

Returns
  the number of searched points.

## ◆ radiusNNSearch() [2/2]

int cv::Octree::radiusNNSearch | ( | const Point3f & | query,
|  | float | radius,
|  | OutputArray | points,
|  | OutputArray | squareDists = noArray() ) const

Python:
| cv.Octree.radiusNNSearch( | query, radius[, points[, squareDists]] | ) -> | retval, points, squareDists
| cv.Octree.radiusNNSearch( | query, radius[, points[, colors[, squareDists]]] | ) -> | retval, points, colors, squareDists

Radius Nearest Neighbor Search in Octree.

Search all points that are less than or equal to radius. And return the number of searched points.

Parameters

  query | Query point.
  radius | Retrieved radius value.
  points | Point output. Contains searched points in 3-float format, and output vector is not in order, can be replaced by noArray() if not needed
  squareDists | Dist output. Contains searched squared distance in floats, and output vector is not in order, can be omitted if not needed

Returns
  the number of searched points.

Here is the call graph for this function:

## Member Data Documentation

## ◆ p

Ptr<Impl> cv::Octree::p
| protected

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

- opencv2/3d.hpp