Подробное описание
Обзор
Библиотека pcl_segmentation содержит алгоритмы сегментации облака точек на отдельные кластеры. Эти алгоритмы лучше всего подходят для обработки облака точек, состоящего из нескольких пространственно изолированных областей. В таких случаях кластеризация часто используется для разделения облака на составляющие его части, которые затем можно обрабатывать независимо.
Требования
Классы | |
| класс | pcl::gpu::EuclideanClusterExtraction< PointT > |
|
EuclideanClusterExtraction представляет класс сегментации для извлечения кластеров в евклидовом смысле с использованием pcl::gpu::octree Подробнее... |
|
| класс | pcl::gpu::EuclideanLabeledClusterExtraction< PointT > |
|
EuclideanLabeledClusterExtraction представляет класс сегментации для извлечения кластеров в евклидовом смысле с использованием pcl::gpu::octree Подробнее... |
|
| класс | pcl::ConditionalEuclideanClustering< PointT > |
|
ConditionalEuclideanClustering выполняет сегментацию на основе евклидова расстояния и заданного пользователем условия кластеризации. Подробнее... |
|
| класс | pcl::CPCSegmentation< PointT > |
| Алгоритм сегментации, разбивающий граф супервокселей на части. Подробнее... |
|
| класс | pcl::EuclideanClusterExtraction< PointT > |
|
EuclideanClusterExtraction представляет класс сегментации для извлечения кластеров в евклидовом смысле. Подробнее... |
|
| класс | pcl::LabeledEuclideanClusterExtraction< PointT > |
|
LabeledEuclideanClusterExtraction представляет класс сегментации для извлечения кластеров в евклидовом смысле с информацией о метках. Подробнее... |
|
| класс | pcl::ExtractPolygonalPrismData< PointT > |
|
ExtractPolygonalPrismData использует набор индексов точек, представляющих плоскую модель, и вместе с заданной высотой формирует трёхмерную многоугольную призму. Подробнее... |
|
| класс | pcl::GrabCut< PointT > |
| Реализация сегментации GrabCut из работы «GrabCut — интерактивное выделение переднего плана с использованием итеративных разрезов графа» Карстена Ротера, Владимира Колмогорова и Эндрю Блейка. Подробнее... |
|
| класс | pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap > |
| Многометочная сегментация графа с использованием случайных блужданий. Подробнее... |
|
| класс | pcl::LCCPSegmentation< PointT > |
| Простой алгоритм сегментации, разбивающий граф супервокселей на группы локально выпуклых связанных супервокселей, разделённых вогнутыми границами. Подробнее... |
|
| класс | pcl::MinCutSegmentation< PointT > |
| Этот класс реализует алгоритм сегментации на основе минимального разреза графа. Подробнее... |
|
| класс | pcl::OrganizedConnectedComponentSegmentation< PointT, PointLT > |
|
OrganizedConnectedComponentSegmentation позволяет находить связные компоненты в структурированных облаках точек с помощью функции сравнения. Подробнее... |
|
| класс | pcl::RegionGrowing< PointT, NormalT > |
| Реализует хорошо известный алгоритм сегментации наращиванием областей. Подробнее... |
|
| класс | pcl::RegionGrowingRGB< PointT, NormalT > |
| Реализует хорошо известный алгоритм сегментации наращиванием областей на основе цвета точек. Подробнее... |
|
| класс | pcl::SACSegmentation< PointT > |
|
SACSegmentation представляет класс сегментации Nodelet для методов и моделей Sample Consensus; по сути, он создаёт оболочку Nodelet для сегментации общего назначения на основе SAC. Подробнее... |
|
| класс | pcl::SACSegmentationFromNormals< PointT, PointNT > |
|
SACSegmentationFromNormals представляет класс сегментации PCL Nodelet для методов и моделей Sample Consensus, которым для оценки требуются нормали поверхности. Подробнее... |
|
| класс | pcl::SeededHueSegmentation |
|
SeededHueSegmentation. Подробнее... |
|
| класс | pcl::SegmentDifferences< PointT > |
|
SegmentDifferences вычисляет различия между двумя пространственно совмещёнными облаками точек и возвращает точки, отличающиеся не более чем на заданный порог расстояния. Подробнее... |
|
| класс | pcl::SupervoxelClustering< PointT > |
| Реализует алгоритм супер-вокселей на основе воксельной структуры, нормалей и значений RGB. Подробнее... |
|
Функции | |
| bool | pcl::gpu::comparePointClusters (const pcl::PointIndices &a, const pcl::PointIndices &b) |
| Метод сортировки кластеров (для std::sort). Подробнее... |
|
| bool | pcl::gpu::compareLabeledPointClusters (const pcl::PointIndices &a, const pcl::PointIndices &b) |
| Метод сортировки кластеров (для std::sort). Подробнее... |
|
| template<typename PointT > | |
| void | pcl::extractEuclideanClusters (const PointCloud< PointT > &cloud, const typename search::Search< PointT >::Ptr &tree, float tolerance, std::vector< PointIndices > &clusters, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)()) |
| Разбивает область пространства на кластеры на основе евклидова расстояния между точками. Подробнее... |
|
| template<typename PointT > | |
| void | pcl::extractEuclideanClusters (const PointCloud< PointT > &cloud, const Indices &indices, const typename search::Search< PointT >::Ptr &tree, float tolerance, std::vector< PointIndices > &clusters, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)()) |
| Разбивает область пространства на кластеры на основе евклидова расстояния между точками. Подробнее... |
|
| template<typename PointT , typename Normal > | |
| void | pcl::extractEuclideanClusters (const PointCloud< PointT > &cloud, const PointCloud< Normal > &normals, float tolerance, const typename KdTree< PointT >::Ptr &tree, std::vector< PointIndices > &clusters, double eps_angle, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)()) |
| Разбивает область пространства на кластеры на основе евклидова расстояния между точками и углового отклонения нормалей между точками. Подробнее... |
|
| template<typename PointT , typename Normal > | |
| void | pcl::extractEuclideanClusters (const PointCloud< PointT > &cloud, const PointCloud< Normal > &normals, const Indices &indices, const typename KdTree< PointT >::Ptr &tree, float tolerance, std::vector< PointIndices > &clusters, double eps_angle, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)()) |
| Разбивает область пространства на кластеры на основе евклидова расстояния между точками и углового отклонения нормалей между точками. Подробнее... |
|
| bool | pcl::comparePointClusters (const pcl::PointIndices &a, const pcl::PointIndices &b) |
| Метод сортировки кластеров (для std::sort). Подробнее... |
|
| template<typename PointT > | |
| void | pcl::extractLabeledEuclideanClusters (const PointCloud< PointT > &cloud, const typename search::Search< PointT >::Ptr &tree, float tolerance, std::vector< std::vector< PointIndices >> &labeled_clusters, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=std::numeric_limits< unsigned int >::max()) |
| Разбивает область пространства на кластеры на основе евклидова расстояния между точками. Подробнее... |
|
| bool | pcl::compareLabeledPointClusters (const pcl::PointIndices &a, const pcl::PointIndices &b) |
| Метод сортировки кластеров (для std::sort). Подробнее... |
|
| template<typename PointT > | |
| bool | pcl::isPointIn2DPolygon (const PointT &point, const pcl::PointCloud< PointT > &polygon) |
| Универсальный метод проверки того, находится ли 3D-точка внутри или снаружи заданного 2D-многоугольника. Подробнее... |
|
| template<typename PointT > | |
| bool | pcl::isXYPointIn2DXYPolygon (const PointT &point, const pcl::PointCloud< PointT > &polygon) |
| Проверяет, находится ли 2D-точка (учитываются только координаты X и Y!) внутри или снаружи заданного многоугольника. Подробнее... |
|
| template<class Graph > | |
| bool | pcl::segmentation::randomWalker (Graph &graph) |
| Многометочная сегментация графа с использованием случайных блужданий. Подробнее... |
|
| template<class Graph , class EdgeWeightMap , class VertexColorMap > | |
| bool | pcl::segmentation::randomWalker (Graph &graph, EdgeWeightMap weights, VertexColorMap colors) |
| Многометочная сегментация графа с использованием случайных блужданий. Подробнее... |
|
| template<class Graph , class EdgeWeightMap , class VertexColorMap > | |
| bool | pcl::segmentation::randomWalker (Graph &graph, EdgeWeightMap weights, VertexColorMap colors, Eigen::Matrix< typename boost::property_traits< EdgeWeightMap >::value_type, Eigen::Dynamic, Eigen::Dynamic > &potentials, std::map< typename boost::property_traits< VertexColorMap >::value_type, std::size_t > &colors_to_columns_map) |
| Многометочная сегментация графа с использованием случайных блужданий. Подробнее... |
|
| void | pcl::seededHueSegmentation (const PointCloud< PointXYZRGB > &cloud, const search::Search< PointXYZRGB >::Ptr &tree, float tolerance, PointIndices &indices_in, PointIndices &indices_out, float delta_hue=0.0) |
| Разбивает область пространства на кластеры на основе евклидова расстояния между точками. Подробнее... |
|
| void | pcl::seededHueSegmentation (const PointCloud< PointXYZRGB > &cloud, const search::Search< PointXYZRGBL >::Ptr &tree, float tolerance, PointIndices &indices_in, PointIndices &indices_out, float delta_hue=0.0) |
| Разбивает область пространства на кластеры на основе евклидова расстояния между точками. Подробнее... |
|
| template<typename PointT > | |
| void | pcl::getPointCloudDifference (const pcl::PointCloud< PointT > &src, double threshold, const typename pcl::search::Search< PointT >::Ptr &tree, pcl::PointCloud< PointT > &output) |
| Получает разность двух совмещённых облаков точек в виде другого облака точек с заданным порогом расстояния. Подробнее... |
|
Документация функций
compareLabeledPointClusters() [1/2]
| inline |
#include </__w/1/s/gpu/segmentation/include/pcl/gpu/segmentation/gpu_extract_labeled_clusters.h>
Метод сортировки кластеров (для std::sort).
Определение в строке 209 файла gpu_extract_labeled_clusters.h.
Ссылки: pcl::PointIndices::indices.
Используется в: pcl::gpu::EuclideanLabeledClusterExtraction< PointT >::extract().
compareLabeledPointClusters() [2/2]
| inline |
#include <pcl/segmentation/extract_labeled_clusters.h>
Метод сортировки кластеров (для std::sort).
Определение в строке 205 файла extract_labeled_clusters.h.
Ссылки: pcl::PointIndices::indices.
comparePointClusters() [1/2]
| inline |
#include </__w/1/s/gpu/segmentation/include/pcl/gpu/segmentation/gpu_extract_clusters.h>
Метод сортировки кластеров (для std::sort).
Определение в строке 215 файла gpu_extract_clusters.h.
Ссылки: pcl::PointIndices::indices.
Используется в: pcl::EuclideanClusterExtraction< PointT >::extract() и pcl::LabeledEuclideanClusterExtraction< PointT >::extract().
comparePointClusters() [2/2]
| inline |
#include <pcl/segmentation/extract_clusters.h>
Метод сортировки кластеров (для std::sort).
Определение в строке 446 файла extract_clusters.h.
Ссылки: pcl::PointIndices::indices.
extractEuclideanClusters() [1/4]
| void pcl::extractEuclideanClusters | ( | const PointCloud< PointT > & | cloud, |
| const Indices & | indices, | ||
| const typename search::Search< PointT >::Ptr & | tree, | ||
| float | tolerance, | ||
| std::vector< PointIndices > & | clusters, | ||
| unsigned int |
min_pts_per_cluster = 1, | ||
| unsigned int |
max_pts_per_cluster = (std::numeric_limits<int>::max) () | ||
| ) |
#include <pcl/segmentation/extract_clusters.h>
Разбивает область пространства на кластеры на основе евклидова расстояния между точками.
- Параметры
-
cloud сообщение с облаком точек indices список индексов точек, используемых из cloud tree пространственный локатор (например, kd-дерево), используемый для поиска ближайших соседей
- Примечание
- дерево должно быть создано как пространственный локатор для cloud и indices
- Параметры
-
tolerance допуск кластеризации в пространстве, заданный в евклидовом пространстве L2 clusters результирующие кластеры, содержащие индексы точек (в виде вектора PointIndices) min_pts_per_cluster минимальное количество точек в кластере (по умолчанию: 1) max_pts_per_cluster максимальное количество точек в кластере (по умолчанию: максимальное значение int)
Определение в строке 125 файла extract_clusters.hpp.
Ссылки: pcl::search::Search< PointT >::getIndices(), pcl::search::Search< PointT >::getInputCloud(), pcl::search::Search< PointT >::getSortedResults(), pcl::PointCloud< PointT >::header, pcl::PointIndices::header, pcl::PointIndices::indices, pcl::search::Search< PointT >::radiusSearch() и pcl::PointCloud< PointT >::size().
extractEuclideanClusters() [2/4]
| void pcl::extractEuclideanClusters | ( | const PointCloud< PointT > & | cloud, |
| const PointCloud< Normal > & | normals, | ||
| const Indices & | indices, | ||
| const typename KdTree< PointT >::Ptr & | tree, | ||
| float | tolerance, | ||
| std::vector< PointIndices > & | clusters, | ||
| double | eps_angle, | ||
| unsigned int |
min_pts_per_cluster = 1, | ||
| unsigned int |
max_pts_per_cluster = (std::numeric_limits<int>::max) () | ||
| ) |
#include <pcl/segmentation/extract_clusters.h>
Разбивает область пространства на кластеры на основе евклидова расстояния между точками и углового отклонения нормалей между точками.
Каждая точка, добавленная в кластер, становится началом нового поиска в радиусе. Каждая точка в пределах радиуса сравнивается с начальной точкой по углу между нормалями и евклидову расстоянию. Если оба значения меньше соответствующих пороговых значений, точка добавляется в кластер. В общем случае алгоритм кластеризации не остановится на гладких поверхностях, но остановится на поверхностях с острыми краями.
- Параметры
-
cloud сообщение с облаком точек normals сообщение с облаком точек, содержащее информацию о нормалях indices список индексов точек, используемых из cloud tree пространственный индексатор (например, kd-дерево), используемый для поиска ближайших соседей
- Примечание
- дерево должно быть создано как пространственный индексатор для cloud
- Параметры
-
tolerance пространственный допуск кластеризации, измеряемый в евклидовом пространстве L2 clusters результирующие кластеры, содержащие индексы точек (в виде PointIndices) eps_angle максимально допустимая разница между нормалями в радианах при кластеризации/наращивании области min_pts_per_cluster минимальное число точек, которое может содержать кластер (по умолчанию: 1) max_pts_per_cluster максимальное число точек, которое может содержать кластер (по умолчанию: максимальное значение int)
Определение в строке 218 файла extract_clusters.h.
Ссылки: pcl::KdTree< PointT >::getIndices(), pcl::KdTree< PointT >::getInputCloud(), pcl::KdTree< PointT >::getSortedResults(), pcl::PointCloud< PointT >::header, pcl::PointIndices::header, pcl::PointIndices::indices, pcl::PointCloud< PointT >::push_back(), pcl::KdTree< PointT >::radiusSearch() и pcl::PointCloud< PointT >::size().
extractEuclideanClusters() [3/4]
| void pcl::extractEuclideanClusters | ( | const PointCloud< PointT > & | cloud, |
| const PointCloud< Normal > & | normals, | ||
| float | tolerance, | ||
| const typename KdTree< PointT >::Ptr & | tree, | ||
| std::vector< PointIndices > & | clusters, | ||
| double | eps_angle, | ||
| unsigned int |
min_pts_per_cluster = 1, | ||
| unsigned int |
max_pts_per_cluster = (std::numeric_limits<int>::max) () | ||
| ) |
#include <pcl/segmentation/extract_clusters.h>
Разбивает область пространства на кластеры на основе евклидова расстояния между точками и углового отклонения нормалей между точками.
Каждая точка, добавленная в кластер, становится началом нового поиска в радиусе. Каждая точка в пределах радиуса сравнивается с начальной точкой по углу между нормалями и евклидову расстоянию. Если оба значения меньше соответствующих пороговых значений, точка добавляется в кластер. В общем случае алгоритм кластеризации не остановится на гладких поверхностях, но остановится на поверхностях с острыми краями.
- Параметры
-
cloud сообщение с облаком точек normals сообщение с облаком точек, содержащее информацию о нормалях tree пространственный индексатор (например, kd-дерево), используемый для поиска ближайших соседей
- Примечание
- дерево должно быть создано как пространственный индексатор для cloud
- Параметры
-
tolerance пространственный допуск кластеризации, измеряемый в евклидовом пространстве L2 clusters результирующие кластеры, содержащие индексы точек (в виде вектора PointIndices) eps_angle максимально допустимая разница между нормалями в радианах при кластеризации/наращивании области min_pts_per_cluster минимальное число точек, которое может содержать кластер (по умолчанию: 1) max_pts_per_cluster максимальное число точек, которое может содержать кластер (по умолчанию: максимальное значение int)
Определение в строке 103 файла extract_clusters.h.
Ссылки: pcl::KdTree< PointT >::getInputCloud(), pcl::KdTree< PointT >::getSortedResults(), pcl::PointCloud< PointT >::header, pcl::PointIndices::header, pcl::PointIndices::indices, pcl::PointCloud< PointT >::push_back(), pcl::KdTree< PointT >::radiusSearch() и pcl::PointCloud< PointT >::size().
extractEuclideanClusters() [4/4]
| void pcl::extractEuclideanClusters | ( | const PointCloud< PointT > & | cloud, |
| const typename search::Search< PointT >::Ptr & | tree, | ||
| float | tolerance, | ||
| std::vector< PointIndices > & | clusters, | ||
| unsigned int |
min_pts_per_cluster = 1, | ||
| unsigned int |
max_pts_per_cluster = (std::numeric_limits<int>::max) () | ||
| ) |
#include <pcl/segmentation/extract_clusters.h>
Разбивает область пространства на кластеры на основе евклидова расстояния между точками.
- Параметры
-
cloud сообщение с облаком точек tree пространственный индексатор (например, kd-дерево), используемый для поиска ближайших соседей
- Примечание
- дерево должно быть создано как пространственный индексатор для cloud
- Параметры
-
tolerance пространственный допуск кластеризации, измеряемый в евклидовом пространстве L2 clusters результирующие кластеры, содержащие индексы точек (в виде вектора PointIndices) min_pts_per_cluster минимальное число точек, которое может содержать кластер (по умолчанию: 1) max_pts_per_cluster максимальное число точек, которое может содержать кластер (по умолчанию: максимальное значение int)
Определение в строке 46 файла extract_clusters.hpp.
Ссылки: pcl::search::Search< PointT >::getInputCloud(), pcl::search::Search< PointT >::getSortedResults(), pcl::PointCloud< PointT >::header, pcl::PointIndices::header, pcl::PointIndices::indices, pcl::search::Search< PointT >::radiusSearch() и pcl::PointCloud< PointT >::size().
Используется в pcl::EuclideanClusterExtraction< PointT >::extract().
extractLabeledEuclideanClusters()
| void pcl::extractLabeledEuclideanClusters | ( | const PointCloud< PointT > & | cloud, |
| const typename search::Search< PointT >::Ptr & | tree, | ||
| float | tolerance, | ||
| std::vector< std::vector< PointIndices >> & | labeled_clusters, | ||
| unsigned int |
min_pts_per_cluster = 1, | ||
| unsigned int |
max_pts_per_cluster = std::numeric_limits<unsigned int>::max() | ||
| ) |
#include <pcl/segmentation/extract_labeled_clusters.h>
Разбивает область пространства на кластеры на основе евклидова расстояния между точками.
- Параметры
-
[in] cloud сообщение с облаком точек [in] tree пространственный индексатор (например, kd-дерево), используемый для поиска ближайших соседей
- Примечание
- дерево должно быть создано как пространственный индексатор для cloud
- Параметры
-
[in] tolerance пространственный допуск кластеризации, измеряемый в евклидовом пространстве L2 [out] labeled_clusters результирующие кластеры, содержащие индексы точек (в виде вектора PointIndices) [in] min_pts_per_cluster минимальное число точек, которое может содержать кластер (по умолчанию: 1) [in] max_pts_per_cluster максимальное число точек, которое может содержать кластер (по умолчанию: максимальное значение int)
Определение в строке 45 файла extract_labeled_clusters.hpp.
Ссылки: pcl::search::Search< PointT >::getInputCloud(), pcl::search::Search< PointT >::getSortedResults(), pcl::PointCloud< PointT >::header, pcl::PointIndices::header, pcl::PointIndices::indices, pcl::search::Search< PointT >::radiusSearch() и pcl::PointCloud< PointT >::size().
Используется в pcl::LabeledEuclideanClusterExtraction< PointT >::extract().
getPointCloudDifference()
| void pcl::getPointCloudDifference | ( | const pcl::PointCloud< PointT > & | src, |
| double | threshold, | ||
| const typename pcl::search::Search< PointT >::Ptr & | tree, | ||
| pcl::PointCloud< PointT > & | output | ||
| ) |
#include <pcl/segmentation/segment_differences.h>
Вычисляет разность двух совмещённых облаков точек и возвращает её в виде другого облака точек с учётом заданного порога расстояния.
- Параметры
-
src исходное входное облако точек threshold порог расстояния (допуск) для соответствия точек (например, проверяет, находится ли точка p1 из src на расстоянии более threshold от соответствующей точки p2 из tgt) tree пространственный индексатор (например, kd-дерево), построенный по целевому облаку и используемый для поиска ближайших соседей output результирующее облако точек-разности
Определение в строке 50 файла segment_differences.hpp.
Ссылки: pcl::copyPointCloud(), pcl::PointCloud< PointT >::is_dense, pcl::isFinite(), pcl::search::Search< PointT >::nearestKSearch() и pcl::PointCloud< PointT >::size().
Используется в pcl::SegmentDifferences< PointT >::segment().
isPointIn2DPolygon()
| bool pcl::isPointIn2DPolygon | ( | const PointT & | point, |
| const pcl::PointCloud< PointT > & | polygon | ||
| ) |
#include <pcl/segmentation/extract_polygonal_prism_data.h>
Универсальный метод для проверки того, находится ли 3D-точка внутри заданного 2D-многоугольника или снаружи него.
- Примечание
- этот метод принимает произвольную 3D-точку, спроецированную на 2D-многоугольник, но внутри выполняет XY-проекцию и многоугольника, и точки.
- Параметры
-
point 3D-точка, спроецированная на ту же плоскость, что и многоугольник polygon многоугольник
Определение в строке 48 файла extract_polygonal_prism_data.hpp.
Ссылки: pcl::computeMeanAndCovarianceMatrix(), pcl::eigen33(), pcl::isXYPointIn2DXYPolygon(), pcl::PointCloud< PointT >::resize() и pcl::PointCloud< PointT >::size().
isXYPointIn2DXYPolygon()
| bool pcl::isXYPointIn2DXYPolygon | ( | const PointT & | point, |
| const pcl::PointCloud< PointT > & | polygon | ||
| ) |
#include <pcl/segmentation/extract_polygonal_prism_data.h>
Проверяет, находится ли 2D-точка (учитываются только координаты X и Y!) внутри заданного многоугольника или снаружи него.
Этот метод предполагает, что и точка, и многоугольник спроецированы на плоскость XY.
- Примечание
- (Это высокооптимизированный код, взятый с сайта http://www.visibone.com/inpoly/) Copyright (c) 1995-1996 Galacticomm, Inc. Бесплатный исходный код.
- Параметры
-
point 2D-точка, спроецированная на ту же плоскость, что и многоугольник polygon многоугольник
Определение в строке 108 файла extract_polygonal_prism_data.hpp.
Ссылки: pcl::PointCloud< PointT >::size().
Используется в pcl::isPointIn2DPolygon() и pcl::ExtractPolygonalPrismData< PointT >::segment().
randomWalker() [1/3]
| bool pcl::segmentation::randomWalker | ( | Graph & | graph | ) |
#include <pcl/segmentation/impl/random_walker.hpp>
Многометочная сегментация графа с помощью случайных блужданий.
Это реализация алгоритма, описанного в статье Лео Грэди «Случайные блуждания для сегментации изображений».
Для заданного взвешенного неориентированного графа и небольшого количества меток, заданных пользователем, этот алгоритм аналитически определяет вероятность того, что случайный блуждающий, начинающий путь в каждой немаркированной вершине, впервые достигнет одной из предварительно маркированных вершин. Затем немаркированным вершинам присваивается метка с наибольшей рассчитанной вероятностью.
В качестве входных данных используются граф BGL, карта свойств, связывающая вес с каждым ребром графа, и карта свойств, содержащая начальные цвета вершин (термины «цвет» и «метка» используются как взаимозаменяемые).
- Примечание
- Цвета немаркированных вершин должны быть равны 0, а цвета маркированных вершин могут быть любыми положительными числами.
- Пользователь должен убедиться, что в каждой связной компоненте графа есть хотя бы одна вершина с цветом. Если этого не сделать, поведение алгоритма не определено: он может как завершиться успешно, так и не завершиться, а также может сообщить об ошибке или не сообщить о ней.
Результат работы алгоритма (то есть присвоенные метки) записывается обратно в карту цветов.
- Параметры
-
[in] graph неориентированный граф с внутренними картами свойств весов рёбер и цветов вершин
Для удобства предоставлено несколько перегруженных вариантов функции randomWalker().
- См. также
- randomWalker(Graph&, EdgeWeightMap, VertexColorMap)
- randomWalker(Graph&, EdgeWeightMap, VertexColorMap, Eigen::Matrix <typename boost::property_traits<EdgeWeightMap>::value_type, Eigen::Dynamic, Eigen::Dynamic>&, std::map<typename boost::property_traits <VertexColorMap>::value_type, std::size_t>&)
Определение в строке 280 файла random_walker.hpp.
randomWalker() [2/3]
| bool pcl::segmentation::randomWalker | ( | Graph & | graph, |
| EdgeWeightMap | weights, | ||
| VertexColorMap | colors | ||
| ) |
#include <pcl/segmentation/impl/random_walker.hpp>
Многометочная сегментация графа с помощью случайных блужданий.
Эта перегруженная функция предоставлена для удобства. См. документацию для randomWalker().
- Параметры
-
[in] graph неориентированный граф [in] weights внешняя карта свойств весов рёбер [in,out] colors внешняя карта свойств цветов вершин
Определение в строке 288 файла random_walker.hpp.
randomWalker() [3/3]
| bool pcl::segmentation::randomWalker | ( | Graph & | graph, |
| EdgeWeightMap | weights, | ||
| VertexColorMap | colors, | ||
| Eigen::Matrix< typename boost::property_traits< EdgeWeightMap >::value_type, Eigen::Dynamic, Eigen::Dynamic > & | potentials, | ||
| std::map< typename boost::property_traits< VertexColorMap >::value_type, std::size_t > & | colors_to_columns_map | ||
| ) |
#include <pcl/segmentation/impl/random_walker.hpp>
Многометочная сегментация графа с помощью случайных блужданий.
Эта перегруженная функция предоставлена для удобства. См. документацию для randomWalker().
- Параметры
-
[in] graph неориентированный граф [in] weights внешняя карта свойств весов рёбер [in,out] colors внешняя карта свойств цветов вершин [out] potentials матрица рассчитанных вероятностей, в которой строки соответствуют вершинам, а столбцы — цветам [out] colors_to_columns_map соответствие между цветами и столбцами матрицы potentials
Определение в строке 314 файла random_walker.hpp.
seededHueSegmentation() [1/2]
| void pcl::seededHueSegmentation | ( | const PointCloud< PointXYZRGB > & | cloud, |
| const search::Search< PointXYZRGB >::Ptr & | tree, | ||
| float | tolerance, | ||
| PointIndices & | indices_in, | ||
| PointIndices & | indices_out, | ||
| float |
delta_hue = 0.0 | ||
| ) |
#include <pcl/segmentation/seeded_hue_segmentation.h>
Разбиение области пространства на кластеры на основе евклидова расстояния между точками.
- Параметры
-
[in] cloud сообщение с облаком точек [in] tree пространственный индекс (например, kd-дерево), используемый для поиска ближайших соседей
- Примечание
- дерево должно быть создано как пространственный индекс для cloud
- Параметры
-
[in] tolerance допуск кластеризации в пространстве евклидовых расстояний L2 [in] indices_in кластер, содержащий индексы начальных точек (в виде вектора PointIndices) [out] indices_out [in] delta_hue
- Задача:
- посмотреть, как сделать этот шаблонным!
Определение в строке 49 файла seeded_hue_segmentation.hpp.
Ссылки: pcl::search::Search< PointT >::getInputCloud(), pcl::search::Search< PointT >::getSortedResults(), pcl::_PointXYZHSV::h, pcl::PointIndices::indices, pcl::PointXYZRGBtoXYZHSV(), pcl::search::Search< PointT >::radiusSearch() и pcl::PointCloud< PointT >::size().
Используется в pcl::SeededHueSegmentation::segment().
seededHueSegmentation() [2/2]
| void pcl::seededHueSegmentation | ( | const PointCloud< PointXYZRGB > & | cloud, |
| const search::Search< PointXYZRGBL >::Ptr & | tree, | ||
| float | tolerance, | ||
| PointIndices & | indices_in, | ||
| PointIndices & | indices_out, | ||
| float |
delta_hue = 0.0 | ||
| ) |
#include <pcl/segmentation/seeded_hue_segmentation.h>
Разбиение области пространства на кластеры на основе евклидова расстояния между точками.
- Параметры
-
[in] cloud сообщение с облаком точек [in] tree пространственный индекс (например, kd-дерево), используемый для поиска ближайших соседей
- Примечание
- дерево должно быть создано как пространственный индекс для cloud
- Параметры
-
[in] tolerance допуск кластеризации в пространстве евклидовых расстояний L2 [in] indices_in кластер, содержащий индексы начальных точек (в виде вектора PointIndices) [out] indices_out [in] delta_hue
- Задача:
- посмотреть, как сделать этот шаблонным!
Определение в строке 129 файла seeded_hue_segmentation.hpp.
Ссылки: pcl::search::Search< PointT >::getInputCloud(), pcl::search::Search< PointT >::getSortedResults(), pcl::_PointXYZHSV::h, pcl::PointIndices::indices, pcl::PointXYZRGBtoXYZHSV(), pcl::search::Search< PointT >::radiusSearch() и pcl::PointCloud< PointT >::size().
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/group__segmentation.html