Spec-Zone.ru › PointCloudLibrary

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

#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 >, OctreeContainerEmpty > > >
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 > >
- Публичные типы, унаследованные от 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 >

Открытые функции-члены

iterator begin ()
iterator 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
Возвращает точность поиска 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< 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_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
Создаёт точку в центре вокселя октодерева на заданном уровне дерева. Подробнее...
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
Рекурсивно обходит октодерево и формирует его двоичное описание вместе с вектором LeafContainerT листовых узлов. Подробнее...
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, OctreePointCloudAdjacencyContainer< PointT >, OctreeContainerEmpty >
PointCloudConstPtr input_
Указатель на входной набор данных облака точек. Подробнее...
IndicesConstPtr indices_
Указатель на используемый вектор индексов точек. Подробнее...
double epsilon_
Точность 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_ {0}
Количество листовых узлов
Подробнее...
std::size_t branch_count_ {1}
Количество ветвевых узлов
Подробнее...
BranchNode * root_node_
Указатель на корневой ветвевой узел октодерева
Подробнее...
uindex_t depth_mask_ {0}
Маска глубины, основанная на глубине октодерева
Подробнее...
uindex_t octree_depth_ {0}
Глубина октодерева. Подробнее...
bool dynamic_depth_enabled_ {false}
Включение dynamic_depth. Подробнее...
OctreeKey max_key_
Диапазон ключей Подробнее...

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

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

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

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

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

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

Примечание
Пример передачи функции преобразования см. в SupervoxelClustering.

При использовании в научной работе просьба ссылаться на публикацию:

  • J. Papon, A. Abramov, M. Schoeler, F. Woergoetter Voxel Cloud Connectivity Segmentation - Supervoxels from PointClouds In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) 2013
Автор
Jeremie Papon (jpapo.nosp@m.n@gm.nosp@m.ail.c.nosp@m.om)

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

Описание типов-членов

BranchNode

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

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

const_iterator

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

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

ConstPtr

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

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

EdgeID

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

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

iterator

template<typename PointT , typename LeafContainerT = OctreePointCloudAdjacencyContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
using 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

Определение в строке 91 файла 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*>

Определение в строке 105 файла 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>

Определение в строке 84 файла 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>

Определение в строке 82 файла 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>

Определение в строке 89 файла 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>

Определение в строке 94 файла 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

Определение в строке 96 файла 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

Определение в строке 95 файла 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>

Определение в строке 86 файла 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

Заполняет поля соседей для новых вокселей.

Параметры
[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 )

Вычисляет граф смежности отношений между вокселями.

Предупреждение
При увеличении размера облака работа быстро замедляется из-за количества рёбер.
Параметры
[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

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

Параметры
[in] point_arg Точка, для которой создаётся ключ
[out] key_arg Полученный ключ октодерева

Определение в строке 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

Возвращает контейнер листа для заданной точки.

Параметры
[in] point_arg Точка для поиска
Возвращает
Указатель на контейнер листа; если контейнер листа не найден, возвращается 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 )

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

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

Параметры
[in] transform_func Указатель на функцию boost, задающую преобразование. Функция преобразования должна принимать один параметр (точку) и изменять его на месте.

Определение в строке 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
встроенная

Определение в строке 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 Положение камеры; по умолчанию — начало координат
Возвращает
True, если путь к камере перекрыт вокселем, иначе false.

Определение в строке 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