Реализует алгоритм супервокселей на основе структуры вокселей, нормалей и значений RGB. Подробнее...
#include <pcl/segmentation/supervoxel_clustering.h>
Классы | |
| class | VoxelData |
|
VoxelData — структура для хранения данных в pcl::octree::OctreePointCloudAdjacencyContainer. Подробнее... |
|
Общедоступные функции-члены | |
| SupervoxelClustering (float voxel_resolution, float seed_resolution) | |
| Конструктор, задающий значения по умолчанию для переменных-членов. Подробнее... |
|
| ~SupervoxelClustering () override | |
| Деструктор уничтожает облако, нормали и метод поиска, используемый для нахождения соседей. Подробнее... |
|
| void | setVoxelResolution (float resolution) |
| Задать разрешение вокселей октодерева. Подробнее... |
|
| float | getVoxelResolution () const |
| Получить разрешение вокселей октодерева. Подробнее... |
|
| void | setSeedResolution (float seed_resolution) |
| Задать разрешение начальных вокселей октодерева. Подробнее... |
|
| float | getSeedResolution () const |
| Получить разрешение начальных вокселей октодерева. Подробнее... |
|
| void | setColorImportance (float val) |
| Задать значимость цвета для супервокселей. Подробнее... |
|
| void | setSpatialImportance (float val) |
| Задать значимость пространственного расстояния для супервокселей. Подробнее... |
|
| void | setNormalImportance (float val) |
| Задать значимость скалярного произведения нормалей для супервокселей. Подробнее... |
|
| void | setUseSingleCameraTransform (bool val) |
| Указать, использовать ли преобразование для одной камеры. Подробнее... |
|
| virtual void | extract (std::map< std::uint32_t, typename Supervoxel< PointT >::Ptr > &supervoxel_clusters) |
| Этот метод запускает алгоритм сегментации и возвращает супервоксели, полученные в ходе сегментации. Подробнее... |
|
| void | setInputCloud (const typename pcl::PointCloud< PointT >::ConstPtr &cloud) override |
| Этот метод задаёт облако для разбиения на супервоксели. Подробнее... |
|
| virtual void | setNormalCloud (typename NormalCloudT::ConstPtr normal_cloud) |
| Этот метод задаёт нормали для супервокселей (их количество должно совпадать с количеством точек во входном облаке). Подробнее... |
|
| virtual void | refineSupervoxels (int num_itr, std::map< std::uint32_t, typename Supervoxel< PointT >::Ptr > &supervoxel_clusters) |
| Этот метод уточняет вычисленные супервоксели — его можно вызывать только после extract. Подробнее... |
|
| pcl::PointCloud< PointT >::Ptr | getVoxelCentroidCloud () const |
| Возвращает глубокую копию облака центроидов вокселей. Подробнее... |
|
| pcl::PointCloud< PointXYZL >::Ptr | getLabeledCloud () const |
| Возвращает размеченное облако. Точки, принадлежащие одному супервокселю, имеют одинаковую метку. Подробнее... |
|
| pcl::PointCloud< pcl::PointXYZL >::Ptr | getLabeledVoxelCloud () const |
| Возвращает размеченное вокселизированное облако. Точки, принадлежащие одному супервокселю, имеют одинаковую метку. Подробнее... |
|
| void | getSupervoxelAdjacencyList (VoxelAdjacencyList &adjacency_list_arg) const |
| Возвращает список смежности (из библиотеки графов Boost), описывающий связи между супервокселями. Подробнее... |
|
| void | getSupervoxelAdjacency (std::multimap< std::uint32_t, std::uint32_t > &label_adjacency) const |
| Возвращает мультимножество, описывающее смежность супервокселей. Подробнее... |
|
| int | getMaxLabel () const |
| Возвращает текущую максимальную (наибольшую) метку. Подробнее... |
|
|
| |
| PCLBase () | |
| Пустой конструктор. Подробнее... |
|
| PCLBase (const PCLBase &base) | |
| Конструктор копирования. Подробнее... |
|
| virtual | ~PCLBase ()=default |
| Деструктор. Подробнее... |
|
| virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
| Передать указатель на входной набор данных. Подробнее... |
|
| PointCloudConstPtr const | getInputCloud () const |
| Получить указатель на входной набор точек. Подробнее... |
|
| virtual void | setIndices (const IndicesPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (const IndicesConstPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (const PointIndicesConstPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols) |
| Задать индексы точек, расположенных в интересующей области облака точек. Подробнее... |
|
| IndicesPtr | getIndices () |
| Получить указатель на используемый вектор индексов. Подробнее... |
|
| IndicesConstPtr const | getIndices () const |
| Получить указатель на используемый вектор индексов. Подробнее... |
|
| const PointT & | operator[] (std::size_t pos) const |
| Переопределяет оператор [] класса PointCloud, чтобы сократить код. Подробнее... |
|
Статические общедоступные функции-члены | |
| static pcl::PointCloud< pcl::PointNormal >::Ptr | makeSupervoxelNormalCloud (std::map< std::uint32_t, typename Supervoxel< PointT >::Ptr > &supervoxel_clusters) |
| Вспомогательная статическая функция, возвращающая облако точек с нормалями для входных супервокселей. Подробнее... |
|
Дружественные функции и классы | |
| class | SupervoxelHelper |
| void | boost::checked_delete (const typename pcl::SupervoxelClustering< PointT >::SupervoxelHelper *) |
Дополнительные унаследованные элементы | |
|
| |
| bool | initCompute () |
| Этот метод следует вызывать перед началом фактического вычисления. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод следует вызывать после завершения фактического вычисления. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| Входной набор облака точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор используемых индексов точек. Подробнее... |
|
| bool | use_indices_ |
| Задайте значение true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, мы создаём набор фиктивных индексов, соответствующий входному облаку точек. Подробнее... |
|
Подробное описание
template<typename PointT>
class pcl::SupervoxelClustering< PointT >
Реализует алгоритм супер-вокселей на основе воксельной структуры, нормалей и значений RGB.
- Примечание
- Супер-воксели — это объёмные сегменты с избыточным разбиением (обычно поверхности).
- Обычно цвет не требуется (и может ухудшить результат) — в основном используется пространственная структура
- J. Papon, A. Abramov, M. Schoeler, F. Woergoetter Сегментация связности воксельного облака — супер-воксели из облаков точек. В материалах конференции IEEE по компьютерному зрению и распознаванию образов (CVPR), 2013
Определение в строке 126 файла supervoxel_clustering.h.
Документация псевдонимов типов-членов
EdgeID
| using pcl::SupervoxelClustering< PointT >::EdgeID = VoxelAdjacencyList::edge_descriptor |
Определение в строке 208 файла supervoxel_clustering.h.
IndicesPtr
| using pcl::SupervoxelClustering< PointT >::IndicesPtr = pcl::IndicesPtr |
Определение в строке 200 файла supervoxel_clustering.h.
KdTreeT
| using pcl::SupervoxelClustering< PointT >::KdTreeT = pcl::search::KdTree<PointT> |
Определение в строке 199 файла supervoxel_clustering.h.
LeafContainerT
| using pcl::SupervoxelClustering< PointT >::LeafContainerT = pcl::octree::OctreePointCloudAdjacencyContainer<PointT, VoxelData> |
Определение в строке 192 файла supervoxel_clustering.h.
LeafVectorT
| using pcl::SupervoxelClustering< PointT >::LeafVectorT = std::vector<LeafContainerT *> |
Определение в строке 193 файла supervoxel_clustering.h.
NormalCloudT
| using pcl::SupervoxelClustering< PointT >::NormalCloudT = pcl::PointCloud<Normal> |
Определение в строке 196 файла supervoxel_clustering.h.
OctreeAdjacencyT
| using pcl::SupervoxelClustering< PointT >::OctreeAdjacencyT = pcl::octree::OctreePointCloudAdjacency<PointT, LeafContainerT> |
Определение в строке 197 файла supervoxel_clustering.h.
OctreeSearchT
| using pcl::SupervoxelClustering< PointT >::OctreeSearchT = pcl::octree::OctreePointCloudSearch<PointT> |
Определение в строке 198 файла supervoxel_clustering.h.
PointCloudT
| using pcl::SupervoxelClustering< PointT >::PointCloudT = pcl::PointCloud<PointT> |
Определение в строке 195 файла supervoxel_clustering.h.
VoxelAdjacencyList
| using pcl::SupervoxelClustering< PointT >::VoxelAdjacencyList = boost::adjacency_list<boost::setS, boost::setS, boost::undirectedS, std::uint32_t, float> |
Определение в строке 206 файла supervoxel_clustering.h.
VoxelID
| using pcl::SupervoxelClustering< PointT >::VoxelID = VoxelAdjacencyList::vertex_descriptor |
Определение в строке 207 файла supervoxel_clustering.h.
Документация конструктора и деструктора
SupervoxelClustering()
| pcl::SupervoxelClustering< PointT >::SupervoxelClustering | ( | float | voxel_resolution, |
| float | seed_resolution | ||
| ) |
Конструктор, задающий значения по умолчанию для переменных-членов.
- Параметры
-
[in] voxel_resolution Разрешение используемых вокселей (в метрах) [in] seed_resolution Средний размер получаемых супер-вокселей (в метрах)
Определение в строке 48 файла supervoxel_clustering.hpp.
~SupervoxelClustering()
| overridedefault |
Этот деструктор уничтожает облако, нормали и метод поиска, используемый для нахождения соседей.
Иными словами, он освобождает память.
Документация функций-членов
extract()
| virtual |
Этот метод запускает алгоритм сегментации и возвращает супер-воксели, полученные в ходе сегментации.
- Параметры
-
[out] supervoxel_clusters Отображение меток на указатели на структуры супер-вокселей
Определение в строке 91 файла supervoxel_clustering.hpp.
getLabeledCloud()
| pcl::PointCloud< pcl::PointXYZL >::Ptr pcl::SupervoxelClustering< PointT >::getLabeledCloud |
Возвращает размеченное облако. Точки, принадлежащие одному супер-вокселю, имеют одинаковую метку.
Метки сегментов начинаются с 1; неразмеченные точки имеют метку 0.
Определение в строке 576 файла supervoxel_clustering.hpp.
Ссылки: pcl::PointCloud< PointT >::begin(), pcl::copyPointCloud(), pcl::PointCloud< PointT >::end(), pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::getData() и pcl::SupervoxelClustering< PointT >::VoxelData::owner_.
getLabeledVoxelCloud()
| pcl::PointCloud< pcl::PointXYZL >::Ptr pcl::SupervoxelClustering< PointT >::getLabeledVoxelCloud |
Возвращает размеченное вокселизированное облако. Точки, принадлежащие одному супер-вокселю, имеют одинаковую метку.
Метки сегментов начинаются с 1; неразмеченные точки имеют метку 0.
Определение в строке 554 файла supervoxel_clustering.hpp.
Ссылки: pcl::PointCloud< PointT >::begin(), pcl::copyPointCloud() и pcl::PointCloud< PointT >::end().
getMaxLabel()
| int pcl::SupervoxelClustering< PointT >::getMaxLabel |
Возвращает текущую максимальную (наибольшую) метку.
Определение в строке 677 файла supervoxel_clustering.hpp.
getSeedResolution()
| float pcl::SupervoxelClustering< PointT >::getSeedResolution |
Возвращает разрешение начальных вокселей октодерева.
Определение в строке 633 файла supervoxel_clustering.hpp.
getSupervoxelAdjacency()
| void pcl::SupervoxelClustering< PointT >::getSupervoxelAdjacency | ( | std::multimap< std::uint32_t, std::uint32_t > & | label_adjacency | ) | const |
Возвращает мультимножество, описывающее смежность супер-вокселей.
- Параметры
-
[out] label_adjacency Мультимножество, сопоставляющее метке супер-вокселя метки всех смежных супер-вокселей
Определение в строке 528 файла supervoxel_clustering.hpp.
getSupervoxelAdjacencyList()
| void pcl::SupervoxelClustering< PointT >::getSupervoxelAdjacencyList | ( | VoxelAdjacencyList & | adjacency_list_arg | ) | const |
Возвращает список смежности (библиотеки графов Boost), описывающий связи между супер-вокселями.
- Параметры
-
[out] adjacency_list_arg Граф BGL, в котором вершины — метки супер-вокселей, а рёбра обозначают отношения соприкосновения
Определение в строке 477 файла supervoxel_clustering.hpp.
getVoxelCentroidCloud()
| pcl::PointCloud< PointT >::Ptr pcl::SupervoxelClustering< PointT >::getVoxelCentroidCloud |
Возвращает глубокую копию облака центроидов вокселей.
Определение в строке 545 файла supervoxel_clustering.hpp.
Ссылки: pcl::copyPointCloud().
getVoxelResolution()
| float pcl::SupervoxelClustering< PointT >::getVoxelResolution |
Получить разрешение вокселей октодере.
Определение в строке 618 файла supervoxel_clustering.hpp.
makeSupervoxelNormalCloud()
| static |
Статическая вспомогательная функция, возвращающая облако точек с нормалями для входных супервокселей.
- Параметры
-
[in] supervoxel_clusters Карта кластеров супервокселей, полученная из этого класса Supervoxel
- Возвращает
- Облако PointNormals супервокселей
Определение в строке 603 файла supervoxel_clustering.hpp.
Ссылки: pcl::PointCloud< PointT >::begin() и pcl::PointCloud< PointT >::resize().
refineSupervoxels()
| virtual |
Этот метод уточняет вычисленные супервоксели; вызывать его можно только после extract.
- Параметры
-
[in] num_itr Количество итераций уточнения (обычно достаточно 2 или 3) [out] supervoxel_clusters Полученные уточнённые супервоксели
Определение в строке 143 файла supervoxel_clustering.hpp.
setColorImportance()
| void pcl::SupervoxelClustering< PointT >::setColorImportance | ( | float | val | ) |
Задать важность цвета для супервокселей.
Определение в строке 648 файла supervoxel_clustering.hpp.
setInputCloud()
| override |
Этот метод задаёт облако точек, которое будет разбито на супервоксели.
- Параметры
-
[in] cloud Облако точек для разбиения на супервоксели
Определение в строке 64 файла supervoxel_clustering.hpp.
Ссылки: pcl::PointCloud< PointT >::empty().
setNormalCloud()
| virtual |
Этот метод задаёт нормали для супервокселей (размер облака нормалей должен совпадать с размером входного облака)
- Параметры
-
[in] normal_cloud Входные нормали
Определение в строке 78 файла supervoxel_clustering.hpp.
setNormalImportance()
| void pcl::SupervoxelClustering< PointT >::setNormalImportance | ( | float | val | ) |
Задать важность скалярного произведения нормалей для супервокселей.
Определение в строке 662 файла supervoxel_clustering.hpp.
setSeedResolution()
| void pcl::SupervoxelClustering< PointT >::setSeedResolution | ( | float | seed_resolution | ) |
Задать разрешение вокселей-зёрен октодере.
Определение в строке 640 файла supervoxel_clustering.hpp.
setSpatialImportance()
| void pcl::SupervoxelClustering< PointT >::setSpatialImportance | ( | float | val | ) |
Задать важность пространственного расстояния для супервокселей.
Определение в строке 655 файла supervoxel_clustering.hpp.
setUseSingleCameraTransform()
| void pcl::SupervoxelClustering< PointT >::setUseSingleCameraTransform | ( | bool | val | ) |
Задать, следует ли использовать преобразование для одной камеры.
- Примечание
- По умолчанию оно используется для организованных облаков, но не для неорганизованных; этот параметр переопределяет такое поведение. Преобразование для одной камеры масштабирует размер ячейки так, что он экспоненциально увеличивается с глубиной (координата z). Это позволяет учесть уменьшение плотности точек с глубиной при использовании RGB-D-камеры. Без преобразования после некоторой глубины смежность вокселей нарушается, если только не задать большой размер вокселя. Применение преобразования позволяет сохранять детализацию на близком расстоянии и одновременно обеспечивать смежность на большом расстоянии. Здесь используется следующее преобразование: x /= z; y /= z; z = ln(z); Это преобразование применяется при вычислении ячеек октодере в OctreePointCloudAdjacency
Определение в строке 669 файла supervoxel_clustering.hpp.
setVoxelResolution()
| void pcl::SupervoxelClustering< PointT >::setVoxelResolution | ( | float | resolution | ) |
Задать разрешение вокселей октодере.
Определение в строке 625 файла supervoxel_clustering.hpp.
Документация по друзьям и связанным функциям
boost::checked_delete
| friend |
SupervoxelHelper
| friend |
Определение в строке 130 файла supervoxel_clustering.h.
Документация для этого класса сгенерирована по следующим файлам:
- pcl/segmentation/supervoxel_clustering.h
- pcl/segmentation/impl/supervoxel_clustering.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_supervoxel_clustering.html