SACSegmentation представляет класс сегментации Nodelet для методов и моделей консенсуса выборки, то есть просто создает оболочку Nodelet для сегментации общего назначения на основе SAC. Подробнее...
#include <pcl/segmentation/sac_segmentation.h>
Открытые типы | |
| using | PointCloud = pcl::PointCloud< PointT > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | SearchPtr = typename pcl::search::Search< PointT >::Ptr |
| using | SampleConsensusPtr = typename SampleConsensus< PointT >::Ptr |
| using | SampleConsensusModelPtr = typename SampleConsensusModel< PointT >::Ptr |
|
| |
| using | PointCloud = pcl::PointCloud< PointT > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | PointIndicesPtr = PointIndices::Ptr |
| using | PointIndicesConstPtr = PointIndices::ConstPtr |
Открытые функции-члены | |
| SACSegmentation (bool random=false) | |
| Пустой конструктор. Подробнее... |
|
| ~SACSegmentation () override=default | |
| Пустой деструктор. Подробнее... |
|
| void | setModelType (int model) |
| Тип используемой модели (параметр, заданный пользователем). Подробнее... |
|
| int | getModelType () const |
| Получить тип используемой модели SAC. Подробнее... |
|
| SampleConsensusPtr | getMethod () const |
| Получить указатель на используемый метод SAC. Подробнее... |
|
| SampleConsensusModelPtr | getModel () const |
| Получить указатель на используемую модель SAC. Подробнее... |
|
| void | setMethodType (int method) |
| Тип используемого метода консенсуса по выборке (параметр, заданный пользователем). Подробнее... |
|
| int | getMethodType () const |
| Получить тип используемого метода консенсуса по выборке. Подробнее... |
|
| void | setDistanceThreshold (double threshold) |
| Пороговое расстояние до модели (параметр, заданный пользователем). Подробнее... |
|
| double | getDistanceThreshold () const |
| Получить пороговое расстояние до модели. Подробнее... |
|
| void | setMaxIterations (int max_iterations) |
| Установить максимальное число итераций до прекращения работы. Подробнее... |
|
| int | getMaxIterations () const |
| Получить максимальное число итераций до прекращения работы. Подробнее... |
|
| void | setProbability (double probability) |
| Установить вероятность выбора хотя бы одной выборки, не содержащей выбросов. Подробнее... |
|
| double | getProbability () const |
| Получить вероятность выбора хотя бы одной выборки, не содержащей выбросов. Подробнее... |
|
| void | setNumberOfThreads (const int nr_threads=-1) |
| Установить число используемых потоков или отключить распараллеливание. Подробнее... |
|
| void | setOptimizeCoefficients (bool optimize) |
| Установить значение true, если требуется уточнение коэффициентов. Подробнее... |
|
| bool | getOptimizeCoefficients () const |
| Получить внутренний флаг уточнения коэффициентов. Подробнее... |
|
| void | setRadiusLimits (const double &min_radius, const double &max_radius) |
| Установить минимальное и максимальное допустимые значения радиуса модели (применимо к моделям, оценивающим радиус). Подробнее... |
|
| void | getRadiusLimits (double &min_radius, double &max_radius) |
| Получить заданные пользователем минимальное и максимальное допустимые значения радиуса модели. Подробнее... |
|
| void | setSamplesMaxDist (const double &radius, SearchPtr search) |
| Установить максимально допустимое расстояние при случайном выборе выборок. Подробнее... |
|
| void | getSamplesMaxDist (double &radius) |
| Получить максимально допустимое расстояние при случайном выборе выборок. Подробнее... |
|
| void | setAxis (const Eigen::Vector3f &ax) |
| Задать ось, перпендикулярно которой следует искать модель. Подробнее... |
|
| Eigen::Vector3f | getAxis () const |
| Получить ось, перпендикулярно которой следует искать модель. Подробнее... |
|
| void | setEpsAngle (double ea) |
| Задать пороговое значение углового эпсилон (дельты). Подробнее... |
|
| double | getEpsAngle () const |
| Получить пороговое значение угла модели эпсилон (дельта) в радианах. Подробнее... |
|
| virtual void | segment (PointIndices &inliers, ModelCoefficients &model_coefficients) |
| Базовый метод сегментации модели в PointCloud, заданном с помощью <setInputCloud (), setIndices ()> Подробнее... |
|
|
| |
| 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 |
| Переопределяет operator[] класса PointCloud, чтобы сделать код короче. Подробнее... |
|
Защищённые функции-члены | |
| virtual bool | initSACModel (const int model_type) |
| Инициализировать модель Sample Consensus и задать её параметры. Подробнее... |
|
| virtual void | initSAC (const int method_type) |
| Инициализировать метод Sample Consensus и задать его параметры. Подробнее... |
|
| virtual std::string | getClassName () const |
| Метод получения имени класса. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод следует вызвать перед началом фактического вычисления. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод следует вызвать после завершения фактического вычисления. Подробнее... |
|
Защищённые атрибуты | |
| SampleConsensusModelPtr | model_ {nullptr} |
| Модель, которую необходимо сегментировать. Подробнее... |
|
| SampleConsensusPtr | sac_ {nullptr} |
| Метод сегментации на основе согласованности выборки. Подробнее... |
|
| int | model_type_ {-1} |
| Тип используемой модели (задаётся пользователем). Подробнее... |
|
| int | method_type_ {0} |
| Тип используемого метода согласованности выборки (задаётся пользователем). Подробнее... |
|
| double | threshold_ {0.0} |
| Пороговое расстояние до модели (задаётся пользователем). Подробнее... |
|
| bool | optimize_coefficients_ {true} |
| Установите значение true, если требуется уточнение коэффициентов. Подробнее... |
|
| double | radius_min_ {-std::numeric_limits<double>::max()} |
| Минимальное и максимальное ограничения радиуса модели. Подробнее... |
|
| double | radius_max_ {std::numeric_limits<double>::max()} |
| double | samples_radius_ {0.0} |
| Максимальное расстояние от первой точки до последующих точек выборки (поиск в радиусе). Подробнее... |
|
| SearchPtr | samples_radius_search_ {nullptr} |
| Объект поиска для выбора последующих точек выборки с использованием поиска в радиусе. Подробнее... |
|
| double | eps_angle_ {0.0} |
| Максимально допустимое различие между нормалью модели и заданной осью. Подробнее... |
|
| Eigen::Vector3f | axis_ {Eigen::Vector3f::Zero()} |
| Ось, относительно которой выполняется поиск модели, перпендикулярной этой оси. Подробнее... |
|
| int | max_iterations_ {50} |
| Максимальное количество итераций до прекращения работы (задаётся пользователем). Подробнее... |
|
| int | threads_ {-1} |
| Количество потоков, используемых планировщиком, или отрицательное число, если параллельное выполнение не требуется. Подробнее... |
|
| double | probability_ {0.99} |
| Требуемая вероятность выбора хотя бы одной точки выборки без выбросов (задаётся пользователем). Подробнее... |
|
| bool | random_ |
| Установите значение true, если требуется случайное начальное значение. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| Входной набор данных облака точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор индексов точек, которые следует использовать. Подробнее... |
|
| bool | use_indices_ |
| Установите значение true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, создаётся набор фиктивных индексов, соответствующий входному PointCloud. Подробнее... |
|
Подробное описание
template<typename PointT>
class pcl::SACSegmentation< PointT >
SACSegmentation представляет класс сегментации Nodelet для методов и моделей согласованности выборки: он создаёт оболочку Nodelet для универсальной сегментации на основе SAC.
Определение в строке 64 файла sac_segmentation.h.
Описание псевдонимов типов-членов
PointCloud
| using pcl::SACSegmentation< PointT >::PointCloud = pcl::PointCloud<PointT> |
Определение в строке 73 файла sac_segmentation.h.
PointCloudConstPtr
| using pcl::SACSegmentation< PointT >::PointCloudConstPtr = typename PointCloud::ConstPtr |
Определение в строке 75 файла sac_segmentation.h.
PointCloudPtr
| using pcl::SACSegmentation< PointT >::PointCloudPtr = typename PointCloud::Ptr |
Определение в строке 74 файла sac_segmentation.h.
SampleConsensusModelPtr
| using pcl::SACSegmentation< PointT >::SampleConsensusModelPtr = typename SampleConsensusModel<PointT>::Ptr |
Определение в строке 79 файла sac_segmentation.h.
SampleConsensusPtr
| using pcl::SACSegmentation< PointT >::SampleConsensusPtr = typename SampleConsensus<PointT>::Ptr |
Определение в строке 78 файла sac_segmentation.h.
SearchPtr
| using pcl::SACSegmentation< PointT >::SearchPtr = typename pcl::search::Search<PointT>::Ptr |
Определение в строке 76 файла sac_segmentation.h.
Описание конструктора и деструктора
SACSegmentation()
| inline |
Конструктор без параметров.
- Параметры
-
[in] random если значение true, устанавливает случайное начальное значение по текущему времени; в противном случае устанавливает значение 12345 (по умолчанию: false)
Определение в строке 84 файла sac_segmentation.h.
~SACSegmentation()
| overridedefault |
Пустой деструктор.
Описание функций-членов
getAxis()
| inline |
Получить ось, относительно которой выполняется поиск модели, перпендикулярной этой оси.
Определение в строке 218 файла sac_segmentation.h.
getClassName()
| inlineprotectedvirtual |
Метод получения имени класса.
Переопределён в pcl::SACSegmentationFromNormals< PointT, PointNT >.
Определение в строке 297 файла sac_segmentation.h.
getDistanceThreshold()
| inline |
Получить пороговое расстояние до модели.
Определение в строке 127 файла sac_segmentation.h.
getEpsAngle()
| inline |
Получить пороговое угловое значение модели epsilon (delta) в радианах.
Определение в строке 228 файла sac_segmentation.h.
getMaxIterations()
| inline |
Получить максимальное количество итераций до прекращения работы.
Определение в строке 137 файла sac_segmentation.h.
getMethod()
| inline |
Получить указатель на используемый метод SAC.
Определение в строке 103 файла sac_segmentation.h.
Ссылки: pcl::SACSegmentation< PointT >::sac_.
getMethodType()
| inline |
Получить тип используемого метода согласованности выборки.
Определение в строке 117 файла sac_segmentation.h.
getModel()
| inline |
Получить указатель на используемую модель SAC.
Определение в строке 107 файла sac_segmentation.h.
getModelType()
| inline |
Получить тип используемой модели SAC.
Определение в строке 99 файла sac_segmentation.h.
getOptimizeCoefficients()
| inline |
Получить внутренний флаг уточнения коэффициентов.
Определение в строке 164 файла sac_segmentation.h.
Ссылки: pcl::SACSegmentation< PointT >::optimize_coefficients_.
getProbability()
| inline |
Получить вероятность выбора хотя бы одной выборки без выбросов.
Определение в строке 147 файла sac_segmentation.h.
getRadiusLimits()
| inline |
Получить заданные пользователем минимальный и максимальный допустимые пределы радиуса модели.
- Параметры
-
[out] min_radius результирующий минимальный радиус модели [out] max_radius результирующий максимальный радиус модели
Определение в строке 183 файла sac_segmentation.h.
Ссылки: pcl::SACSegmentation< PointT >::radius_max_ и pcl::SACSegmentation< PointT >::radius_min_.
getSamplesMaxDist()
| inline |
Получить максимальное расстояние, допустимое при случайном выборе выборок.
- Параметры
-
[out] radius максимальное расстояние (норма L2)
Определение в строке 205 файла sac_segmentation.h.
initSAC()
|
Инициализировать метод Sample Consensus и задать его параметры.
- Параметры
-
[in] method_type тип используемого метода SAC
Определение в строке 298 файла sac_segmentation.hpp.
Ссылки: pcl::SAC_LMEDS, pcl::SAC_MLESAC, pcl::SAC_MSAC, pcl::SAC_PROSAC, pcl::SAC_RANSAC, pcl::SAC_RMSAC и pcl::SAC_RRANSAC.
initSACModel()
|
Инициализировать модель Sample Consensus и задать ее параметры.
- Параметры
-
[in] model_type тип используемой модели SAC
Переопределено в pcl::SACSegmentationFromNormals< PointT, PointNT >.
Определение в строке 138 файла sac_segmentation.hpp.
Ссылки: pcl::SampleConsensusModelParallelLine< PointT >::getAxis(), pcl::SampleConsensusModelParallelPlane< PointT >::getAxis(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::getAxis(), pcl::SampleConsensusModelParallelLine< PointT >::getEpsAngle(), pcl::SampleConsensusModelParallelPlane< PointT >::getEpsAngle(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::getEpsAngle(), pcl::SampleConsensusModel< PointT >::getRadiusLimits(), M_PI, pcl::SACMODEL_CIRCLE2D, pcl::SACMODEL_CIRCLE3D, pcl::SACMODEL_CONE, pcl::SACMODEL_CYLINDER, pcl::SACMODEL_ELLIPSE3D, pcl::SACMODEL_LINE, pcl::SACMODEL_NORMAL_PARALLEL_PLANE, pcl::SACMODEL_NORMAL_PLANE, pcl::SACMODEL_NORMAL_SPHERE, pcl::SACMODEL_PARALLEL_LINE, pcl::SACMODEL_PARALLEL_PLANE, pcl::SACMODEL_PERPENDICULAR_PLANE, pcl::SACMODEL_PLANE, pcl::SACMODEL_SPHERE, pcl::SACMODEL_STICK, pcl::SampleConsensusModelParallelLine< PointT >::setAxis(), pcl::SampleConsensusModelParallelPlane< PointT >::setAxis(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::setAxis(), pcl::SampleConsensusModelParallelLine< PointT >::setEpsAngle(), pcl::SampleConsensusModelParallelPlane< PointT >::setEpsAngle(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::setEpsAngle() и pcl::SampleConsensusModel< PointT >::setRadiusLimits().
segment()
| virtual |
Базовый метод сегментации модели в PointCloud, заданном вызовами <setInputCloud (), setIndices ()>
- Параметры
-
[out] inliers результирующие индексы точек, поддерживающих найденную модель (внутренние точки) [out] model_coefficients результирующие коэффициенты модели
Определение в строке 80 файла sac_segmentation.hpp.
Ссылки: pcl::ModelCoefficients::header, pcl::PointIndices::header, pcl::PointIndices::indices и pcl::ModelCoefficients::values.
setAxis()
| inline |
Задать ось, относительно которой выполняется поиск модели, перпендикулярной ей.
- Параметры
-
[in] ax ось, относительно которой выполняется поиск модели, перпендикулярной ей
Определение в строке 214 файла sac_segmentation.h.
setDistanceThreshold()
| inline |
Пороговое расстояние до модели (параметр, задаваемый пользователем).
- Параметры
-
[in] threshold используемый порог расстояния
Определение в строке 123 файла sac_segmentation.h.
setEpsAngle()
| inline |
Задать пороговое значение угловой эпсилон-погрешности (дельты).
- Параметры
-
[in] ea максимально допустимая разница между нормалью модели и заданной осью в радианах.
Определение в строке 224 файла sac_segmentation.h.
setMaxIterations()
| inline |
Задать максимальное число итераций, по достижении которого алгоритм прекратит работу.
- Параметры
-
[in] max_iterations максимальное число итераций, выполняемых методом Sample Consensus
Определение в строке 133 файла sac_segmentation.h.
setMethodType()
| inline |
Тип используемого метода Sample Consensus (параметр, задаваемый пользователем).
- Параметры
-
[in] method тип метода (см. method_types.h)
Определение в строке 113 файла sac_segmentation.h.
setModelType()
| inline |
Тип используемой модели (параметр, задаваемый пользователем).
- Параметры
-
[in] model тип модели (см. model_types.h)
Определение в строке 95 файла sac_segmentation.h.
setNumberOfThreads()
|
Задать число используемых потоков или отключить параллельную обработку.
- Параметры
-
[in] nr_threads число используемых аппаратных потоков (значение 0 задает число автоматически, отрицательное значение отключает параллельную обработку)
- Примечание
- Не все методы SAC поддерживают параллельную реализацию. Некоторые методы игнорируют этот параметр.
Определение в строке 154 файла sac_segmentation.h.
setOptimizeCoefficients()
| inline |
Установите значение true, если требуется уточнение коэффициентов.
- Параметры
-
[in] optimize true — для включения уточнения коэффициентов модели, в противном случае false
Определение в строке 160 файла sac_segmentation.h.
Ссылки на pcl::SACSegmentation< PointT >::optimize_coefficients_.
setProbability()
| inline |
Задать вероятность выбора хотя бы одного образца, не содержащего выбросов.
- Параметры
-
[in] probability вероятность подгонки модели
Определение в строке 143 файла sac_segmentation.h.
Ссылки на pcl::SACSegmentation< PointT >::probability_.
setRadiusLimits()
| inline |
Задать минимальное и максимальное допустимые значения радиуса модели (применимо к моделям, оценивающим радиус).
- Параметры
-
[in] min_radius минимальный радиус модели [in] max_radius максимальный радиус модели
Определение в строке 172 файла sac_segmentation.h.
Ссылки на pcl::SACSegmentation< PointT >::radius_max_ и pcl::SACSegmentation< PointT >::radius_min_.
setSamplesMaxDist()
| inline |
Задать максимальное расстояние при случайном выборе образцов.
- Параметры
-
[in] radius максимальное расстояние (норма L2) search
Определение в строке 194 файла sac_segmentation.h.
Ссылки на pcl::SACSegmentation< PointT >::samples_radius_ и pcl::SACSegmentation< PointT >::samples_radius_search_.
Документация данных-членов
axis_
| protected |
Ось, перпендикулярно которой необходимо искать модель.
Определение в строке 281 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getAxis() и pcl::SACSegmentation< PointT >::setAxis().
eps_angle_
| protected |
Максимально допустимое различие между нормалью модели и заданной осью.
Определение в строке 278 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getEpsAngle() и pcl::SACSegmentation< PointT >::setEpsAngle().
max_iterations_
| protected |
Максимальное число итераций до завершения работы (параметр, задаваемый пользователем).
Определение в строке 284 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getMaxIterations() и pcl::SACSegmentation< PointT >::setMaxIterations().
method_type_
| protected |
Тип используемого метода консенсуса по выборке (параметр, задаваемый пользователем).
Определение в строке 260 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getMethodType() и pcl::SACSegmentation< PointT >::setMethodType().
model_
| protected |
Модель, которую необходимо сегментировать.
Определение в строке 251 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getModel().
model_type_
| protected |
Тип используемой модели (параметр, задаваемый пользователем).
Определение в строке 257 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getModelType() и pcl::SACSegmentation< PointT >::setModelType().
optimize_coefficients_
| protected |
Установите значение true, если требуется уточнение коэффициентов.
Определение в строке 266 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getOptimizeCoefficients() и pcl::SACSegmentation< PointT >::setOptimizeCoefficients().
probability_
| protected |
Желаемая вероятность выбора хотя бы одного образца, не содержащего выбросов (параметр, задаваемый пользователем).
Определение в строке 290 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getProbability() и pcl::SACSegmentation< PointT >::setProbability().
radius_max_
| protected |
Определение в строке 269 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getRadiusLimits() и pcl::SACSegmentation< PointT >::setRadiusLimits().
radius_min_
| protected |
Минимальное и максимальное ограничения радиуса модели.
Применимо ко всем моделям, оценивающим радиус.
Определение в строке 269 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getRadiusLimits() и pcl::SACSegmentation< PointT >::setRadiusLimits().
random_
| protected |
Установите значение true, если требуется случайное начальное значение.
Определение в строке 293 файла sac_segmentation.h.
sac_
| protected |
Метод сегментации на основе консенсуса по выборке.
Определение в строке 254 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getMethod().
samples_radius_
| protected |
Максимальное расстояние от первого образца до последующих (поиск в радиусе).
Определение в строке 272 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getSamplesMaxDist() и pcl::SACSegmentation< PointT >::setSamplesMaxDist().
samples_radius_search_
| protected |
Объект поиска для выбора последующих образцов с помощью поиска в радиусе.
Определение в строке 275 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::setSamplesMaxDist().
threads_
| protected |
Число потоков, которое должен использовать планировщик, или отрицательное значение, если параллельное выполнение не требуется.
Определение в строке 287 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::setNumberOfThreads().
threshold_
| protected |
Пороговое расстояние до модели (параметр, задаваемый пользователем).
Определение в строке 263 файла sac_segmentation.h.
Используется в pcl::SACSegmentation< PointT >::getDistanceThreshold() и pcl::SACSegmentation< PointT >::setDistanceThreshold().
Документация этого класса создана на основе следующих файлов:
- pcl/segmentation/sac_segmentation.h
- pcl/segmentation/impl/sac_segmentation.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_s_a_c_segmentation.html