SampleConsensusModelPerpendicularPlane определяет модель для сегментации плоскости в 3D с использованием дополнительных угловых ограничений. Подробнее...
#include <pcl/sample_consensus/sac_model_perpendicular_plane.h>
Публичные функции-члены | |
| SampleConsensusModelPerpendicularPlane (const PointCloudConstPtr &cloud, bool random=false) | |
| Конструктор базового класса SampleConsensusModelPerpendicularPlane. Подробнее... |
|
| SampleConsensusModelPerpendicularPlane (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false) | |
| Конструктор базового класса SampleConsensusModelPerpendicularPlane. Подробнее... |
|
| ~SampleConsensusModelPerpendicularPlane () override=default | |
| Пустой деструктор. Подробнее... |
|
| void | setAxis (const Eigen::Vector3f &ax) |
| Задать ось, перпендикулярно которой требуется найти плоскость. Подробнее... |
|
| Eigen::Vector3f | getAxis () const |
| Получить ось, перпендикулярно которой требуется найти плоскость. Подробнее... |
|
| void | setEpsAngle (const double ea) |
| Задать пороговое значение углового эпсилон (дельта). Подробнее... |
|
| double | getEpsAngle () const |
| Получить пороговое значение углового эпсилон (дельта). Подробнее... |
|
| 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_PERPENDICULAR_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_ |
| Максимально допустимое отклонение нормали плоскости от заданной оси. Подробнее... |
|
|
| |
| std::string | model_name_ |
| Имя модели. Подробнее... |
|
| PointCloudConstPtr | input_ |
| Умный указатель Boost на массив данных облака точек. Подробнее... |
|
| 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 |
| Максимальное количество проверяемых выборок до получения подходящей. Подробнее... |
|
Подробное описание
template<typename PointT>
class pcl::SampleConsensusModelPerpendicularPlane< PointT >
SampleConsensusModelPerpendicularPlane задаёт модель для сегментации плоскостей в 3D с использованием дополнительных угловых ограничений.
Плоскость должна быть перпендикулярна заданной пользователем оси (setAxis) с учётом заданного пользователем порогового значения угла (setEpsAngle). Другими словами, нормаль плоскости должна быть (почти) параллельна заданной оси. Коэффициенты модели определяются следующим образом:
- a : координата X нормали плоскости (нормализованной)
- b : координата Y нормали плоскости (нормализованной)
- c : координата Z нормали плоскости (нормализованной)
- d : четвёртая компонента Гессе уравнения плоскости
Пример кода для модели плоскости, перпендикулярной оси Z (допуск 15 градусов):
SampleConsensusModelPerpendicularPlane<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!
Определение в строке 70 файла sac_model_perpendicular_plane.h.
Описание псевдонимов типов-членов
ConstPtr
| using pcl::SampleConsensusModelPerpendicularPlane< PointT >::ConstPtr = shared_ptr<const SampleConsensusModelPerpendicularPlane<PointT> > |
Определение в строке 80 файла sac_model_perpendicular_plane.h.
PointCloud
| using pcl::SampleConsensusModelPerpendicularPlane< PointT >::PointCloud = typename SampleConsensusModelPlane<PointT>::PointCloud |
Определено в строке 75 файла sac_model_perpendicular_plane.h.
PointCloudConstPtr
| using pcl::SampleConsensusModelPerpendicularPlane< PointT >::PointCloudConstPtr = typename SampleConsensusModelPlane<PointT>::PointCloudConstPtr |
Определено в строке 77 файла sac_model_perpendicular_plane.h.
PointCloudPtr
| using pcl::SampleConsensusModelPerpendicularPlane< PointT >::PointCloudPtr = typename SampleConsensusModelPlane<PointT>::PointCloudPtr |
Определено в строке 76 файла sac_model_perpendicular_plane.h.
Ptr
| using pcl::SampleConsensusModelPerpendicularPlane< PointT >::Ptr = shared_ptr<SampleConsensusModelPerpendicularPlane<PointT> > |
Определено в строке 79 файла sac_model_perpendicular_plane.h.
Документация конструктора и деструктора
SampleConsensusModelPerpendicularPlane() [1/2]
| inline |
Конструктор базового класса SampleConsensusModelPerpendicularPlane.
- Параметры
-
[in] cloud входной набор данных облака точек [in] random если значение равно true, начальное значение генератора случайных чисел устанавливается равным текущему времени, иначе — 12345 (по умолчанию: false)
Определено в строке 86 файла sac_model_perpendicular_plane.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
SampleConsensusModelPerpendicularPlane() [2/2]
| inline |
Конструктор базового класса SampleConsensusModelPerpendicularPlane.
- Параметры
-
[in] cloud входной набор данных облака точек [in] indices вектор индексов точек из cloud, которые следует использовать [in] random если значение равно true, начальное значение генератора случайных чисел устанавливается равным текущему времени, иначе — 12345 (по умолчанию: false)
Определено в строке 102 файла sac_model_perpendicular_plane.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
~SampleConsensusModelPerpendicularPlane()
| overridedefault |
Пустой деструктор.
Документация функций-членов
countWithinDistance()
| overridevirtual |
Подсчитывает все точки, которые соответствуют заданным коэффициентам модели и считаются внутренними точками.
- Параметры
-
[in] model_coefficients коэффициенты модели, до которой необходимо вычислить расстояния [in] threshold максимально допустимый порог расстояния для определения внутренних и выбросных точек
- Возвращает
- полученное количество внутренних точек
Реализует метод pcl::SampleConsensusModel< PointT >.
Определено в строке 64 файла sac_model_perpendicular_plane.hpp.
getAxis()
| inline |
Получить ось, относительно которой выполняется поиск перпендикулярной плоскости.
Определено в строке 125 файла sac_model_perpendicular_plane.h.
Ссылки на pcl::SampleConsensusModelPerpendicularPlane< PointT >::axis_.
На этот метод ссылается pcl::SACSegmentation< PointT >::initSACModel().
getDistancesToModel()
| overridevirtual |
Вычислить расстояния от всех точек облака данных до заданной модели плоскости.
- Параметры
-
[in] model_coefficients коэффициенты модели плоскости, до которой необходимо вычислить расстояния [out] distances результирующие оценочные расстояния
Реализует метод pcl::SampleConsensusModel< PointT >.
Определено в строке 78 файла sac_model_perpendicular_plane.hpp.
getEpsAngle()
| inline |
Получить пороговое значение угла epsilon (delta).
Определено в строке 136 файла sac_model_perpendicular_plane.h.
Ссылки на pcl::SampleConsensusModelPerpendicularPlane< PointT >::eps_angle_.
На этот метод ссылается pcl::SACSegmentation< PointT >::initSACModel().
getModelType()
| inlineoverridevirtual |
Вернуть уникальный идентификатор этой модели (SACMODEL_PERPENDICULAR_PLANE).
Реализует метод pcl::SampleConsensusModel< PointT >.
Определено в строке 168 файла sac_model_perpendicular_plane.h.
Ссылки на pcl::SACMODEL_PERPENDICULAR_PLANE.
isModelValid()
| overrideprotectedvirtual |
Проверить, соответствует ли модель ограничениям, заданным пользователем.
- Параметры
-
[in] model_coefficients набор коэффициентов модели
Переопределяет метод pcl::SampleConsensusModel< PointT >.
Определено в строке 93 файла sac_model_perpendicular_plane.hpp.
Ссылки на pcl::getAngle3D() и M_PI.
selectWithinDistance()
| overridevirtual |
Выбрать все точки, которые соответствуют заданным коэффициентам модели и считаются внутренними точками.
- Параметры
-
[in] model_coefficients коэффициенты модели плоскости, до которой необходимо вычислить расстояния [in] threshold максимально допустимый порог расстояния для определения внутренних и выбросных точек [out] inliers результирующие внутренние точки модели
Реализует метод pcl::SampleConsensusModel< PointT >.
Определено в строке 49 файла sac_model_perpendicular_plane.hpp.
setAxis()
| inline |
Задать ось, относительно которой выполняется поиск перпендикулярной плоскости.
- Параметры
-
[in] ax ось, относительно которой выполняется поиск перпендикулярной плоскости
Определено в строке 121 файла sac_model_perpendicular_plane.h.
Ссылки на pcl::SampleConsensusModelPerpendicularPlane< PointT >::axis_.
На этот метод ссылается pcl::SACSegmentation< PointT >::initSACModel().
setEpsAngle()
| |||||||
| inline |
Задать пороговое значение угла epsilon (delta).
- Параметры
-
[in] ea максимально допустимое отклонение нормали плоскости от заданной оси.
- Примечание
- Чтобы активировать ограничение по углу между осью и плоскостью, необходимо указать угол > 0!
Определено в строке 132 файла sac_model_perpendicular_plane.h.
Ссылки на pcl::SampleConsensusModelPerpendicularPlane< PointT >::eps_angle_.
На этот метод ссылается pcl::SACSegmentation< PointT >::initSACModel().
Документация данных-членов
axis_
| protected |
Ось, относительно которой выполняется поиск перпендикулярной плоскости.
Определено в строке 181 файла sac_model_perpendicular_plane.h.
На это поле ссылаются методы pcl::SampleConsensusModelPerpendicularPlane< PointT >::getAxis() и pcl::SampleConsensusModelPerpendicularPlane< PointT >::setAxis().
eps_angle_
| protected |
Максимально допустимое отклонение нормали плоскости от заданной оси.
Определение в строке 184 файла sac_model_perpendicular_plane.h.
Используется в pcl::SampleConsensusModelPerpendicularPlane< PointT >::getEpsAngle() и pcl::SampleConsensusModelPerpendicularPlane< PointT >::setEpsAngle().
Документация для этого класса сгенерирована на основе следующих файлов:
- pcl/sample_consensus/sac_model_perpendicular_plane.h
- pcl/sample_consensus/impl/sac_model_perpendicular_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_perpendicular_plane.html