Spec-Zone.ru › PointCloudLibrary

Октодерево класс вокселей облака точек, который поддерживает информацию об аджаценции для своих вокселей. Подробнее...

#include <pcl/octree/octree_pointcloud_adjacency.h>

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

Публичные типы

using OctreeBaseT = OctreeBase< LeafContainerT, BranchContainerT >
using OctreeAdjacencyT = OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >
using Ptr = shared_ptr< OctreeAdjacencyT >
using ConstPtr = shared_ptr< const OctreeAdjacencyT >
using OctreePointCloudT = OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeBaseT >
using LeafNode = typename OctreePointCloudT::LeafNode
using BranchNode = typename OctreePointCloudT::BranchNode
using PointCloud = pcl::PointCloud< PointT >
using PointCloudPtr = typename PointCloud::Ptr
using PointCloudConstPtr = typename PointCloud::ConstPtr
using VoxelAdjacencyList = boost::adjacency_list< boost::setS, boost::setS, boost::undirectedS, PointT, float >
using VoxelID = typename VoxelAdjacencyList::vertex_descriptor
using EdgeID = typename VoxelAdjacencyList::edge_descriptor
using LeafVectorT = std::vector< LeafContainerT * >
using iterator = typename LeafVectorT::iterator
using const_iterator = typename LeafVectorT::const_iterator
- Публичные типы, унаследованные от pcl::octree::OctreePointCloud< PointT, OctreePointCloudAdjacencyContainer< PointT >, OctreeContainerEmpty >
using Base = OctreeBase< OctreePointCloudAdjacencyContainer< PointT >, 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, OctreePointCloudAdjacencyContainer< PointT >, OctreeContainerEmpty, OctreeBase< OctreePointCloudAdjacencyContainer< PointT > > >
using Ptr = shared_ptr< OctreePointCloud< PointT, OctreePointCloudAdjacencyContainer< PointT >, OctreeContainerEmpty, OctreeBase< OctreePointCloudAdjacencyContainer< PointT > > > >
using ConstPtr = shared_ptr< const OctreePointCloud< PointT, OctreePointCloudAdjacencyContainer< PointT >, OctreeContainerEmpty, OctreeBase< OctreePointCloudAdjacencyContainer< PointT >, OctreeContainerEmpty > > >
using AlignedPointTVector = std::vector< PointT, Eigen::aligned_allocator< PointT > >
using AlignedPointXYZVector = std::vector< PointXYZ, Eigen::aligned_allocator< PointXYZ > >
- Public Types inherited from 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 >
END_OF_DOCUMENT_MARKER
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 >

Общедоступные члены-функции

итератор begin ()
итератор end ()
LeafContainerT * at (std::size_t idx)
std::size_t size () const
OctreePointCloudAdjacency (const double resolution_arg)
Конструктор. Подробнее...
void addPointsFromInputCloud ()
Добавляет точки из облака в октрее. Подробнее...
LeafContainerT * getLeafContainerAtPoint (const PointT &point_arg) const
Получает контейнер листа для заданной точки. Подробнее...
void computeVoxelAdjacencyGraph (VoxelAdjacencyList &voxel_adjacency_graph)
Вычисляет граф смежности ячеек. Подробнее...
void setTransformFunction (std::function< void(PointT &p)> transform_func)
Устанавливает преобразование точки (и обратное) для преобразования пространства входного облака. Подробнее...
bool testForOcclusion (const PointT &point_arg, const PointXYZ &camera_pos=PointXYZ(0, 0, 0))
Проверяет, скрыта ли входная точка от заданной точки камеры другими ячейками. Подробнее...
- Общедоступные члены-функции, унаследованные от pcl::octree::OctreePointCloud< PointT, OctreePointCloudAdjacencyContainer< PointT >, 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
Получить точность поиска по эпсилон (предел ошибки) для поиска ближайших соседей. Подробнее...
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< OctreePointCloudAdjacencyContainer< PointT >, OctreeContainerEmpty > > &iterator, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
Сгенерировать границы текущего вокселя итератора октри. Подробнее...
void enableDynamicDepth (std::size_t maxObjsPerLeaf)
Включить динамическую структуру октри. Подробнее...
- Публичные функции-члены, унаследованные от 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_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)
Разобрать описание двоичного октодерева и создать соответствующую структуру октодерева. Подробнее...

Защищённые члены класса

void addPointIdx (uindex_t point_idx_arg) override
Добавление точки с указанным индексом из набора точек в ок-дерево. Подробнее...
void computeNeighbors (OctreeKey &key_arg, LeafContainerT *leaf_container)
Заполнение полей соседей для новых ячеек. Подробнее...
void genOctreeKeyforPoint (const PointT &point_arg, OctreeKey &key_arg) const
Генерирует ключ ок-дерева для заданной точки (использует преобразование, если оно задано). Подробнее...
- Защищённые члены класса, унаследованные от pcl::octree::OctreePointCloud< PointT, OctreePointCloudAdjacencyContainer< PointT >, OctreeContainerEmpty >
void expandLeafNode (LeafNode *leaf_node, BranchNode *parent_branch, unsigned char child_idx, uindex_t depth_mask)
Добавление точки с указанным индексом из набора точек в ок-дерево. Подробнее...
const PointT & getPointByIndex (uindex_t index_arg) const
Получение точки по индексу из набора точек. Подробнее...
OctreePointCloudAdjacencyContainer< PointT > * 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
Генерация точки в центре вокселя octree на заданном уровне дерева. Подробнее...
void genVoxelBoundsFromOctreeKey (const OctreeKey &key_arg, uindex_t tree_depth_arg, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
Генерация границ вокселя octree с использованием ключа octree и аргумента глубины дерева. Подробнее...
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
Проверка существования узла листа в octree. Подробнее...
void removeLeaf (const OctreeKey &key_arg)
Удаление узла листа из octree. Подробнее...
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)
Назначить новый дочерний узел ветви. More...
char getBranchBitPattern (const BranchNode &branch_arg) const
Сгенерировать битовую маску, отражающую наличие указателей на дочерние узлы. More...
void deleteBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Удалить дочерний узел и все его подузлы из октри. More...
void deleteBranch (BranchNode &branch_arg)
Удалить ветвь и все ее подузлы из октри. More...
BranchNode * createBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Создать и добавить новый дочерний узел ветви к классу ветви. More...
LeafNode * createLeafChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Создать и добавить новый дочерний узел листа к классу ветви. More...
uindex_t createLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, LeafNode *&return_leaf_arg, BranchNode *&parent_of_leaf_arg)
Создать узел листа по ключу октри. More...
void findLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, LeafContainerT *&result_arg) const
Рекурсивно искать заданный узел листа и вернуть указатель. More...
bool deleteLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg)
Рекурсивно искать и удалить узел листа. More...
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. More...
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)
Рекурсивный метод для десериализации структуры октри. More...
virtual void serializeTreeCallback (LeafContainerT &, const OctreeKey &) const
Обработчик, вызываемый для каждого листового узла во время сериализации. Подробнее...
virtual void deserializeTreeCallback (LeafContainerT &, const OctreeKey &)
Обработчик, вызываемый для каждого листового узла во время десериализации. Подробнее...
bool octreeCanResize () const
Проверка возможности динамического изменения глубины ок-дерева. Подробнее...

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

- Защищенные атрибуты, унаследованные от pcl::octree::OctreePointCloud< PointT, OctreePointCloudAdjacencyContainer< PointT >, 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_
Включить динамическую глубину. Подробнее...
OctreeKey max_key_
Диапазон ключей Подробнее...

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

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

Класс октодерева облака точек, который сохраняет информацию о смежности для своих объемов.

Этот класс октодерева облака точек генерирует октодерево из облака точек (без копирования). Октодерево облака точек инициализируется с разрешением своего объема. Его ограничивающая коробка автоматически подстраивается или может быть предварительно определена.

Класс OctreePointCloudAdjacencyContainer можно использовать для хранения данных в узлах листьев.

Можно указать необязательную функцию преобразования, которая изменяет способ вычисления сетки объемов - это можно использовать, например, для увеличения размеров объемов ячеек по мере увеличения их расстояния от начала координат (камеры).

Примечание
См. SupervoxelClustering для примера того, как предоставить функцию преобразования.

Если вы используете это в научной работе, пожалуйста, процитируйте:

  • J. Papon, A. Abramov, M. Schoeler, F. Woergoetter Voxel Cloud Connectivity Segmentation - Supervoxels from PointClouds В материалах конференции IEEE по компьютерному зрению и распознаванию образов (CVPR) 2013
Автор
Жерем Лепаон (jpapo.nosp@m.n@gm.nosp@m.ail.c.nosp@m.om)

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

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

BranchNode

шаблон<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
используемый pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::BranchNode = typename OctreePointCloudT::BranchNode

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

const_iterator

шаблон<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
используемый pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::const_iterator = typename LeafVectorT::const_iterator

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

ConstPtr

шаблон<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
используемый pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::ConstPtr = shared_ptr<const OctreeAdjacencyT>

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

EdgeID

шаблон<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
используемый pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::EdgeID = typename VoxelAdjacencyList::edge_descriptor

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

iterator

шаблон<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
используемый pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::iterator = typename LeafVectorT::iterator

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

LeafNode

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::LeafNode = typename OctreePointCloudT::LeafNode

Definition at line 91 of file octree_pointcloud_adjacency.h.

LeafVectorT

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::LeafVectorT = std::vector<LeafContainerT*>

Definition at line 105 of file octree_pointcloud_adjacency.h.

OctreeAdjacencyT

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::OctreeAdjacencyT = OctreePointCloudAdjacency<PointT, LeafContainerT, BranchContainerT>

Definition at line 84 of file octree_pointcloud_adjacency.h.

OctreeBaseT

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::OctreeBaseT = OctreeBase<LeafContainerT, BranchContainerT>

Definition at line 82 of file octree_pointcloud_adjacency.h.

OctreePointCloudT

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::OctreePointCloudT = OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeBaseT>

Definition at line 89 of file octree_pointcloud_adjacency.h.

PointCloud

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::PointCloud = pcl::PointCloud<PointT>

Definition at line 94 of file octree_pointcloud_adjacency.h.

PointCloudConstPtr

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::PointCloudConstPtr = typename PointCloud::ConstPtr

Definition at line 96 of file octree_pointcloud_adjacency.h.

PointCloudPtr

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::PointCloudPtr = typename PointCloud::Ptr

Definition at line 95 of file octree_pointcloud_adjacency.h.

Ptr

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::Ptr = shared_ptr<OctreeAdjacencyT>

Definition at line 86 of file octree_pointcloud_adjacency.h.

VoxelAdjacencyList

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::VoxelAdjacencyList = boost:: adjacency_list<boost::setS, boost::setS, boost::undirectedS, PointT, float>

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

VoxelID

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::VoxelID = typename VoxelAdjacencyList::vertex_descriptor

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

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

OctreePointCloudAdjacency()

template<typename PointT , typename LeafContainerT , typename BranchContainerT >
pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::OctreePointCloudAdjacency ( const double resolution_arg )

Конструктор.

Параметры
[in] resolution_arg Разрешение октального дерева на нижнем уровне (размер вокселя)

Определение в строке 54 файла octree_pointcloud_adjacency.hpp.

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

addPointIdx()

template<typename PointT , typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::addPointIdx ( uindex_t point_idx_arg )
overrideprotectedvirtual

Добавление точки по индексу из входного набора точек в октальное дерево.

Параметры
[in] point_idx_arg Индекс, представляющий точку в наборе данных, заданном методом setInputCloud()
Примечание
Это виртуальная реализация, позволяющая использовать функцию преобразования для вычисления ключей.

Переопределяет метод pcl::octree::OctreePointCloud< PointT, OctreePointCloudAdjacencyContainer< PointT >, OctreeContainerEmpty >.

Определение в строке 149 файла octree_pointcloud_adjacency.hpp.

Ссылки на pcl::isFinite().

addPointsFromInputCloud()

template<typename PointT , typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::addPointsFromInputCloud

Добавляет точки из облака в октальное дерево.

Примечание
Это переопределяет addPointsFromInputCloud() из класса OctreePointCloud.

Определение в строке 65 файла octree_pointcloud_adjacency.hpp.

Ссылки на pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointsFromInputCloud() и pcl::isFinite().

at()

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
LeafContainerT* pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::at ( std::size_t idx )
inline

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

begin()

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
iterator pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::begin ( )
inline

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

computeNeighbors()

template<typename PointT , typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::computeNeighbors ( OctreeKey & key_arg,
LeafContainerT * leaf_container
)
protected

Заполняет поля соседей для новых объёмов.

Parameters
[in] key_arg Ключ объёма для проверки соседей
[in] leaf_container Указатель на контейнер листа для проверки соседей

Определение в строке 170 файла octree_pointcloud_adjacency.hpp.

Ссылается на pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y, и pcl::octree::OctreeKey::z.

computeVoxelAdjacencyGraph()

template<typename PointT , typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::computeVoxelAdjacencyGraph ( VoxelAdjacencyList & voxel_adjacency_graph )

Вычисляет граф смежности объёмов.

Предупреждение
Это быстро замедляется по мере увеличения размера облака из-за количества рёбер.
Parameters
[out] voxel_adjacency_graph Граф смежности Boost Graph Library отношений касания объёмов. Вершины — PointT, рёбра представляют касание, а длина ребра — расстояние между точками.

Определение в строке 223 файла octree_pointcloud_adjacency.hpp.

end()

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
iterator pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::end ( )
inline

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

genOctreeKeyforPoint()

template<typename PointT , typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::genOctreeKeyforPoint ( const PointT & point_arg,
OctreeKey & key_arg
) const
protected

Генерирует ключ octree для указанной точки (использует преобразование, если оно предоставлено).

Parameters
[in] point_arg Точка для генерации ключа
[out] key_arg Полученный ключ octree

Определение в строке 120 файла octree_pointcloud_adjacency.hpp.

Ссылки на pcl::isFinite(), pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y, и pcl::octree::OctreeKey::z.

getLeafContainerAtPoint()

template<typename PointT , typename LeafContainerT , typename BranchContainerT >
LeafContainerT * pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::getLeafContainerAtPoint ( const PointT & point_arg ) const

Получает контейнер листа для заданной точки.

Parameters
[in] point_arg Точка поиска
Returns
Указатель на контейнер листа — null, если контейнер листа не найден.

Определение в строке 207 файла octree_pointcloud_adjacency.hpp.

setTransformFunction()

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::setTransformFunction ( std::function< void(PointT &p)> transform_func )
inline

Устанавливает преобразование точки (и обратное преобразование), используемое для преобразования пространства входного облака.

Это полезно для изменения способа вычисления смежности, например, для смягчения критерия смежности для точек, удалённых от камеры.

Parameters
[in] transform_func Указатель boost::function на используемое преобразование. Преобразование должно иметь один параметр (точку), который он изменяет на месте.

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

size()

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
std::size_t pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::size ( ) const
inline

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

testForOcclusion()

template<typename PointT , typename LeafContainerT , typename BranchContainerT >
bool pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::testForOcclusion ( const PointT & point_arg,
const PointXYZ & camera_pos = PointXYZ(0, 0, 0)
)

Проверяет, заблокирован ли путь к заданной точке от указанной камеры другими вокселями.

Параметры
[in] point_arg Точка для проверки на перекрытие
[in] camera_pos Позиция камеры, по умолчанию - начало координат
Возвращает
Истина, если путь к камере заблокирован вокселем, ложь в противном случае.

Определение в строке 269 файла octree_pointcloud_adjacency.hpp.

Ссылки на pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y и pcl::octree::OctreeKey::z.


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

© 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_adjacency.html

Spec-Zone.ru

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