Spec-Zone.ru › PointCloudLibrary

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

#include <pcl/segmentation/supervoxel_clustering.h>

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

Классы

class VoxelData
VoxelData — структура для хранения данных в pcl::octree::OctreePointCloudAdjacencyContainer. Подробнее...

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

using LeafContainerT = pcl::octree::OctreePointCloudAdjacencyContainer< PointT, VoxelData >
using LeafVectorT = std::vector< LeafContainerT * >
using PointCloudT = pcl::PointCloud< PointT >
using NormalCloudT = pcl::PointCloud< Normal >
using OctreeAdjacencyT = pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT >
using OctreeSearchT = pcl::octree::OctreePointCloudSearch< PointT >
using KdTreeT = pcl::search::KdTree< PointT >
using IndicesPtr = pcl::IndicesPtr
using VoxelAdjacencyList = boost::adjacency_list< boost::setS, boost::setS, boost::undirectedS, std::uint32_t, float >
using VoxelID = VoxelAdjacencyList::vertex_descriptor
using EdgeID = VoxelAdjacencyList::edge_descriptor
- Публичные типы, унаследованные от pcl::PCLBase< PointT >
using PointCloud = pcl::PointCloud< PointT >
using PointCloudPtr = typename PointCloud::Ptr
using PointCloudConstPtr = typename PointCloud::ConstPtr
using PointIndicesPtr = PointIndices::Ptr
using PointIndicesConstPtr = PointIndices::ConstPtr

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

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
Возвращает текущую максимальную (наибольшую) метку. Подробнее...
- Общедоступные функции-члены, унаследованные от pcl::PCLBase< PointT >
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 *)

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

- Защищённые функции-члены, унаследованные от pcl::PCLBase< PointT >
bool initCompute ()
Этот метод следует вызывать перед началом фактического вычисления. Подробнее...
bool deinitCompute ()
Этот метод следует вызывать после завершения фактического вычисления. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::PCLBase< PointT >
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
Автор
Jeremie Papon (jpapo.nosp@m.n@gm.nosp@m.ail.c.nosp@m.om)

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

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

EdgeID

template<typename PointT >
using pcl::SupervoxelClustering< PointT >::EdgeID = VoxelAdjacencyList::edge_descriptor

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

IndicesPtr

template<typename PointT >
using pcl::SupervoxelClustering< PointT >::IndicesPtr = pcl::IndicesPtr

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

KdTreeT

template<typename PointT >
using pcl::SupervoxelClustering< PointT >::KdTreeT = pcl::search::KdTree<PointT>

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

LeafContainerT

template<typename PointT >
using pcl::SupervoxelClustering< PointT >::LeafContainerT = pcl::octree::OctreePointCloudAdjacencyContainer<PointT, VoxelData>

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

LeafVectorT

template<typename PointT >
using pcl::SupervoxelClustering< PointT >::LeafVectorT = std::vector<LeafContainerT *>

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

NormalCloudT

template<typename PointT >
using pcl::SupervoxelClustering< PointT >::NormalCloudT = pcl::PointCloud<Normal>

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

OctreeAdjacencyT

template<typename PointT >
using pcl::SupervoxelClustering< PointT >::OctreeAdjacencyT = pcl::octree::OctreePointCloudAdjacency<PointT, LeafContainerT>

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

OctreeSearchT

template<typename PointT >
using pcl::SupervoxelClustering< PointT >::OctreeSearchT = pcl::octree::OctreePointCloudSearch<PointT>

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

PointCloudT

template<typename PointT >
using pcl::SupervoxelClustering< PointT >::PointCloudT = pcl::PointCloud<PointT>

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

VoxelAdjacencyList

template<typename PointT >
using pcl::SupervoxelClustering< PointT >::VoxelAdjacencyList = boost::adjacency_list<boost::setS, boost::setS, boost::undirectedS, std::uint32_t, float>

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

VoxelID

template<typename PointT >
using pcl::SupervoxelClustering< PointT >::VoxelID = VoxelAdjacencyList::vertex_descriptor

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

Документация конструктора и деструктора

SupervoxelClustering()

template<typename PointT >
pcl::SupervoxelClustering< PointT >::SupervoxelClustering ( float voxel_resolution,
float seed_resolution
)

Конструктор, задающий значения по умолчанию для переменных-членов.

Параметры
[in] voxel_resolution Разрешение используемых вокселей (в метрах)
[in] seed_resolution Средний размер получаемых супер-вокселей (в метрах)

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

~SupervoxelClustering()

template<typename PointT >
pcl::SupervoxelClustering< PointT >::~SupervoxelClustering ( )
overridedefault

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

Иными словами, он освобождает память.

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

extract()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::extract ( std::map< std::uint32_t, typename Supervoxel< PointT >::Ptr > & supervoxel_clusters )
virtual

Этот метод запускает алгоритм сегментации и возвращает супер-воксели, полученные в ходе сегментации.

Параметры
[out] supervoxel_clusters Отображение меток на указатели на структуры супер-вокселей

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

getLabeledCloud()

template<typename PointT >
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()

template<typename PointT >
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()

template<typename PointT >
int pcl::SupervoxelClustering< PointT >::getMaxLabel

Возвращает текущую максимальную (наибольшую) метку.

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

getSeedResolution()

template<typename PointT >
float pcl::SupervoxelClustering< PointT >::getSeedResolution

Возвращает разрешение начальных вокселей октодерева.

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

getSupervoxelAdjacency()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::getSupervoxelAdjacency ( std::multimap< std::uint32_t, std::uint32_t > & label_adjacency ) const

Возвращает мультимножество, описывающее смежность супер-вокселей.

Параметры
[out] label_adjacency Мультимножество, сопоставляющее метке супер-вокселя метки всех смежных супер-вокселей

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

getSupervoxelAdjacencyList()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::getSupervoxelAdjacencyList ( VoxelAdjacencyList & adjacency_list_arg ) const

Возвращает список смежности (библиотеки графов Boost), описывающий связи между супер-вокселями.

Параметры
[out] adjacency_list_arg Граф BGL, в котором вершины — метки супер-вокселей, а рёбра обозначают отношения соприкосновения

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

getVoxelCentroidCloud()

template<typename PointT >
pcl::PointCloud< PointT >::Ptr pcl::SupervoxelClustering< PointT >::getVoxelCentroidCloud

Возвращает глубокую копию облака центроидов вокселей.

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

Ссылки: pcl::copyPointCloud().

getVoxelResolution()

template<typename PointT >
float pcl::SupervoxelClustering< PointT >::getVoxelResolution

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

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

makeSupervoxelNormalCloud()

template<typename PointT >
pcl::PointCloud< pcl::PointNormal >::Ptr pcl::SupervoxelClustering< PointT >::makeSupervoxelNormalCloud ( std::map< std::uint32_t, typename Supervoxel< PointT >::Ptr > & supervoxel_clusters )
static

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

Параметры
[in] supervoxel_clusters Карта кластеров супервокселей, полученная из этого класса Supervoxel
Возвращает
Облако PointNormals супервокселей

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

Ссылки: pcl::PointCloud< PointT >::begin() и pcl::PointCloud< PointT >::resize().

refineSupervoxels()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::refineSupervoxels ( int num_itr,
std::map< std::uint32_t, typename Supervoxel< PointT >::Ptr > & supervoxel_clusters
)
virtual

Этот метод уточняет вычисленные супервоксели; вызывать его можно только после extract.

Параметры
[in] num_itr Количество итераций уточнения (обычно достаточно 2 или 3)
[out] supervoxel_clusters Полученные уточнённые супервоксели

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

setColorImportance()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::setColorImportance ( float val )

Задать важность цвета для супервокселей.

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

setInputCloud()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::setInputCloud ( const typename pcl::PointCloud< PointT >::ConstPtr & cloud )
override

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

Параметры
[in] cloud Облако точек для разбиения на супервоксели

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

Ссылки: pcl::PointCloud< PointT >::empty().

setNormalCloud()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::setNormalCloud ( typename NormalCloudT::ConstPtr normal_cloud )
virtual

Этот метод задаёт нормали для супервокселей (размер облака нормалей должен совпадать с размером входного облака)

Параметры
[in] normal_cloud Входные нормали

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

setNormalImportance()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::setNormalImportance ( float val )

Задать важность скалярного произведения нормалей для супервокселей.

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

setSeedResolution()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::setSeedResolution ( float seed_resolution )

Задать разрешение вокселей-зёрен октодере.

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

setSpatialImportance()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::setSpatialImportance ( float val )

Задать важность пространственного расстояния для супервокселей.

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

setUseSingleCameraTransform()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::setUseSingleCameraTransform ( bool val )

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

Примечание
По умолчанию оно используется для организованных облаков, но не для неорганизованных; этот параметр переопределяет такое поведение. Преобразование для одной камеры масштабирует размер ячейки так, что он экспоненциально увеличивается с глубиной (координата z). Это позволяет учесть уменьшение плотности точек с глубиной при использовании RGB-D-камеры. Без преобразования после некоторой глубины смежность вокселей нарушается, если только не задать большой размер вокселя. Применение преобразования позволяет сохранять детализацию на близком расстоянии и одновременно обеспечивать смежность на большом расстоянии. Здесь используется следующее преобразование: x /= z; y /= z; z = ln(z); Это преобразование применяется при вычислении ячеек октодере в OctreePointCloudAdjacency

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

setVoxelResolution()

template<typename PointT >
void pcl::SupervoxelClustering< PointT >::setVoxelResolution ( float resolution )

Задать разрешение вокселей октодере.

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

Документация по друзьям и связанным функциям

boost::checked_delete

template<typename PointT >
void boost::checked_delete ( const typename pcl::SupervoxelClustering< PointT >::SupervoxelHelper * )
friend

SupervoxelHelper

template<typename PointT >
friend class 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

Spec-Zone.ru

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