SampleConsensusModelNormalPlane определяет модель для сегментации 3D плоскостей с использованием дополнительных ограничений нормали поверхности. Подробнее...
#include <pcl/sample_consensus/sac_model_normal_plane.h>
| using | ConstPtr = shared_ptr< const SampleConsensusModel< PointT > > |
|
| |
| using | PointCloudNConstPtr = typename pcl::PointCloud< PointNT >::ConstPtr |
| using | PointCloudNPtr = typename pcl::PointCloud< PointNT >::Ptr |
| using | Ptr = shared_ptr< SampleConsensusModelFromNormals< PointT, PointNT > > |
| using | ConstPtr = shared_ptr< const SampleConsensusModelFromNormals< PointT, PointNT > > |
Открытые члены-функции | |
| SampleConsensusModelNormalPlane (const PointCloudConstPtr &cloud, bool random=false) | |
| Конструктор для базового класса SampleConsensusModelNormalPlane. Подробнее... |
|
| SampleConsensusModelNormalPlane (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false) | |
| Конструктор для базового класса SampleConsensusModelNormalPlane. Подробнее... |
|
| ~SampleConsensusModelNormalPlane () override=default | |
| Пустой деструктор. Подробнее... |
|
| 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_NORMAL_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 |
| Проверить, могут ли заданные индексные образцы образовать действительную модель плоскости, вычислить коэффциенты модели из этих образцов и сохранить их во внутренней модели_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 |
| Вычислить дисперсию ошибок модели по внутренне оценённому вектору расстояний. Подробнее... |
|
|
| |
| SampleConsensusModelFromNormals () | |
| Пустой конструктор для базового класса SampleConsensusModelFromNormals. Подробнее... |
|
| virtual | ~SampleConsensusModelFromNormals ()=default |
| Деструктор. Подробнее... |
|
| void | setNormalDistanceWeight (const double w) |
| Установить вес нормального углового расстояния. Подробнее... |
|
| double | getNormalDistanceWeight () const |
| Получить вес нормального углового расстояния. Подробнее... |
|
| void | setInputNormals (const PointCloudNConstPtr &normals) |
| Предоставить указатель на входные данные, содержащие нормали точек XYZ набора данных. Подробнее... |
|
| PointCloudNConstPtr | getInputNormals () const |
| Получить указатель на нормали входного набора данных точек XYZ. Подробнее... |
|
Защищенные члены-функции | |
| std::size_t | countWithinDistanceStandard (const Eigen::VectorXf &model_coefficients, const double threshold, std::size_t i=0) const |
| Это реализация не использует SIMD-инструкции. Подробнее... |
|
|
| |
| 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_. Подробнее... |
|
| virtual bool | isModelValid (const Eigen::VectorXf &model_coefficients) const |
| Проверяет, является ли модель допустимой в соответствии с ограничениями пользователя. Подробнее... |
|
| int | rnd () |
| Генератор случайных чисел на основе Boost. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| std::string | model_name_ |
| Имя модели. Подробнее... |
|
| PointCloudConstPtr | input_ |
| Указатель на boost shared, ссылающийся на массив данных облака точек. Подробнее... |
|
| 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_ |
| Функция, определённая пользователем, которая принимает коэффициенты модели и возвращает, является ли модель приемлемой. Подробнее... |
|
|
| |
| double | normal_distance_weight_ |
| Относительный вес (от 0 до 1), придаваемый угловому расстоянию (от 0 до π/2) между нормалями к точкам и нормалью к плоскости. Подробнее... |
|
| PointCloudNConstPtr | normals_ |
| Указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее... |
|
|
| |
| static const unsigned int | max_sample_checks_ = 1000 |
| Максимальное количество попыток выбора образцов до получения подходящего. Подробнее... |
|
Подробное описание
шаблон<typename PointT, typename PointNT>
класс pcl::SampleConsensusModelNormalPlane< PointT, PointNT >
SampleConsensusModelNormalPlane определяет модель для сегментации 3D-плоскостей с использованием дополнительных ограничений на нормали к поверхности.
В основном это означает, что проверка соответствия не будет основываться только на критериях "расстояния до модели", но также и на дополнительном критерие "максимального углового отклонения" между нормалью к плоскости и нормалями к точкам-соответствиям.
Коэффициенты модели определяются как:
- a : координата X нормали к плоскости (нормализовано)
- b : координата Y нормали к плоскости (нормализовано)
- c : координата Z нормали к плоскости (нормализовано)
- d : четвёртый компонент уравнения плоскости
Для настройки влияния нормалей поверхности на оценку соответствий установите вес нормали (0,0-1,0), например:
SampleConsensusModelNormalPlane<pcl::PointXYZ, pcl::Normal> sac_model; ... sac_model.setNormalDistanceWeight (0.1); ...
Определение в строке 76 файла sac_model_normal_plane.h.
Документация по члену-типу
ConstPtr
| используя pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::ConstPtr = shared_ptr<const SampleConsensusModelNormalPlane<PointT, PointNT> > |
Определение в строке 95 файла sac_model_normal_plane.h.
PointCloud
| используя pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::PointCloud = typename SampleConsensusModel<PointT>::PointCloud |
Определение в строке 87 файла sac_model_normal_plane.h.
PointCloudConstPtr
| используя pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::PointCloudConstPtr = typename SampleConsensusModel<PointT>::PointCloudConstPtr |
Определение в строке 89 файла sac_model_normal_plane.h.
PointCloudNConstPtr
| используя pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::PointCloudNConstPtr = typename SampleConsensusModelFromNormals<PointT, PointNT>::PointCloudNConstPtr |
Определение в строке 92 файла sac_model_normal_plane.h.
PointCloudNPtr
| using pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::PointCloudNPtr = typename SampleConsensusModelFromNormals<PointT, PointNT>::PointCloudNPtr |
Определение в строке 91 файла sac_model_normal_plane.h.
PointCloudPtr
| using pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::PointCloudPtr = typename SampleConsensusModel<PointT>::PointCloudPtr |
Определение в строке 88 файла sac_model_normal_plane.h.
Ptr
| using pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::Ptr = shared_ptr<SampleConsensusModelNormalPlane<PointT, PointNT> > |
Определение в строке 94 файла sac_model_normal_plane.h.
Конструктор и деструктор
SampleConsensusModelNormalPlane() [1/2]
| inline |
Конструктор базового класса SampleConsensusModelNormalPlane.
- Параметры
-
[вход] cloud набор входных точек облака [вход] random если true, устанавливает псевдослучайное числовое зерно текущего времени; иначе устанавливает значение 12345 (по умолчанию: false)
Определение в строке 101 файла sac_model_normal_plane.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
SampleConsensusModelNormalPlane() [2/2]
| inline |
Конструктор базового класса SampleConsensusModelNormalPlane.
- Параметры
-
[вход] cloud набор входных точек облака [вход] indices вектор индексов точек, которые следует использовать из cloud [вход] random если true, устанавливает псевдослучайное числовое зерно текущего времени; иначе устанавливает значение 12345 (по умолчанию: false)
Определение в строке 116 файла sac_model_normal_plane.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
~SampleConsensusModelNormalPlane()
| overridedefault |
Пустой деструктор.
Документация функций-членов
countWithinDistance()
| overridevirtual |
Подсчитать все точки, которые соответствуют заданным коэффициентам модели в качестве инлайнеров.
- Parameters
-
[in] model_coefficients коэффициенты модели, для которой требуется вычислить расстояния [in] threshold максимальное допустимое пороговое значение расстояния для определения инлайнеров от аутлайнеров
- Returns
- результирующее количество инлайнеров
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 106 файла sac_model_normal_plane.hpp.
countWithinDistanceStandard()
| protected |
В данной реализации не используются инструкции SIMD.
Не предназначена для обычного использования. См. countWithinDistance, который автоматически использует самую быструю реализацию.
Определение в строке 130 файла sac_model_normal_plane.hpp.
Ссылки на pcl::getAngle3D(), и M_PI.
getDistancesToModel()
| overridevirtual |
Вычислить все расстояния от данных облака до заданной модели плоскости.
- Parameters
-
[in] model_coefficients коэффициенты модели плоскости, для которых требуется вычислить расстояния [out] distances результирующие рассчитанные расстояния
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 293 файла sac_model_normal_plane.hpp.
Ссылки на pcl::getAngle3D(), и M_PI.
getModelType()
| inlineoverridevirtual |
Возвращает уникальный идентификатор для этой модели (SACMODEL_NORMAL_PLANE).
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 160 файла sac_model_normal_plane.h.
Ссылки на pcl::SACMODEL_NORMAL_PLANE.
selectWithinDistance()
| overridevirtual |
Выбрать все точки, которые соответствуют заданным коэффициентам модели в качестве инлайнеров.
- Parameters
-
[in] model_coefficients коэффициенты модели плоскости, для которых требуется вычислить расстояния [in] threshold максимальное допустимое пороговое значение расстояния для определения инлайнеров от аутлайнеров [out] inliers результирующие инлайнеры модели
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 50 файла sac_model_normal_plane.hpp.
Ссылки на pcl::geometry::distance(), pcl::getAngle3D(), и M_PI.
The documentation for this class was generated from the following files:
- pcl/sample_consensus/sac_model_normal_plane.h
- pcl/sample_consensus/impl/sac_model_normal_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_normal_plane.html