Spec-Zone.ru › PointCloudLibrary

Алгоритм сегментации, разделяющий граф супервокселей. Подробнее...

#include <pcl/segmentation/cpc_segmentation.h>

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

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

CPCSegmentation ()
~CPCSegmentation () override
void segment ()
Объединить суперпиксели, используя срезы через локальные выпуклости. Подробнее...
void setCutting (const std::uint32_t max_cuts=20, const std::uint32_t cutting_min_segments=0, const float cutting_min_score=0.16, const bool locally_constrained=true, const bool directed_cutting=true, const bool clean_cutting=false)
Определяет, нужно ли использовать секущие плоскости. Подробнее...
void setRANSACIterations (const std::uint32_t ransac_iterations)
Установить количество итераций для шага взвешенного RANSAC (лучшие оценки срезов) Подробнее...
- Общедоступные члены-функции, унаследованные от pcl::LCCPSegmentation< PointT >
LCCPSegmentation ()
virtual ~LCCPSegmentation ()
void reset ()
Сбросить внутреннюю память. Подробнее...
void setInputSupervoxels (const std::map< std::uint32_t, typename pcl::Supervoxel< PointT >::Ptr > &supervoxel_clusters_arg, const std::multimap< std::uint32_t, std::uint32_t > &label_adjacency_arg)
Установить кластеры суперпикселей, а также граф смежности для сегментации. Эти параметры генерируются с помощью класса SupervoxelClustering. Подробнее...
void segment ()
Объединить суперпиксели, используя локальную выпуклость. Подробнее...
void relabelCloud (pcl::PointCloud< pcl::PointXYZL > &labeled_cloud_arg)
Переименовывает облако с метками суперпикселей с вычисленными метками сегмента. Подробнее...
void getSegmentToSupervoxelMap (std::map< std::uint32_t, std::set< std::uint32_t > > &segment_supervoxel_map_arg) const
Получить карту <SegmentID, std::set<SuperVoxel IDs> > Подробнее...
void getSupervoxelToSegmentMap (std::map< std::uint32_t, std::uint32_t > &supervoxel_segment_map_arg) const
Получить карту <Supervoxel_ID, Segment_ID> Подробнее...
void getSegmentAdjacencyMap (std::map< std::uint32_t, std::set< std::uint32_t > > &segment_adjacency_map_arg)
Получить карту <SegmentID, std::set<Neighboring SegmentIDs> > Подробнее...
float getConcavityToleranceThreshold () const
Получить порог допуска вогнутости. Подробнее...
void getSVAdjacencyList (SupervoxelAdjacencyList &adjacency_list_arg) const
Получить граф смежности суперпикселей с классифицированными рёбрами (boost::adjacency_list). Подробнее...
void setConcavityToleranceThreshold (float concavity_tolerance_threshold_arg)
Установить порог для нормали. Подробнее...
void setSmoothnessCheck (bool use_smoothness_check_arg, float voxel_res_arg, float seed_res_arg, float smoothness_threshold_arg=0.1)
Определяет, выполняется ли проверка гладкости во время сегментации, пытаясь аннулировать рёбра негладких соединённых рёбер (шагов). Подробнее...
void setSanityCheck (const bool use_sanity_criterion_arg)
Определяет, хотим ли мы использовать критерий разумности для аннулирования отдельных соединённых блоков. Подробнее...
void setKFactor (const std::uint32_t k_factor_arg)
Установить значение, используемое для k выпуклости. Подробнее...
void setMinSegmentSize (const std::uint32_t min_segment_size_arg)
Установить значение min_segment_size_, используемое в mergeSmallSegments. Подробнее...

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

- Публичные типы, унаследованные от pcl::LCCPSegmentation< PointT >
using SupervoxelAdjacencyList = boost::adjacency_list< boost::setS, boost::setS, boost::undirectedS, std::uint32_t, EdgeProperties >
using VertexIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::vertex_iterator
using AdjacencyIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::adjacency_iterator
using VertexID = typename boost::graph_traits< SupervoxelAdjacencyList >::vertex_descriptor
using EdgeIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::edge_iterator
using OutEdgeIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::out_edge_iterator
using EdgeID = typename boost::graph_traits< SupervoxelAdjacencyList >::edge_descriptor
- Защищенные методы-члены, унаследованные от pcl::LCCPSegmentation< PointT >
void mergeSmallSegments ()
Сегменты, меньшие min_segment_size_, объединяются с меткой самого крупного соседа. Подробнее...
void computeSegmentAdjacency ()
Вычисление смежности сегментов. Подробнее...
void prepareSegmentation (const std::map< std::uint32_t, typename pcl::Supervoxel< PointT >::Ptr > &supervoxel_clusters_arg, const std::multimap< std::uint32_t, std::uint32_t > &label_adjacency_arg)
Вызывается в setInputSupervoxels в основном для резервирования необходимой памяти. Подробнее...
void doGrouping ()
Выполнить поиск в глубину по графу и рекурсивно сгруппировать все суперпиксели с выпуклыми соединениями. Подробнее...
void recursiveSegmentGrowing (const VertexID &queryPointID, const unsigned int group_label)
Присваивает соседей точки запроса к той же группе, что и точка запроса. Подробнее...
void calculateConvexConnections (SupervoxelAdjacencyList &adjacency_list_arg)
Вычисляет выпуклость ребер и сохраняет это в графе смежности. Подробнее...
void applyKconvexity (const unsigned int k_arg)
Соединения выпуклые только в том случае, если это верно для по крайней мере k_arg общих соседей двух областей. Подробнее...
bool connIsConvex (const std::uint32_t source_label_arg, const std::uint32_t target_label_arg, float &normal_angle)
Возвращает true, если соединение между источником и целью выпуклое. Подробнее...
- Защищенные атрибуты, унаследованные от pcl::LCCPSegmentation< PointT >
float concavity_tolerance_threshold_
*** Параметры *** /// Подробнее...
bool grouping_data_valid_
Помечает, если данные группировки (sv_adjacency_list_, sv_label_to_seg_label_map_, processed_) доступны. Подробнее...
bool supervoxels_set_
Помечает, если суперпиксели были установлены вызовом setInputSupervoxels. Подробнее...
bool use_smoothness_check_
Определяет, используется ли проверка гладкости во время сегментации. Подробнее...
float smoothness_threshold_
Два суперпикселя не гладкие, если расстояние между их плоскостями DIST > (ожидаемое_расстояние + smoothness_threshold_*разрешение_пикселя). Подробнее...
bool use_sanity_check_
Определяет, используем ли мы проверку на корректность, которая пытается найти и сделать недействительными одиночные соединенные области. Подробнее...
float seed_resolution_
Разрешение начальной точки суперпикселей (используется только для проверки гладкости) Подробнее...
float voxel_resolution_
Разрешение пикселя, используемое для построения суперпикселей (используется только для проверки гладкости) Подробнее...
std::uint32_t k_factor_
Коэффициент, используемый для k-выпуклости. Подробнее...
std::uint32_t min_segment_size_
Минимальный размер сегмента. Подробнее...
std::map< std::uint32_t, bool > processed_
Хранит метки суперпикселей, которые уже посещались во время рекурсивной группировки. Подробнее...
SupervoxelAdjacencyList sv_adjacency_list_
Граф смежности с метками суперпикселей в качестве узлов и ребрами между смежными суперпикселями. Подробнее...
std::map< std::uint32_t, typename pcl::Supervoxel< PointT >::Ptr > sv_label_to_supervoxel_map_
карта от меток суперпикселей до объектов суперпикселей
Подробнее...
std::map< std::uint32_t, std::uint32_t > sv_label_to_seg_label_map_
Хранение соответствия между исходными метками суперпикселей и новыми метками сегментации. Подробнее...
std::map< std::uint32_t, std::set< std::uint32_t > > seg_label_to_sv_list_map_
отображение метки сегмента на множество меток суперпикселей Метка на множество меток Суперпикселей Подробнее...
std::map< std::uint32_t, std::set< std::uint32_t > > seg_label_to_neighbor_set_map_
отображение < ID сегмента, множество меток соседних сегментов> Подробнее...

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

шаблон<typename PointT>
класс pcl::CPCSegmentation< PointT >

Алгоритм сегментации, разделяющий граф суперпикселей.

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

Примечание
Если вы используете это в научной работе, пожалуйста, процитируйте следующую статью: М. Шёлер, Ж. Папон, Ф. Вергоэтер Ограниченные плоские срезы - Разбиение объекта для облаков точек В труду IEEE Конференции по компьютерному зрению и распознаванию образов (CVPR) 2015 Наследует большую часть своей функциональности от LCCPSegmentation
Автор
Маркус Шёлер (mscho.nosp@m.eler.nosp@m.@web..nosp@m.de)

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

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

CPCSegmentation()

шаблон<typename PointT >
pcl::CPCSegmentation< PointT >::CPCSegmentation

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

~CPCSegmentation()

шаблон<typename PointT >
pcl::CPCSegmentation< PointT >::~CPCSegmentation ( )
overridedefault

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

segment()

шаблон<typename PointT >
void pcl::CPCSegmentation< PointT >::segment

Объединение суперпикселей с помощью плоскостей по локальным выпуклостям.

Входные параметры генерируются с помощью класса SupervoxelClustering. Для получения выходных данных используйте метод relabelCloud.

Примечание
Существует три способа получить сегментацию после этого (унаследованное от LCCPSegmentation): relabelCloud, getSupervoxelToSegmentMap и getSupervoxelToSegmentMap

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

setCutting()

шаблон<typename PointT >
void pcl::CPCSegmentation< PointT >::setCutting ( const std::uint32_t max_cuts = 20,
const std::uint32_t cutting_min_segments = 0,
const float cutting_min_score = 0.16,
const bool locally_constrained = true,
const bool directed_cutting = true,
const bool clean_cutting = false
)
inline

Определяет, хотим ли мы использовать секущие плоскости.

Аргументы
[in] max_cuts Максимальное количество разрезов
[in] cutting_min_segments Минимальный размер сегмента для разреза
[in] cutting_min_score Минимальный балл, который должен получить предлагаемый разрез для выполнения
[in] locally_constrained Определяет, ограничиваем ли мы наши разрезы локально
[in] directed_cutting Определяет, предпочитаем ли мы разрезы, перпендикулярные направлению ребра
[in] clean_cutting Определяет, делаем ли мы срез только по ребрам с суперпикселями по разные стороны от плоскости (чистое) или по всем ребрам в пределах расстояния seed_resolution_ до плоскости (не чистое). Последнее использовалось в статье.

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

setRANSACIterations()

template<typename PointT >
void pcl::CPCSegmentation< PointT >::setRANSACIterations ( const std::uint32_t ransac_iterations )
inline

Установить количество итераций для шага взвешенного RANSAC (лучшие оценки срезов)

Параметры
[in] ransac_iterations Количество итераций

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


The documentation for this class was generated from the following files:
  • pcl/segmentation/cpc_segmentation.h
  • pcl/segmentation/impl/cpc_segmentation.hpp

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

Spec-Zone.ru

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