SampleConsensusModelParallelPlane определяет модель для сегментации 3D плоскостей с дополнительными угловыми ограничениями. Подробнее...
#include <pcl/sample_consensus/sac_model_parallel_plane.h>
Публичные члены-функции | |
| SampleConsensusModelParallelPlane (const PointCloudConstPtr &cloud, bool random=false) | |
| Конструктор базового класса SampleConsensusModelParallelPlane. Подробнее... |
|
| SampleConsensusModelParallelPlane (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false) | |
| Конструктор базового класса SampleConsensusModelParallelPlane. Подробнее... |
|
| ~SampleConsensusModelParallelPlane () override=default | |
| Пустой деструктор. Подробнее... |
|
| void | setAxis (const Eigen::Vector3f &ax) |
| Установить ось, по которой необходимо искать плоскость, перпендикулярную ей. Подробнее... |
|
| Eigen::Vector3f | getAxis () const |
| Получить ось, по которой необходимо искать плоскость, перпендикулярную ей. Подробнее... |
|
| void | setEpsAngle (const double ea) |
| Установить пороговое значение угла epsilon (delta). Подробнее... |
|
| double | getEpsAngle () const |
| Получить пороговое значение угла epsilon (delta). Подробнее... |
|
| void | selectWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold, Indices &inliers) override |
| Выбрать все точки, соответствующие заданным коэффициентам модели, как инлайнеры. Подробнее... |
|
| std::size_t | countWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold) const override |
| Подсчитать все точки, соответствующие заданным коэффициентам модели, как инлайнеры. Подробнее... |
|
| void | getDistancesToModel (const Eigen::VectorXf &model_coefficients, std::vector< double > &distances) const override |
| Вычислить все расстояния от данных облака до заданной модели плоскости. Подробнее... |
|
| pcl::SacModel | getModelType () const override |
| Возвращает уникальный идентификатор для этой модели (SACMODEL_PARALLEL_PLANE). Подробнее... |
|
|
| |
| SampleConsensusModelPlane (const PointCloudConstPtr &cloud, bool random=false) | |
| Конструктор базового класса SampleConsensusModelPlane. Подробнее... |
|
| SampleConsensusModelPlane (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false) | |
| Конструктор базового класса SampleConsensusModelPlane. Подробнее... |
|
| ~SampleConsensusModelPlane () override=default | |
| Пустой деструктор. Подробнее... |
|
| bool | computeModelCoefficients (const Indices &samples, Eigen::VectorXf &model_coefficients) const override |
| Проверка, могут ли заданные индексные образцы образовать корректную модель плоскости, вычисление коэффициентов модели из этих образцов и хранение их во внутренней переменной model_coefficients_. Подробнее... |
|
| void | getDistancesToModel (const Eigen::VectorXf &model_coefficients, std::vector< double > &distances) const override |
| Вычисление всех расстояний от данных облака до заданной модели плоскости. Подробнее... |
|
| void | selectWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold, Indices &inliers) override |
| Выбор всех точек, которые соответствуют заданным коэффициентам модели как внутренних точек. Подробнее... |
|
| std::size_t | countWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold) const override |
| Подсчёт всех точек, которые соответствуют заданным коэффициентам модели как внутренних точек. Подробнее... |
|
| void | optimizeModelCoefficients (const Indices &inliers, const Eigen::VectorXf &model_coefficients, Eigen::VectorXf &optimized_coefficients) const override |
| Пересчёт коэффициентов плоскости с использованием заданного набора внутренних точек и возврат их пользователю. Подробнее... |
|
| void | projectPoints (const Indices &inliers, const Eigen::VectorXf &model_coefficients, PointCloud &projected_points, bool copy_data_fields=true) const override |
| Создание нового облака точек с внутренними точками, спроецированными на модель плоскости. Подробнее... |
|
| bool | doSamplesVerifyModel (const std::set< index_t > &indices, const Eigen::VectorXf &model_coefficients, const double threshold) const override |
| Проверка, удовлетворяет ли подмножество индексов заданным коэффициентам модели плоскости. Подробнее... |
|
| pcl::SacModel | getModelType () const override |
| Возвращает уникальный идентификатор для этой модели (SACMODEL_PLANE). Подробнее... |
|
|
| |
| SampleConsensusModel (const PointCloudConstPtr &cloud, bool random=false) | |
| Конструктор для базового класса SampleConsensusModel. Подробнее... |
|
| SampleConsensusModel (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false) | |
| Конструктор для базового класса SampleConsensusModel. Подробнее... |
|
| virtual | ~SampleConsensusModel ()=default |
| Деструктор базового класса SampleConsensusModel. Подробнее... |
|
| virtual void | getSamples (int &iterations, Indices &samples) |
| Получить набор случайных выборок данных и вернуть их как индексы точек. Подробнее... |
|
| virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
| Указать указатель на входные данные. Подробнее... |
|
| PointCloudConstPtr | getInputCloud () const |
| Получить указатель на входное облако точек. Подробнее... |
|
| void | setIndices (const IndicesPtr &indices) |
| Указать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| void | setIndices (const Indices &indices) |
| Указать вектор индексов, представляющий входные данные. Подробнее... |
|
| IndicesPtr | getIndices () const |
| Получить указатель на вектор индексов. Подробнее... |
|
| const std::string & | getClassName () const |
| Получить строковое представление имени класса. Подробнее... |
|
| unsigned int | getSampleSize () const |
| Возвращает размер выборки, из которой вычисляется модель. Подробнее... |
|
| unsigned int | getModelSize () const |
| Возвращает количество коэффициентов в модели. Подробнее... |
|
| void | setRadiusLimits (const double &min_radius, const double &max_radius) |
| Установить минимальное и максимальное допустимые значения радиуса для модели (применимо к моделям, которые оценивают радиус) Подробнее... |
|
| void | getRadiusLimits (double &min_radius, double &max_radius) const |
| Получить минимальное и максимальное допустимые значения радиуса для модели, установленные пользователем. Подробнее... |
|
| void | setModelConstraints (std::function< bool(const Eigen::VectorXf &)> function) |
| Это можно использовать для наложения любого типа ограничений на модель, например, Подробнее... |
|
| void | setSamplesMaxDist (const double &radius, SearchPtr search) |
| Установить максимальное расстояние, разрешенное при построении случайных выборок. Подробнее... |
| void | getSamplesMaxDist (double &radius) const |
| Получить максимальное расстояние, разрешённое при заимствовании случайных выборок. Подробнее... |
|
| double | computeVariance (const std::vector< double > &error_sqr_dists) const |
| Вычислить дисперсию ошибок относительно модели. Подробнее... |
|
| double | computeVariance () const |
| Вычислить дисперсию ошибок относительно модели по внутреннему оценённому вектору расстояний. Подробнее... |
|
Защищённые члены-функции | |
| bool | isModelValid (const Eigen::VectorXf &model_coefficients) const override |
| Проверить, является ли модель действительной с учётом пользовательских ограничений. Подробнее... |
|
|
| |
| std::size_t | countWithinDistanceStandard (const Eigen::VectorXf &model_coefficients, const double threshold, std::size_t i=0) const |
| В данном варианте не используются инструкции SIMD. Подробнее... |
|
|
| |
| SampleConsensusModel (bool random=false) | |
| Пустой конструктор базового класса SampleConsensusModel. Подробнее... |
|
| void | drawIndexSample (Indices &sample) |
| Заполняет массив образцов случайными образцами из вектора indices_. Подробнее... |
|
| void | drawIndexSampleRadius (Indices &sample) |
| Заполняет массив образцов одним случайным образцом из вектора indices_ и другими случайными образцами, которые находятся ближе, чем samples_radius_. Подробнее... |
|
| int | rnd () |
| Генератор случайных чисел на основе Boost. Подробнее... |
|
Защищённые атрибуты | |
| Eigen::Vector3f | axis_ |
| Ось, вдоль которой необходимо искать плоскость, перпендикулярную ей. Подробнее... |
|
| double | eps_angle_ |
| Максимальное допустимое отклонение между плоскостью и заданной осью. Подробнее... |
|
| double | sin_angle_ |
| Синус угла. Подробнее... |
|
|
| |
| std::string | model_name_ |
| Название модели. Подробнее... |
|
| PointCloudConstPtr | input_ |
| Указатель на данные облака точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор индексов точек для использования. Подробнее... |
|
| double | radius_min_ |
| Минимальное и максимальное радиусы для модели. Подробнее... |
|
| double | radius_max_ |
| double | samples_radius_ |
| Максимальное расстояние последующих выборок от первой (поиск по радиусу) Подробнее... |
|
| SearchPtr | samples_radius_search_ |
| Объект поиска для выбора последующих выборок с помощью поиска по радиусу. Подробнее... |
|
| Indices | shuffled_indices_ |
| Данные, содержащие перемешанную версию индексов. Подробнее... |
|
| boost::mt19937 | rng_alg_ |
| Алгоритм генератора случайных чисел Boost. Подробнее... |
|
| std::shared_ptr< boost::uniform_int<> > | rng_dist_ |
| Распределение генератора случайных чисел Boost. Подробнее... |
|
| std::shared_ptr< boost::variate_generator< boost::mt19937 &, boost::uniform_int<> > > | rng_gen_ |
| Генератор случайных чисел Boost. Подробнее... |
|
| std::vector< double > | error_sqr_dists_ |
| Вектор, содержащий расстояния до вычисленной модели. Подробнее... |
|
| unsigned int | sample_size_ |
| Размер выборки, из которой вычисляется модель. Подробнее... |
|
| unsigned int | model_size_ |
| Количество коэффициентов в модели. Подробнее... |
|
| std::function< bool(const Eigen::VectorXf &)> | custom_model_constraints_ |
| Пользовательская функция, принимающая коэффициенты модели и возвращающая, является ли модель приемлемой. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| static const unsigned int | max_sample_checks_ = 1000 |
| Максимальное количество выборок для проверки, пока не будет найдена подходящая. Подробнее... |
|
Подробное описание
шаблон<typename PointT>
класс pcl::SampleConsensusModelParallelPlane< PointT >
SampleConsensusModelParallelPlane определяет модель для сегментации 3D плоскости с дополнительными угловыми ограничениями.
Плоскость должна быть параллельна указанной оси (setAxis) в пределах указанного порогового угла (setEpsAngle). Другими словами, нормаль плоскости должна быть (почти) перпендикулярна указанной оси.
Пример кода для модели плоскости, параллельной (с точностью до 15 градусов) оси Z:
SampleConsensusModelParallelPlane<pcl::PointXYZ> model (cloud); model.setAxis (Eigen::Vector3f (0.0, 0.0, 1.0)); model.setEpsAngle (pcl::deg2rad (15)); pcl::deg2radfloat deg2rad(float alpha)Convert an angle from degrees to radians.Definition: angles.hpp:67 pcl::deg2rad float deg2rad(float alpha) Convert an angle from degrees to radians. Definition: angles.hpp:67
- Примечание
- Помните, что вам необходимо указать угол > 0, чтобы активировать ограничение оси-угла!
Определение в строке 65 файла sac_model_parallel_plane.h.
Документация по алиасам типов данных
ConstPtr
| используется pcl::SampleConsensusModelParallelPlane< PointT >::ConstPtr = shared_ptr<const SampleConsensusModelParallelPlane<PointT> > |
Определение в строке 75 файла sac_model_parallel_plane.h.
PointCloud
| используется pcl::SampleConsensusModelParallelPlane< PointT >::PointCloud = typename SampleConsensusModelPlane<PointT>::PointCloud |
Определение в строке 70 файла sac_model_parallel_plane.h.
PointCloudConstPtr
| используется pcl::SampleConsensusModelParallelPlane< PointT >::PointCloudConstPtr = typename SampleConsensusModelPlane<PointT>::PointCloudConstPtr |
Определение в строке 72 файла sac_model_parallel_plane.h.
PointCloudPtr
| используется pcl::SampleConsensusModelParallelPlane< PointT >::PointCloudPtr = typename SampleConsensusModelPlane<PointT>::PointCloudPtr |
Определение в строке 71 файла sac_model_parallel_plane.h.
Ptr
| используется pcl::SampleConsensusModelParallelPlane< PointT >::Ptr = shared_ptr<SampleConsensusModelParallelPlane<PointT> > |
Определение в строке 74 файла sac_model_parallel_plane.h.
Документация по конструкторам и деструкторам
SampleConsensusModelParallelPlane() [1/2]
| inline |
Конструктор базового класса SampleConsensusModelParallelPlane.
- Параметры
-
[in] cloud набор входных точек облака [in] random если true, задаёт генератор случайных чисел со временем, иначе — 12345 (по умолчанию: false)
Определение в строке 81 файла sac_model_parallel_plane.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_, и pcl::SampleConsensusModel< PointT >::sample_size_.
SampleConsensusModelParallelPlane() [2/2]
| inline |
Конструктор базового класса SampleConsensusModelParallelPlane.
- Параметры
-
[in] cloud набор входных точек облака [in] indices вектор индексов точек, которые нужно использовать из cloud [in] random если true, задаёт генератор случайных чисел со временем, иначе — 12345 (по умолчанию: false)
Определение в строке 98 файла sac_model_parallel_plane.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_, и pcl::SampleConsensusModel< PointT >::sample_size_.
~SampleConsensusModelParallelPlane()
| overridedefault |
Пустой деструктор.
Документация по функциям-членам
countWithinDistance()
| overridevirtual |
Подсчитать все точки, которые соответствуют заданным коэффициентам модели как инлайнеры.
- Параметры
-
[in] model_coefficients коэффициенты модели, для которой требуется вычислить расстояния [in] threshold максимальное допустимое пороговое значение расстояния для определения инлайнеров от аутлайнеров
- Возвращает
- результирующее количество инлайнеров
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 63 файла sac_model_parallel_plane.hpp.
getAxis()
| inline |
Получить ось, вдоль которой необходимо искать плоскость, перпендикулярную ей.
Определение в строке 122 файла sac_model_parallel_plane.h.
Ссылки на pcl::SampleConsensusModelParallelPlane< PointT >::axis_.
getDistancesToModel()
| overridevirtual |
Вычислить все расстояния от данных облака до заданной модели плоскости.
- Parameters
-
[in] model_coefficients коэффициенты модели плоскости, для которых нужно вычислить расстояния [out] distances результирующие рассчитанные расстояния
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 77 файла sac_model_parallel_plane.hpp.
getEpsAngle()
| inline |
Получить пороговое значение угла epsilon (delta).
Определение в строке 133 файла sac_model_parallel_plane.h.
Ссылается на pcl::SampleConsensusModelParallelPlane< PointT >::eps_angle_.
Используется в pcl::SACSegmentation< PointT >::initSACModel().
getModelType()
| inlineoverridevirtual |
Возвращает уникальный идентификатор этой модели (SACMODEL_PARALLEL_PLANE).
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 165 файла sac_model_parallel_plane.h.
Ссылается на pcl::SACMODEL_PARALLEL_PLANE.
isModelValid()
| overrideprotectedvirtual |
Проверить, является ли модель валидной, учитывая пользовательские ограничения.
- Parameters
-
[in] model_coefficients набор коэффициентов модели
Переопределяет pcl::SampleConsensusModel< PointT >.
Определение в строке 92 файла sac_model_parallel_plane.hpp.
selectWithinDistance()
| overridevirtual |
Выбрать все точки, соответствующие заданным коэффициентам модели, как инлиеры.
- Parameters
-
[in] model_coefficients коэффициенты модели плоскости, для которых нужно вычислить расстояния [in] threshold максимально допустимое пороговое значение расстояния для определения инлиеров от аутлиеров [out] inliers результирующие инлиеры модели
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 48 файла sac_model_parallel_plane.hpp.
setAxis()
| inline |
Установить ось, по которой нужно искать плоскость, перпендикулярную к ней.
- Parameters
-
[in] ax ось, по которой нужно искать плоскость, перпендикулярную к ней
Определение в строке 118 файла sac_model_parallel_plane.h.
Ссылается на pcl::SampleConsensusModelParallelPlane< PointT >::axis_.
Используется в pcl::SACSegmentation< PointT >::initSACModel().
setEpsAngle()
| inline |
Установить пороговое значение угла epsilon (delta).
- Параметры
-
[in] ea максимальное допустимое расхождение между нормалью к плоскости и заданной осью.
- Примечание
- Для активации ограничения по оси и углу необходимо указать угол > 0!
Определение в строке 129 файла sac_model_parallel_plane.h.
Ссылки на pcl::SampleConsensusModelParallelPlane< PointT >::eps_angle_ и pcl::SampleConsensusModelParallelPlane< PointT >::sin_angle_.
Используется функцией pcl::SACSegmentation< PointT >::initSACModel().
Документация по данным членам
axis_
| protected |
Ось, вдоль которой необходимо искать плоскость, перпендикулярную ей.
Определение в строке 178 файла sac_model_parallel_plane.h.
Используется функциями pcl::SampleConsensusModelParallelPlane< PointT >::getAxis() и pcl::SampleConsensusModelParallelPlane< PointT >::setAxis().
eps_angle_
| protected |
Максимальное допустимое расхождение между плоскостью и заданной осью.
Определение в строке 181 файла sac_model_parallel_plane.h.
Используется функциями pcl::SampleConsensusModelParallelPlane< PointT >::getEpsAngle() и pcl::SampleConsensusModelParallelPlane< PointT >::setEpsAngle().
sin_angle_
| protected |
Синус угла.
Определение в строке 184 файла sac_model_parallel_plane.h.
Используется функцией pcl::SampleConsensusModelParallelPlane< PointT >::setEpsAngle().
The documentation for this class was generated from the following files:
- pcl/sample_consensus/sac_model_parallel_plane.h
- pcl/sample_consensus/impl/sac_model_parallel_plane.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_sample_consensus_model_parallel_plane.html