Spec-Zone.ru › PointCloudLibrary

Октрей класс плотности облака точек Подробнее...

#include <pcl/octree/octree_pointcloud_density.h>

Inheritance graph
[легенда]
Collaboration graph
[легенда]

Публичные функции-члены

OctreePointCloudDensity (const double resolution_arg)
Конструктор класса OctreePointCloudDensity. Подробнее...
~OctreePointCloudDensity () override=default
Пустой деструктор класса. Подробнее...
uindex_t getVoxelDensityAtPoint (const PointT &point_arg) const
Получить количество точек внутри вокселя узла листа, к которому обращается точка. Подробнее...
- Публичные функции-члены, унаследованные от pcl::octree::OctreePointCloud< PointT, OctreePointCloudDensityContainer, OctreeContainerEmpty >
OctreePointCloud (const double resolution_arg)
Конструктор облака точек октри. Подробнее...
void setInputCloud (const PointCloudConstPtr &cloud_arg, const IndicesConstPtr &indices_arg=IndicesConstPtr())
Указать указатель на входной набор данных. Подробнее...
IndicesConstPtr const getIndices () const
Получить указатель на используемый вектор индексов. Подробнее...
PointCloudConstPtr getInputCloud () const
Получить указатель на входной набор данных облака точек. Подробнее...
void setEpsilon (double eps)
Установить точность поиска epsilon (граница погрешности) для поиска ближайших соседей. Подробнее...
double getEpsilon () const
Получить точность поиска epsilon (граница погрешности) для поиска ближайших соседей. Подробнее...
void setResolution (double resolution_arg)
Установить/изменить разрешение вокселя октри. Подробнее...
double getResolution () const
Получить разрешение вокселя октри. Подробнее...
uindex_t getTreeDepth () const
Получить максимальную глубину октри. Подробнее...
void addPointsFromInputCloud ()
Добавить точки из входного облака точек в октри. Подробнее...
void addPointFromCloud (uindex_t point_idx_arg, IndicesPtr indices_arg)
Добавить точку из заданного индекса входного облака точек в ок-дерево. Подробнее...
void addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg)
Добавить точку одновременно в ок-дерево и входное облако точек. Подробнее...
void addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg, IndicesPtr indices_arg)
Добавить точку одновременно в ок-дерево и входное облако точек. Подробнее...
bool isVoxelOccupiedAtPoint (const PointT &point_arg) const
Проверить, существует ли октаэдр в заданной точке. Подробнее...
bool isVoxelOccupiedAtPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg) const
Проверить, существует ли октаэдр в заданных координатах точки. Подробнее...
bool isVoxelOccupiedAtPoint (const index_t &point_idx_arg) const
Проверить, существует ли октаэдр в заданной точке из входного облака. Подробнее...
void deleteTree ()
Удалить структуру ок-дерева и его листовые узлы. Подробнее...
uindex_t getOccupiedVoxelCenters (AlignedPointTVector &voxel_center_list_arg) const
Получить вектор PointT центров всех занятых октаэдров. Подробнее...
uindex_t getApproxIntersectedVoxelCentersBySegment (const Eigen::Vector3f &origin, const Eigen::Vector3f &end, AlignedPointTVector &voxel_center_list, float precision=0.2)
Получить вектор PointT центров октаэдров, пересекаемых отрезком прямой. Подробнее...
void deleteVoxelAtPoint (const PointT &point_arg)
Удалить листовой узел / октаэдр в заданной точке. Подробнее...
void deleteVoxelAtPoint (const index_t &point_idx_arg)
Удалить листовой узел / октаэдр в заданной точке из входного облака. Подробнее...
void defineBoundingBox ()
Исследовать размеры набора данных облака точек и определить соответствующую ограничивающую рамку для ок-дерева. Подробнее...
void defineBoundingBox (const double min_x_arg, const double min_y_arg, const double min_z_arg, const double max_x_arg, const double max_y_arg, const double max_z_arg)
Определить прямоугольную область для октрее. Подробнее...
void defineBoundingBox (const double max_x_arg, const double max_y_arg, const double max_z_arg)
Определить прямоугольную область для октрее. Подробнее...
void defineBoundingBox (const double cubeLen_arg)
Определить куб области для октрее. Подробнее...
void getBoundingBox (double &min_x_arg, double &min_y_arg, double &min_z_arg, double &max_x_arg, double &max_y_arg, double &max_z_arg) const
Получить прямоугольную область для октрее. Подробнее...
double getVoxelSquaredDiameter (uindex_t tree_depth_arg) const
Вычисляет квадратный диаметр вокселя на заданной глубине дерева. Подробнее...
double getVoxelSquaredDiameter () const
Вычисляет квадратный диаметр вокселя на глубине листа. Подробнее...
double getVoxelSquaredSideLen (uindex_t tree_depth_arg) const
Вычисляет квадратную длину стороны куба вокселя на заданной глубине дерева. Подробнее...
double getVoxelSquaredSideLen () const
Вычисляет квадратную длину стороны куба вокселя на уровне листа. Подробнее...
void getVoxelBounds (const OctreeIteratorBase< OctreeBase< OctreePointCloudDensityContainer, OctreeContainerEmpty > > &iterator, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
Создать границы текущего вокселя итератора октрее. Подробнее...
void enableDynamicDepth (std::size_t maxObjsPerLeaf)
Включить динамическую структуру октрее. Подробнее...
- Public Member Functions inherited from pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >
Iterator begin (uindex_t max_depth_arg=0u)
ConstIterator begin (uindex_t max_depth_arg=0u) const
ConstIterator cbegin (uindex_t max_depth_arg=0u) const
const Iterator end ()
const ConstIterator end () const
const ConstIterator cend () const
LeafNodeDepthFirstIterator leaf_depth_begin (uindex_t max_depth_arg=0u)
ConstLeafNodeDepthFirstIterator leaf_depth_begin (uindex_t max_depth_arg=0u) const
const LeafNodeDepthFirstIterator leaf_depth_end ()
const ConstLeafNodeDepthFirstIterator leaf_depth_end () const
DepthFirstIterator depth_begin (uindex_t max_depth_arg=0u)
ConstDepthFirstIterator depth_begin (uindex_t max_depth_arg=0u) const
const DepthFirstIterator depth_end ()
const ConstDepthFirstIterator depth_end () const
BreadthFirstIterator breadth_begin (uindex_t max_depth_arg=0u)
ConstBreadthFirstIterator breadth_begin (uindex_t max_depth_arg=0u) const
const BreadthFirstIterator breadth_end ()
const ConstBreadthFirstIterator breadth_end () const
FixedDepthIterator fixed_depth_begin (uindex_t fixed_depth_arg=0u)
ConstFixedDepthIterator fixed_depth_begin (uindex_t fixed_depth_arg=0u) const
const FixedDepthIterator fixed_depth_end ()
const ConstFixedDepthIterator fixed_depth_end () const
LeafNodeBreadthFirstIterator leaf_breadth_begin (uindex_t max_depth_arg=0u)
ConstLeafNodeBreadthFirstIterator leaf_breadth_begin (uindex_t max_depth_arg=0u) const
const LeafNodeBreadthFirstIterator leaf_breadth_end ()
const ConstLeafNodeBreadthFirstIterator leaf_breadth_end () const
OctreeBase ()
Пустой конструктор. Подробнее...
virtual ~OctreeBase ()
Пустой деструктор. Подробнее...
OctreeBase (const OctreeBase &source)
Конструктор копирования. Подробнее...
OctreeBase & operator= (const OctreeBase &source)
Оператор копирования. Подробнее...
void setMaxVoxelIndex (uindex_t max_voxel_index_arg)
Установить максимальное количество кубиков на размерность. Подробнее...
void setTreeDepth (uindex_t max_depth_arg)
Установить максимальную глубину октодерева. Подробнее...
uindex_t getTreeDepth () const
Получить максимальную глубину октодерева. Подробнее...
LeafContainerT * createLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
Создать новый лист в узле (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
LeafContainerT * findLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg) const
Найти лист в узле (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
bool existLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg) const
idx_x_arg для проверки существования узла листа в координатах (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
void removeLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
Удалить узел листа в координатах (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
std::size_t getLeafCount () const
Возвращает количество существующих узлов листа в октодере. Подробнее...
std::size_t getBranchCount () const
Возвращает количество существующих узлов ветвления в октодере. Подробнее...
void deleteTree ()
Удалить структуру октодерева и его узлы листа. Подробнее...
void serializeTree (std::vector< char > &binary_tree_out_arg) const
Сериализовать октодерево в бинарный вектор вывода, описывающий структуру его узлов ветвления. Подробнее...
void serializeTree (std::vector< char > &binary_tree_out_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg) const
Сериализовать октодерево в бинарный вектор вывода, описывающий структуру его узлов ветвления и добавить все элементы LeafContainerT, хранящиеся в октодере, в вектор. Подробнее...
void serializeLeafs (std::vector< LeafContainerT * > &leaf_container_vector_arg)
Выводит вектор всех элементов LeafContainerT, хранящихся в узлах листа октодерева. Подробнее...
void deserializeTree (std::vector< char > &binary_tree_input_arg)
Десериализовать бинарное описание октодерева из вектора и создать соответствующую структуру октодерева. Подробнее...
void deserializeTree (std::vector< char > &binary_tree_input_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg)
Десериализовать бинарное описание октодерева и создать соответствующую структуру октодерева. Подробнее...

Дополнительные унаследованные члены

- Публичные типы, унаследованные от pcl::octree::OctreePointCloud< PointT, OctreePointCloudDensityContainer, OctreeContainerEmpty >
using Base = OctreeBase< OctreePointCloudDensityContainer, OctreeContainerEmpty >
using LeafNode = typename OctreeT::LeafNode
using BranchNode = typename OctreeT::BranchNode
using IndicesPtr = shared_ptr< Indices >
using IndicesConstPtr = shared_ptr< const Indices >
using PointCloud = pcl::PointCloud< PointT >
using PointCloudPtr = typename PointCloud::Ptr
using PointCloudConstPtr = typename PointCloud::ConstPtr
using SingleBuffer = OctreePointCloud< PointT, OctreePointCloudDensityContainer, OctreeContainerEmpty, OctreeBase< OctreePointCloudDensityContainer > >
using Ptr = shared_ptr< OctreePointCloud< PointT, OctreePointCloudDensityContainer, OctreeContainerEmpty, OctreeBase< OctreePointCloudDensityContainer, OctreeContainerEmpty > > >
using ConstPtr = shared_ptr< const OctreePointCloud< PointT, OctreePointCloudDensityContainer, OctreeContainerEmpty, OctreeBase< OctreePointCloudDensityContainer, OctreeContainerEmpty > > >
using AlignedPointTVector = std::vector< PointT, Eigen::aligned_allocator< PointT > >
using AlignedPointXYZVector = std::vector< PointXYZ, Eigen::aligned_allocator< PointXYZ > >
- Публичные типы, унаследованные от pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >
using OctreeT = OctreeBase< LeafContainerT, BranchContainerT >
using BranchNode = OctreeBranchNode< BranchContainerT >
using LeafNode = OctreeLeafNode< LeafContainerT >
using BranchContainer = BranchContainerT
using LeafContainer = LeafContainerT
using Iterator = OctreeDepthFirstIterator< OctreeT >
using ConstIterator = OctreeDepthFirstIterator< const OctreeT >
using LeafNodeIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using ConstLeafNodeIterator = OctreeLeafNodeDepthFirstIterator< const OctreeT >
using LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using ConstLeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< const OctreeT >
using DepthFirstIterator = OctreeDepthFirstIterator< OctreeT >
using ConstDepthFirstIterator = OctreeDepthFirstIterator< const OctreeT >
using BreadthFirstIterator = OctreeBreadthFirstIterator< OctreeT >
using ConstBreadthFirstIterator = OctreeBreadthFirstIterator< const OctreeT >
using FixedDepthIterator = OctreeFixedDepthIterator< OctreeT >
using ConstFixedDepthIterator = OctreeFixedDepthIterator< const OctreeT >
using LeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< OctreeT >
using ConstLeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< const OctreeT >
- Защищённые функции-члены, унаследованные от pcl::octree::OctreePointCloud< PointT, OctreePointCloudDensityContainer, OctreeContainerEmpty >
virtual void addPointIdx (uindex_t point_idx_arg)
Добавить точку с индексом из входного набора данных облака точек в октри. Подробнее...
void expandLeafNode (LeafNode *leaf_node, BranchNode *parent_branch, unsigned char child_idx, uindex_t depth_mask)
Добавить точку с индексом из входного набора данных облака точек в октри. Подробнее...
const PointT & getPointByIndex (uindex_t index_arg) const
Получить точку с индексом из входного набора данных облака точек. Подробнее...
OctreePointCloudDensityContainer * findLeafAtPoint (const PointT &point_arg) const
Найти узел листа октри в заданной точке. Подробнее...
void getKeyBitSize ()
Определить параметры ключа октри и глубину октри на основе заданной ограничивающей рамки. Подробнее...
void adoptBoundingBoxToPoint (const PointT &point_idx_arg)
Увеличить ограничивающую рамку/октри до тех пор, пока точка не подойдет. Подробнее...
bool isPointWithinBoundingBox (const PointT &point_idx_arg) const
Проверяет, находится ли заданная точка внутри ограничивающей рамки октри. Подробнее...
void genOctreeKeyforPoint (const PointT &point_arg, OctreeKey &key_arg) const
Сгенерировать ключ октри для вокселя в заданной точке. Подробнее...
void genOctreeKeyforPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg, OctreeKey &key_arg) const
Сгенерировать ключ октри для вокселя в заданной точке. Подробнее...
virtual bool genOctreeKeyForDataT (const index_t &data_arg, OctreeKey &key_arg) const
Виртуальный метод для генерации ключа октри для заданного индекса точки. Подробнее...
void genLeafNodeCenterFromOctreeKey (const OctreeKey &key_arg, PointT &point_arg) const
Сгенерировать точку в центре вокселя узла листа. Подробнее...
void genVoxelCenterFromOctreeKey (const OctreeKey &key_arg, uindex_t tree_depth_arg, PointT &point_arg) const
Сгенерировать точку в центре вокселя октри на заданном уровне дерева. Подробнее...
void genVoxelBoundsFromOctreeKey (const OctreeKey &key_arg, uindex_t tree_depth_arg, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
Генерация границ октального вокселя с использованием ключа октального дерева и глубины дерева. Подробнее...
uindex_t getOccupiedVoxelCentersRecursive (const BranchNode *node_arg, const OctreeKey &key_arg, AlignedPointTVector &voxel_center_list_arg) const
Рекурсивный поиск всех узлов листа в дереве и возврат вектора центров вокселей. Подробнее...
- Защищенные методы, унаследованные от pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >
LeafContainerT * createLeaf (const OctreeKey &key_arg)
Создание узла листа. Подробнее...
LeafContainerT * findLeaf (const OctreeKey &key_arg) const
Поиск узла листа. Подробнее...
bool existLeaf (const OctreeKey &key_arg) const
Проверка существования узла листа в октальном дереве. Подробнее...
void removeLeaf (const OctreeKey &key_arg)
Удаление узла листа из октального дерева. Подробнее...
OctreeNode * getRootNode () const
Получение корневого узла. Подробнее...
bool branchHasChild (const BranchNode &branch_arg, unsigned char child_idx_arg) const
Проверка, указывает ли ветвь на конкретный дочерний узел. Подробнее...
OctreeNode * getBranchChildPtr (const BranchNode &branch_arg, unsigned char child_idx_arg) const
Получение указателя на дочерний узел для дочернего узла в позиции child_idx. Подробнее...
void setBranchChildPtr (BranchNode &branch_arg, unsigned char child_idx_arg, OctreeNode *new_child_arg)
Назначение нового узла потомка ветви. Подробнее...
char getBranchBitPattern (const BranchNode &branch_arg) const
Генерация битового шаблона, отражающего существование указателей на дочерние узлы. Подробнее...
void deleteBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Удаление дочернего узла и всех его подпотомков из октального дерева. Подробнее...
void deleteBranch (BranchNode &branch_arg)
Удалить ветвь и все её поддеревья из ок-дерева. Подробнее...
BranchNode * createBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Создать и добавить новый дочерний узел ветви к классу ветви. Подробнее...
LeafNode * createLeafChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Создать и добавить новый дочерний лист к классу ветви. Подробнее...
uindex_t createLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, LeafNode *&return_leaf_arg, BranchNode *&parent_of_leaf_arg)
Создать лист в ок-дереве по ключу. Подробнее...
void findLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, LeafContainerT *&result_arg) const
Рекурсивно найти узел листа и вернуть указатель на него. Подробнее...
bool deleteLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg)
Рекурсивно найти и удалить лист. Подробнее...
void serializeTreeRecursive (const BranchNode *branch_arg, OctreeKey &key_arg, std::vector< char > *binary_tree_out_arg, typename std::vector< LeafContainerT * > *leaf_container_vector_arg) const
Рекурсивно исследовать ок-дерево и вывести двоичное описание ок-дерева вместе с вектором узлов листа LeafContainerTs. Подробнее...
void deserializeTreeRecursive (BranchNode *branch_arg, uindex_t depth_mask_arg, OctreeKey &key_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_end_arg, typename std::vector< LeafContainerT * >::const_iterator *leaf_container_vector_it_arg, typename std::vector< LeafContainerT * >::const_iterator *leaf_container_vector_it_end_arg)
Рекурсивный метод для десериализации структуры ок-дерева. Подробнее...
virtual void serializeTreeCallback (LeafContainerT &, const OctreeKey &) const
Обратный вызов, выполняемый для каждого листа во время сериализации. Подробнее...
virtual void deserializeTreeCallback (LeafContainerT &, const OctreeKey &)
Обратный вызов, выполняемый для каждого листа во время десериализации. Подробнее...
bool octreeCanResize () const
Проверить, может ли ок-дерево динамически изменять свою глубину. Подробнее...
- Защищенные атрибуты, унаследованные от pcl::octree::OctreePointCloud< PointT, OctreePointCloudDensityContainer, OctreeContainerEmpty >
PointCloudConstPtr input_
Указатель на входной набор данных облака точек. Подробнее...
IndicesConstPtr indices_
Указатель на вектор индексов точек для использования. Подробнее...
double epsilon_
Точность ε (предел погрешности) для поиска ближайших соседей. Подробнее...
double resolution_
Разрешение октодерева. Подробнее...
double min_x_
double max_x_
double min_y_
double max_y_
double min_z_
double max_z_
bool bounding_box_defined_
Флаг, указывающий, определена ли ограничивающая коробка октодерева. Подробнее...
std::size_t max_objs_per_leaf_
Количество объектов DataT на лист, перед расширением ветки. Подробнее...
- Защищенные атрибуты, унаследованные от pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >
std::size_t leaf_count_
Количество листов
Подробнее...
std::size_t branch_count_
Количество узлов ветвления
Подробнее...
BranchNode * root_node_
Указатель на корневой узел ветвления октодерева
Подробнее...
uindex_t depth_mask_
Маска глубины на основе глубины октодерева
Подробнее...
uindex_t octree_depth_
Глубина октодерева. Подробнее...
bool dynamic_depth_enabled_
Включить dynamic_depth. Подробнее...
OctreeKey max_key_
Диапазон ключей Подробнее...

Подробное описание

шаблон<typename PointT, typename LeafContainerT = OctreePointCloudDensityContainer, typename BranchContainerT = OctreeContainerEmpty>
класс pcl::octree::OctreePointCloudDensity< PointT, LeafContainerT, BranchContainerT >

Класс плотности октодерева точек

Примечание
Этот класс генерирует октодерево из облака точек (без копирования). Сохраняются только количество точек, попавших в воксель узла листа.
Октодерево облака точек инициализируется разрешением вокселя. Его граница автоматически корректируется или может быть предварительно задана.
Параметры шаблона
PointT тип точки, используемой в облаке точек
Автор
Julius Kammerl (juliu.nosp@m.s@ka.nosp@m.mmerl.nosp@m..de)

Определение в строке 117 файла octree_pointcloud_density.h.

Конструкторы и деструкторы

OctreePointCloudDensity()

шаблон<typename PointT , typename LeafContainerT = OctreePointCloudDensityContainer, typename BranchContainerT = OctreeContainerEmpty>
pcl::octree::OctreePointCloudDensity< PointT, LeafContainerT, BranchContainerT >::OctreePointCloudDensity ( const double resolution_arg )
inline

Конструктор класса OctreePointCloudDensity.

Параметры
resolution_arg разрешение октодерева на нижнем уровне

Определение в строке 123 файла octree_pointcloud_density.h.

~OctreePointCloudDensity()

шаблон<typename PointT , typename LeafContainerT = OctreePointCloudDensityContainer, typename BranchContainerT = OctreeContainerEmpty>
pcl::octree::OctreePointCloudDensity< PointT, LeafContainerT, BranchContainerT >::~OctreePointCloudDensity ( )
overridedefault

Пустой деструктор класса.

Документация по членам-функциям

getVoxelDensityAtPoint()

шаблон<typename PointT , typename LeafContainerT = OctreePointCloudDensityContainer, typename BranchContainerT = OctreeContainerEmpty>
uindex_t pcl::octree::OctreePointCloudDensity< PointT, LeafContainerT, BranchContainerT >::getVoxelDensityAtPoint ( const PointT & point_arg ) const
inline

Получение количества точек в вокселе узла листа, на который указывает точка.

Параметры
[вход] point_arg точка, адресующая воксель
Возвращает
количество точек, попавших в воксель узла листа

Определение в строке 137 файла octree_pointcloud_density.h.

Ссылки на pcl::octree::OctreePointCloud< PointT, OctreePointCloudDensityContainer, OctreeContainerEmpty >::findLeafAtPoint() и pcl::octree::OctreePointCloudDensityContainer::getPointCounter().


Документация для этого класса была сгенерирована из следующего файла:
  • pcl/octree/octree_pointcloud_density.h

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree_point_cloud_density.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API