Spec-Zone.ru › PointCloudLibrary

ConditionalEuclideanClustering выполняет сегментацию на основе евклидова расстояния и заданного пользователем условия кластеризации. Подробнее...

#include <pcl/segmentation/conditional_euclidean_clustering.h>

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

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

ConditionalEuclideanClustering (bool extract_removed_clusters=false)
Конструктор. Подробнее...
void setSearchMethod (const SearcherPtr &tree)
Укажите указатель на объект поиска. Подробнее...
const SearcherPtr & getSearchMethod () const
Получить указатель на метод поиска. Подробнее...
void setConditionFunction (bool(*condition_function)(const PointT &, const PointT &, float))
Установить условие, которое должно выполняться для соседних точек, чтобы их можно было считать частью одного кластера. Подробнее...
void setConditionFunction (std::function< bool(const PointT &, const PointT &, float)> condition_function)
Установить условие, которое должно выполняться для соседних точек, чтобы их можно было считать частью одного кластера. Подробнее...
void setClusterTolerance (float cluster_tolerance)
Установить пространственную погрешность для новых кандидатов в кластеры. Подробнее...
float getClusterTolerance ()
Получить пространственную погрешность для новых кандидатов в кластеры. Подробнее...
void setMinClusterSize (int min_cluster_size)
Установить минимальное число точек в кластере для его валидации. Подробнее...
int getMinClusterSize ()
Получить минимальное число точек в кластере для его валидации. Подробнее...
void setMaxClusterSize (int max_cluster_size)
Установить максимальное число точек в кластере для его валидации. Подробнее...
int getMaxClusterSize ()
Получить максимальное число точек в кластере для его валидации. Подробнее...
void segment (IndicesClusters &clusters)
Разделить входные данные на отдельные кластеры. Подробнее...
void getRemovedClusters (IndicesClustersPtr &small_clusters, IndicesClustersPtr &large_clusters)
Получить кластеры, которые были отклонены из-за ограничений на размер. Подробнее...
- Общедоступные члены-функции, унаследованные от 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[] для сокращения кода. Подробнее...

Защищённые типы

using SearcherPtr = typename pcl::search::Search< PointT >::Ptr

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

- Публичные типы, унаследованные от 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
- Защищённые методы-члены, унаследованные от pcl::PCLBase< PointT >
bool initCompute ()
Этот метод должен вызываться перед началом фактического вычисления. Подробнее...
bool deinitCompute ()
Этот метод должен вызываться после завершения фактического вычисления. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::PCLBase< PointT >
PointCloudConstPtr input_
Набор входных данных облака точек. Подробнее...
IndicesPtr indices_
Указатель на вектор индексов точек для использования. Подробнее...
bool use_indices_
Устанавливается в true, если используются индексы точек. Подробнее...
bool fake_indices_
Если набор индексов не задан, мы создаём набор фиктивных индексов, имитирующих входное PointCloud. Подробнее...

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

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

ConditionalEuclideanClustering выполняет сегментацию на основе евклидова расстояния и пользовательского условия кластеризации.

Условие, которое должно выполняться, в настоящее время передаётся с помощью указателя на функцию. Дополнительную информацию см. в документации setConditionFunction() или в примере использования ниже:

bool
enforceIntensitySimilarity (const pcl::PointXYZI& point_a, const pcl::PointXYZI& point_b, float squared_distance)
{
 if (std::abs (point_a.intensity - point_b.intensity) < 0.1f)
 return (true);
 else
 return (false);
}
// ...
// Somewhere down to the main code
// ...
pcl::ConditionalEuclideanClustering<pcl::PointXYZI> cec (true);
cec.setInputCloud (cloud_in);
cec.setConditionFunction (&enforceIntensitySimilarity);
// Points within this distance from one another are going to need to validate the enforceIntensitySimilarity function to be part of the same cluster:
cec.setClusterTolerance (0.09f);
// Size constraints for the clusters:
cec.setMinClusterSize (5);
cec.setMaxClusterSize (30);
// The resulting clusters (an array of pointindices):
cec.segment (*clusters);
// The clusters that are too small or too large in size can also be extracted separately:
cec.getRemovedClusters (small_clusters, large_clusters);
pcl::ConditionalEuclideanClusteringConditionalEuclideanClustering performs segmentation based on Euclidean distance and a user-defined c...Definition: conditional_euclidean_clustering.h:86
pcl::ConditionalEuclideanClustering
ConditionalEuclideanClustering performs segmentation based on Euclidean distance and a user-defined c...
Definition: conditional_euclidean_clustering.h:86
pcl::_PointXYZI::intensityfloat intensityDefinition: point_types.hpp:477
pcl::_PointXYZI::intensity
float intensity
Definition: point_types.hpp:477
pcl::PointXYZIDefinition: point_types.hpp:486
pcl::PointXYZI
Definition: point_types.hpp:486
Автор
Frits Florentinus

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

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

SearcherPtr

шаблон<typename PointT >
using pcl::ConditionalEuclideanClustering< PointT >::SearcherPtr = typename pcl::search::Search<PointT>::Ptr
protected

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

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

ConditionalEuclideanClustering()

template<typename PointT >
pcl::ConditionalEuclideanClustering< PointT >::ConditionalEuclideanClustering ( bool extract_removed_clusters = false )
inline

Конструктор.

Параметры
[in] extract_removed_clusters Установите в значение true, если необходимо извлечь кластеры, которые слишком большие или слишком маленькие (по умолчанию = false)

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

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

getClusterTolerance()

template<typename PointT >
float pcl::ConditionalEuclideanClustering< PointT >::getClusterTolerance ( )
inline

Получить пространственную погрешность для новых кандидатов кластеров.

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

getMaxClusterSize()

template<typename PointT >
int pcl::ConditionalEuclideanClustering< PointT >::getMaxClusterSize ( )
inline

Получить максимальное количество точек, которые должен содержать кластер, чтобы считаться допустимым.

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

getMinClusterSize()

template<typename PointT >
int pcl::ConditionalEuclideanClustering< PointT >::getMinClusterSize ( )
inline

Получить минимальное количество точек, которые должен содержать кластер, чтобы считаться допустимым.

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

getRemovedClusters()

template<typename PointT >
void pcl::ConditionalEuclideanClustering< PointT >::getRemovedClusters ( IndicesClustersPtr & small_clusters,
IndicesClustersPtr & large_clusters
)
inline

Получить кластеры, которые были отброшены из-за ограничений по размеру.

Примечание
Конструктор этого класса должен быть инициализирован значением true, а метод segment должен быть вызван перед использованием этого метода.
Параметры
[out] small_clusters Полученные кластеры, которые содержат меньше, чем min_cluster_size точек
[out] large_clusters Полученные кластеры, которые содержат больше, чем max_cluster_size точек

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

getSearchMethod()

template<typename PointT >
const SearcherPtr& pcl::ConditionalEuclideanClustering< PointT >::getSearchMethod ( ) const
inline

Получить указатель на используемый метод поиска.

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

segment()

template<typename PointT >
void pcl::ConditionalEuclideanClustering< PointT >::segment ( pcl::IndicesClusters & clusters )

Разделить входные данные на отдельные кластеры.

Входные данные можно задать с помощью setInputCloud() и setIndices().
Ограничения по размеру получившихся кластеров можно установить с помощью setMinClusterSize() и setMaxClusterSize().
Параметры роста области можно установить с помощью setConditionFunction() и setClusterTolerance().

Параметры
[out] clusters Результирующий набор индексов, индексирующий точки облака входных данных, соответствующие кластерам

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

Ссылки на pcl::PointIndices::header, и pcl::PointIndices::indices.

setClusterTolerance()

template<typename PointT >
void pcl::ConditionalEuclideanClustering< PointT >::setClusterTolerance ( float cluster_tolerance )
inline

Установите пространственную погрешность для новых кандидатов кластеров.

Любые две точки в пределах этого расстояния друг от друга должны удовлетворять определенному условию, чтобы стать частью одного кластера. Условие можно задать с помощью setConditionFunction().

Параметры
[in] cluster_tolerance Расстояние для поиска кандидатов в кластеры (по умолчанию = 0,0)

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

setConditionFunction() [1/2]

template<typename PointT >
void pcl::ConditionalEuclideanClustering< PointT >::setConditionFunction ( bool(*)(const PointT &, const PointT &, float) condition_function )
inline

Установите условие, которое должно выполняться для соседних точек, чтобы считать их частью одного кластера.

Любые две точки в пределах определенного расстояния друг от друга должны удовлетворять этому условию, чтобы стать частью одного кластера. Расстояние можно установить с помощью setClusterTolerance().
Обратите внимание, что для того, чтобы точка была частью кластера, условие должно выполняться хотя бы для одной пары точек. То есть, следующее утверждение ложно: любые две точки в пределах кластера всегда возвращают для этой функции условие true.

Входные аргументы функции условия:

  • PointT Первая точка пары точек
  • PointT Вторая точка пары точек
  • float Квадратное расстояние между точками

Выходной аргумент — булево значение, возвращающее true, если следует объединить вторую точку в кластер первой точки.

Параметры
[in] condition_function Функция условия, которая должна выполняться для кластеризации

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

setConditionFunction() [2/2]

template<typename PointT >
void pcl::ConditionalEuclideanClustering< PointT >::setConditionFunction ( std::function< bool(const PointT &, const PointT &, float)> condition_function )
inline

Установите условие, которое должно выполняться для соседних точек, чтобы считать их частью одного кластера.

Это перегруженная функция, предоставленная для удобства. См. документацию для setConditionFunction().

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

setMaxClusterSize()

template<typename PointT >
void pcl::ConditionalEuclideanClustering< PointT >::setMaxClusterSize ( int max_cluster_size )
inline

Установите максимальное количество точек, которые должен содержать кластер, чтобы считаться допустимым.

Параметры
[in] max_cluster_size Максимальный размер кластера (по умолчанию — неограничен)

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

setMinClusterSize()

template<typename PointT >
void pcl::ConditionalEuclideanClustering< PointT >::setMinClusterSize ( int min_cluster_size )
inline

Установите минимальное количество точек, которые должен содержать кластер, чтобы считаться допустимым.

Параметры
[in] min_cluster_size Минимальный размер кластера (по умолчанию = 1)

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

setSearchMethod()

template<typename PointT >
void pcl::ConditionalEuclideanClustering< PointT >::setSearchMethod ( const SearcherPtr & tree )
inline

Укажите указатель на объект поиска.

Параметры
[in] tree указатель на объект пространственного поиска.

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


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

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

Spec-Zone.ru

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