SampleConsensusModelCylinder определяет модель для сегментации цилиндров в 3D. Подробнее...
#include <pcl/sample_consensus/sac_model_cylinder.h>
Общедоступные члены-функции | |
| SampleConsensusModelCylinder (const PointCloudConstPtr &cloud, bool random=false) | |
| Конструктор базового класса SampleConsensusModelCylinder. Подробнее... |
|
| SampleConsensusModelCylinder (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false) | |
| Конструктор базового класса SampleConsensusModelCylinder. Подробнее... |
|
| SampleConsensusModelCylinder (const SampleConsensusModelCylinder &source) | |
| Копирующий конструктор. Подробнее... |
|
| ~SampleConsensusModelCylinder () override=default | |
| Пустой деструктор. Подробнее... |
|
| SampleConsensusModelCylinder & | operator= (const SampleConsensusModelCylinder &source) |
| Копирующий конструктор. Подробнее... |
|
| void | setEpsAngle (const double ea) |
| Установить порог эпсилон угла (дельта). Подробнее... |
|
| double | getEpsAngle () const |
| Получить порог эпсилон угла (дельта). Подробнее... |
|
| void | setAxis (const Eigen::Vector3f &ax) |
| Установить ось, по которой необходимо искать направление цилиндра. Подробнее... |
|
| Eigen::Vector3f | getAxis () const |
| Получить ось, по которой необходимо искать направление цилиндра. Подробнее... |
|
| 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_CYLINDER). Подробнее... |
|
|
| |
| 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. Подробнее... |
|
Защищенные члены-функции | |
| double | pointToLineDistance (const Eigen::Vector4f &pt, const Eigen::VectorXf &model_coefficients) const |
| Получить расстояние от точки до прямой (представленной точкой и направлением) Подробнее... |
|
| void | projectPointToLine (const Eigen::Vector4f &pt, const Eigen::Vector4f &line_pt, const Eigen::Vector4f &line_dir, Eigen::Vector4f &pt_proj) const |
| Проецировать точку на прямую, заданную точкой и вектором направления. Подробнее... |
|
| void | projectPointToCylinder (const Eigen::Vector4f &pt, const Eigen::VectorXf &model_coefficients, Eigen::Vector4f &pt_proj) const |
| Проецировать точку на цилиндр, заданный его коэффициентами модели (точка_на_оси, направление_оси, радиус_цилиндра_R) Подробнее... |
|
| bool | isModelValid (const Eigen::VectorXf &model_coefficients) const override |
| Проверка, является ли модель допустимой, учитывая ограничения пользователя. Подробнее... |
|
| bool | isSampleGood (const Indices &samples) const override |
| Проверка, является ли выборка индексов хорошей выборкой индексов точек. Подробнее... |
|
|
| |
| SampleConsensusModel (bool random=false) | |
| Пустой конструктор для базового класса SampleConsensusModel. Подробнее... |
|
| void | drawIndexSample (Indices &sample) |
| Заполняет массив sample случайными выборками из вектора indices_. Подробнее... |
|
| void | drawIndexSampleRadius (Indices &sample) |
| Заполняет массив sample одной случайной выборкой из вектора indices_ и другими случайными выборками, которые находятся ближе, чем samples_radius_. Подробнее... |
|
| 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::SampleConsensusModelCylinder< PointT, PointNT >
SampleConsensusModelCylinder определяет модель для сегментации цилиндров в 3D пространстве.
Коэффициенты модели определяются следующим образом:
- point_on_axis.x : координата X точки, расположенной на оси цилиндра
- point_on_axis.y : координата Y точки, расположенной на оси цилиндра
- point_on_axis.z : координата Z точки, расположенной на оси цилиндра
- axis_direction.x : координата X направления оси цилиндра
- axis_direction.y : координата Y направления оси цилиндра
- axis_direction.z : координата Z направления оси цилиндра
- radius : радиус цилиндра
Определение в строке 63 файла sac_model_cylinder.h.
Документация по типам-членам
ConstPtr
| используя pcl::SampleConsensusModelCylinder< PointT, PointNT >::ConstPtr = shared_ptr<const SampleConsensusModelCylinder<PointT, PointNT> > |
Определение в строке 80 файла sac_model_cylinder.h.
PointCloud
| используя pcl::SampleConsensusModelCylinder< PointT, PointNT >::PointCloud = typename SampleConsensusModel<PointT>::PointCloud |
Определение в строке 75 файла sac_model_cylinder.h.
PointCloudConstPtr
| используя pcl::SampleConsensusModelCylinder< PointT, PointNT >::PointCloudConstPtr = typename SampleConsensusModel<PointT>::PointCloudConstPtr |
Определение в строке 77 файла sac_model_cylinder.h.
PointCloudPtr
| используя pcl::SampleConsensusModelCylinder< PointT, PointNT >::PointCloudPtr = typename SampleConsensusModel<PointT>::PointCloudPtr |
Определение в строке 76 файла sac_model_cylinder.h.
Ptr
| используя pcl::SampleConsensusModelCylinder< PointT, PointNT >::Ptr = shared_ptr<SampleConsensusModelCylinder<PointT, PointNT> > |
Определение в строке 79 файла sac_model_cylinder.h.
Документация по конструктору и деструктору
SampleConsensusModelCylinder() [1/3]
| inline |
Конструктор базового класса SampleConsensusModelCylinder.
- Параметры
-
[in] cloud набор входных точек облака [in] random если true, устанавливает генератор случайных чисел на текущее время, иначе на 12345 (по умолчанию: false)
Определение в строке 86 файла sac_model_cylinder.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
SampleConsensusModelCylinder() [2/3]
| inline |
Конструктор базового класса SampleConsensusModelCylinder.
- Параметры
-
[in] cloud набор входных точек облака [in] indices вектор индексов точек, используемых из cloud [in] random если true, устанавливает генератор случайных чисел на текущее время, иначе на 12345 (по умолчанию: false)
Определение в строке 102 файла sac_model_cylinder.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
SampleConsensusModelCylinder() [3/3]
| inline |
Копирующий конструктор.
- Параметры
-
[in] source модель для копирования
Определение в строке 118 файла sac_model_cylinder.h.
~SampleConsensusModelCylinder()
| overridedefault |
Пустой деструктор.
Member Function Documentation
computeModelCoefficients()
| overridevirtual |
Проверка, могут ли данные индексы образов образовывать действительную модель цилиндра, вычисление коэффициентов модели из этих образов и сохранение их в model_coefficients.
Коэффициенты цилиндра: point_on_axis, axis_direction, cylinder_radius_R
- Параметры
-
[in] samples индексы точек, найденные как возможные хорошие кандидаты для создания валидной модели [out] model_coefficients полученные коэффициенты модели
Реализация pcl::SampleConsensusModel< PointT >.
Определение в строке 76 файла sac_model_cylinder.hpp.
Ссылки на pcl::sqrPointToLineDistance().
countWithinDistance()
| overridevirtual |
Подсчитать все точки, которые соответствуют заданным коэффициентам модели как внутренние точки.
- Parameters
-
[in] model_coefficients коэффициенты модели, к которым необходимо вычислить расстояния [in] threshold максимально допустимый порог расстояния для определения внутренних точек от внешних
- Returns
- результирующее количество внутренних точек
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 241 файла sac_model_cylinder.hpp.
doSamplesVerifyModel()
| overridevirtual |
Проверить, удовлетворяет ли подмножество индексов заданным коэффициентам цилиндрической модели.
- Parameters
-
[in] indices индексы данных, которые необходимо проверить на соответствие цилиндрической модели [in] model_coefficients коэффициенты цилиндрической модели [in] threshold максимально допустимый порог расстояния для определения внутренних точек от внешних
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 409 файла sac_model_cylinder.hpp.
getAxis()
| inline |
Получить ось, по которой необходимо искать направление цилиндра.
Определение в строке 162 файла sac_model_cylinder.h.
Ссылка на pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
getDistancesToModel()
| overridevirtual |
Вычислить все расстояния от данных облака до заданной цилиндрической модели.
- Parameters
-
[in] model_coefficients коэффициенты цилиндрической модели, к которым необходимо вычислить расстояния [out] distances результирующие вычисленные расстояния
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 146 файла sac_model_cylinder.hpp.
getEpsAngle()
| inline |
Получить порог угла epsilon (delta).
Определение в строке 152 файла sac_model_cylinder.h.
Ссылка на pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
getModelType()
| inlineoverridevirtual |
Возвращает уникальный идентификатор для этой модели (SACMODEL_CYLINDER).
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 238 файла sac_model_cylinder.h.
Ссылки на pcl::SACMODEL_CYLINDER.
isModelValid()
| overrideprotectedvirtual |
Проверка, является ли модель допустимой, с учетом пользовательских ограничений.
- Parameters
-
[in] model_coefficients набор коэффициентов модели
Переопределено из pcl::SampleConsensusModel< PointT >.
Определение в строке 462 файла sac_model_cylinder.hpp.
Ссылки на pcl::getAngle3D() и M_PI.
isSampleGood()
| overrideprotectedvirtual |
Проверка, является ли выборка индексов хорошей выборкой индексов точек.
Чисто виртуальная функция.
- Parameters
-
[in] samples результирующая выборка индексов
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 51 файла sac_model_cylinder.hpp.
operator=()
| inline |
Конструктор копирования.
- Parameters
-
[in] source модель для копирования в текущую
Определение в строке 135 файла sac_model_cylinder.h.
optimizeModelCoefficients()
| overridevirtual |
Пересчет коэффициентов цилиндра с использованием заданного набора инлайнеров и возврат их пользователю.
- Note
- Это коэффициенты модели цилиндра после уточнения (например, после SVD)
- Parameters
-
[in] inliers данные инлайнеры, поддерживающие модель [in] model_coefficients начальное предположение для оптимизации [out] optimized_coefficients результирующие пересчитанные коэффициенты после нелинейной оптимизации
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 283 файла sac_model_cylinder.hpp.
pointToLineDistance()
| protected |
Расстояние от точки до линии (представленной точкой и направлением).
- Parameters
-
[in] pt точка [in] model_coefficients коэффициенты линии (точка на линии, направление линии)
Определение в строке 434 файла sac_model_cylinder.hpp.
Ссылки на pcl::sqrPointToLineDistance().
projectPoints()
| overridevirtual |
Создать новый облако точек с проекциями элементов на цилиндрическую модель.
- Параметры
-
[in] inliers элементы данных, которые нужно спроецировать на цилиндрическую модель [in] model_coefficients коэффициенты цилиндрической модели [out] projected_points результирующие спроецированные точки [in] copy_data_fields установить в true, если необходимо скопировать другие поля данных
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 321 файла sac_model_cylinder.hpp.
Ссылки на pcl::PointCloud< PointT >::header, pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::is_dense, pcl::PointCloud< PointT >::resize(), pcl::PointCloud< PointT >::size() и pcl::PointCloud< PointT >::width.
projectPointToCylinder()
| protected |
Проецировать точку на цилиндр, заданный коэффициентами модели (точка_на_оси, направление_оси, радиус_цилиндра_R).
- Параметры
-
[in] pt входная точка для проекции [in] model_coefficients коэффициенты цилиндра (точка_на_оси, направление_оси, радиус_цилиндра_R) [out] pt_proj результирующая спроецированная точка
Определение в строке 444 файла sac_model_cylinder.hpp.
projectPointToLine()
| inlineprotected |
Проецировать точку на прямую, заданную точкой и вектором направления.
- Параметры
-
[in] pt входная точка для проекции [in] line_pt точка на прямой (убедитесь, что line_pt[3] = 0, так как внутренних проверок нет!) [in] line_dir направление прямой (убедитесь, что line_dir[3] = 0, так как внутренних проверок нет!) [out] pt_proj результирующая спроецированная точка
Определение в строке 258 файла sac_model_cylinder.h.
selectWithinDistance()
| overridevirtual |
Выбрать все точки, которые соответствуют заданным коэффициентам модели, как внутренние.
- Параметры
-
[in] model_coefficients коэффициенты цилиндрической модели, для которой необходимо вычислить расстояния [in] threshold максимальное допустимое пороговое значение расстояния для определения внутренних точек от внешних [out] inliers результирующие внутренние точки модели
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 189 файла sac_model_cylinder.hpp.
setAxis()
| inline |
Установите ось, по которой необходимо искать направление цилиндра.
- Parameters
-
[in] ax ось, по которой необходимо искать направление цилиндра
Определение в строке 158 файла sac_model_cylinder.h.
Используется в pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
setEpsAngle()
| inline |
Установите порог epsilon (delta) угла.
- Parameters
-
[in] ea максимальное допустимое отклонение оси цилиндра от заданной оси.
Определение в строке 148 файла sac_model_cylinder.h.
Используется в pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
The documentation for this class was generated from the following files:
- pcl/sample_consensus/sac_model_cylinder.h
- pcl/sample_consensus/impl/sac_model_cylinder.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_cylinder.html