SampleConsensusModelCone задаёт модель для сегментации 3D-конуса. Подробнее...
#include <pcl/sample_consensus/sac_model_cone.h>
Общедоступные функции-члены | |
| SampleConsensusModelCone (const PointCloudConstPtr &cloud, bool random=false) | |
| Конструктор базового класса SampleConsensusModelCone. Подробнее... |
|
| SampleConsensusModelCone (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false) | |
| Конструктор базового класса SampleConsensusModelCone. Подробнее... |
|
| SampleConsensusModelCone (const SampleConsensusModelCone &source) | |
| Конструктор копирования. Подробнее... |
|
| ~SampleConsensusModelCone () override=default | |
| Пустой деструктор. Подробнее... |
|
| SampleConsensusModelCone & | operator= (const SampleConsensusModelCone &source) |
| Конструктор копирования. Подробнее... |
|
| void | setEpsAngle (double ea) |
| Задать пороговое значение углового допуска (дельты). Подробнее... |
|
| double | getEpsAngle () const |
| Получить пороговое значение углового допуска (дельты). Подробнее... |
|
| void | setAxis (const Eigen::Vector3f &ax) |
| Задать ось, вдоль которой необходимо искать направление конуса. Подробнее... |
|
| Eigen::Vector3f | getAxis () const |
| Получить ось, вдоль которой необходимо искать направление конуса. Подробнее... |
|
| void | setMinMaxOpeningAngle (const double &min_angle, const double &max_angle) |
| Задать минимальный и максимальный допустимые углы раскрытия конуса, указанные пользователем. Подробнее... |
|
| void | getMinMaxOpeningAngle (double &min_angle, double &max_angle) 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 | tr>
| Проверить, соответствует ли подмножество индексов заданным коэффициентам модели конуса. Подробнее... |
|
| pcl::SacModel | getModelType () const override |
| Вернуть уникальный идентификатор этой модели (SACMODEL_CONE). Подробнее... |
|
|
| |
| 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 | pointToAxisDistance (const Eigen::Vector4f &pt, const Eigen::VectorXf &model_coefficients) const |
| Получить расстояние от точки до прямой (заданной точкой и направлением). Подробнее... |
|
| 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) |
| Заполняет массив выборки случайными элементами из вектора indices_. Подробнее... |
|
| void | drawIndexSampleRadius (Indices &sample) |
| Заполняет массив выборки одним случайным элементом из вектора indices_ и другими случайными элементами, расположенными ближе, чем на расстоянии samples_radius_. Подробнее... |
|
| int | rnd () |
| Генератор случайных чисел на основе Boost. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| 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_ |
| Пользовательская функция, принимающая коэффициенты модели и возвращающая результат проверки её допустимости. Подробнее... |
|
|
| |
| double | normal_distance_weight_ {0.0} |
| Относительный вес (от 0 до 1), присваиваемый угловому расстоянию (от 0 до pi/2) между нормалями точек и нормалью плоскости. Подробнее... |
|
| PointCloudNConstPtr | normals_ |
| Указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее... |
|
|
| |
| static const unsigned int | max_sample_checks_ = 1000 |
| Максимальное число проверяемых выборок до получения корректной. Подробнее... |
|
Подробное описание
template<typename PointT, typename PointNT>
class pcl::SampleConsensusModelCone< PointT, PointNT >
SampleConsensusModelCone определяет модель для сегментации трёхмерного конуса.
Коэффициенты модели определяются следующим образом:
- apex.x : координата X вершины конуса
- apex.y : координата Y вершины конуса
- apex.z : координата Z вершины конуса
- axis_direction.x : координата X направления оси конуса
- axis_direction.y : координата Y направления оси конуса
- axis_direction.z : координата Z направления оси конуса
- opening_angle : угол раскрытия конуса
Определение в строке 67 файла sac_model_cone.h.
Документация псевдонимов типов-членов
ConstPtr
| using pcl::SampleConsensusModelCone< PointT, PointNT >::ConstPtr = shared_ptr<const SampleConsensusModelCone<PointT, PointNT> > |
Определение в строке 84 файла sac_model_cone.h.
PointCloud
| using pcl::SampleConsensusModelCone< PointT, PointNT >::PointCloud = typename SampleConsensusModel<PointT>::PointCloud |
Определение в строке 79 файла sac_model_cone.h.
PointCloudConstPtr
| using pcl::SampleConsensusModelCone< PointT, PointNT >::PointCloudConstPtr = typename SampleConsensusModel<PointT>::PointCloudConstPtr |
Определение в строке 81 файла sac_model_cone.h.
PointCloudPtr
| using pcl::SampleConsensusModelCone< PointT, PointNT >::PointCloudPtr = typename SampleConsensusModel<PointT>::PointCloudPtr |
Определение в строке 80 файла sac_model_cone.h.
Ptr
| using pcl::SampleConsensusModelCone< PointT, PointNT >::Ptr = shared_ptr<SampleConsensusModelCone<PointT, PointNT> > |
Определение в строке 83 файла sac_model_cone.h.
Документация конструкторов и деструктора
SampleConsensusModelCone() [1/3]
| inline |
Конструктор базового класса SampleConsensusModelCone.
- Параметры
-
[in] cloud входной набор данных облака точек [in] random если значение true, начальное значение генератора случайных чисел устанавливается равным текущему времени, иначе — 12345 (по умолчанию: false)
Определение в строке 90 файла sac_model_cone.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
SampleConsensusModelCone() [2/3]
| inline |
Конструктор базового класса SampleConsensusModelCone.
- Параметры
-
[in] cloud входной набор данных облака точек [in] indices вектор индексов точек из cloud, которые будут использоваться [in] random если значение true, начальное значение генератора случайных чисел устанавливается равным текущему времени, иначе — 12345 (по умолчанию: false)
Определение в строке 108 файла sac_model_cone.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
SampleConsensusModelCone() [3/3]
| inline |
Конструктор копирования.
- Параметры
-
[in] source модель, которую следует скопировать в этот объект
Определение в строке 126 файла sac_model_cone.h.
~SampleConsensusModelCone()
| overridedefault |
Пустой деструктор.
Документация функций-членов
computeModelCoefficients()
| overridevirtual |
Проверяет, могут ли заданные образцы индексов образовать корректную модель конуса, вычисляет по этим образцам коэффициенты модели и сохраняет их в model_coefficients.
Коэффициенты конуса: вершина, направление оси, угол раскрытия.
- Параметры
-
[in] samples индексы точек, найденных в качестве возможных кандидатов для построения корректной модели [out] model_coefficients результирующие коэффициенты модели
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 60 файла sac_model_cone.hpp.
countWithinDistance()
| overridevirtual |
Подсчитывает все точки, соответствующие заданным коэффициентам модели, как внутренние точки.
- Параметры
-
[in] model_coefficients коэффициенты модели, относительно которой требуется вычислить расстояния [in] threshold максимально допустимый порог расстояния для определения внутренних и выбросов
- Возвращает
- итоговое количество внутренних точек
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 274 файла sac_model_cone.hpp.
Ссылки на pcl::getAngle3D() и M_PI.
doSamplesVerifyModel()
| overridevirtual |
Проверяет, соответствует ли подмножество индексов заданным коэффициентам модели конуса.
- Параметры
-
[in] indices индексы данных, которые необходимо проверить на соответствие модели конуса [in] model_coefficients коэффициенты модели конуса [in] threshold максимально допустимый порог расстояния для определения внутренних точек и выбросов
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 472 файла sac_model_cone.hpp.
getAxis()
| inline |
Возвращает ось, вдоль которой необходимо искать направление конуса.
Определение в строке 171 файла sac_model_cone.h.
Используется в pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
getDistancesToModel()
| overridevirtual |
Вычисляет расстояния от всех точек облака данных до заданной модели конуса.
- Параметры
-
[in] model_coefficients коэффициенты модели конуса, относительно которой требуется вычислить расстояния [out] distances результирующие оценочные расстояния
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 150 файла sac_model_cone.hpp.
Ссылки на pcl::getAngle3D() и M_PI.
getEpsAngle()
| double pcl::SampleConsensusModelCone< PointT, PointNT >::getEpsAngle | ( | ) | const |
Возвращает пороговое значение угла эпсилон (дельта).
Определение в строке 161 файла sac_model_cone.h.
Используется в pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
getMinMaxOpeningAngle()
| inline |
Возвращает минимальный и максимальный углы раскрытия, допустимые для модели конуса.
- Параметры
-
[out] min_angle минимальный допустимый угол раскрытия модели конуса [out] max_angle максимальный допустимый угол раскрытия модели конуса
Определение в строке 190 файла sac_model_cone.h.
Используется в pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
getModelType()
| inlineoverridevirtual |
Возвращает уникальный идентификатор этой модели (SACMODEL_CONE).
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 271 файла sac_model_cone.h.
Ссылка на pcl::SACMODEL_CONE.
isModelValid()
| overrideprotectedvirtual |
Проверяет, является ли модель корректной с учётом ограничений, заданных пользователем.
- Параметры
-
[in] model_coefficients набор коэффициентов модели
Переопределяет метод из pcl::SampleConsensusModel< PointT >.
Определение в строке 525 файла sac_model_cone.hpp.
Ссылки на pcl::getAngle3D() и M_PI.
isSampleGood()
| overrideprotectedvirtual |
Проверяет, формирует ли выборка индексов корректную выборку индексов точек.
Чисто виртуальный метод.
- Параметры
-
[in] samples полученные индексы выборки
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 48 файла sac_model_cone.hpp.
operator=()
| inline |
Оператор копирующего присваивания.
- Параметры
-
[in] source модель, которую необходимо скопировать в текущий объект
Определение в строке 142 файла sac_model_cone.h.
optimizeModelCoefficients()
| overridevirtual |
Пересчитывает коэффициенты конуса по заданному набору внутренних точек и возвращает их пользователю.
- Примечание
- : это коэффициенты модели конуса после уточнения (например, после SVD)
- Параметры
-
[in] inliers внутренние точки данных, определённые как поддерживающие модель [in] model_coefficients начальное приближение для оптимизации [out] optimized_coefficients полученные пересчитанные коэффициенты после нелинейной оптимизации
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 332 файла sac_model_cone.hpp.
pointToAxisDistance()
| protected |
Вычисляет расстояние от точки до прямой (заданной точкой и направлением)
- Параметры
-
[in] pt точка [in] model_coefficients коэффициенты прямой (точка на прямой, направление прямой)
Определение в строке 515 файла sac_model_cone.hpp.
Ссылки: pcl::sqrPointToLineDistance().
projectPoints()
| overridevirtual |
Создаёт новое облако точек, проецируя внутренние точки на модель конуса.
- Параметры
-
[in] inliers внутренние точки данных, которые необходимо спроецировать на модель конуса [in] model_coefficients коэффициенты модели конуса [out] projected_points полученные спроецированные точки [in] copy_data_fields установите значение true, если необходимо скопировать остальные поля данных
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 376 файла sac_model_cone.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.
selectWithinDistance()
| overridevirtual |
Выбирает все точки, соответствующие заданным коэффициентам модели, в качестве внутренних точек.
- Параметры
-
[in] model_coefficients коэффициенты модели конуса, относительно которой необходимо вычислить расстояния [in] threshold максимально допустимый порог расстояния для определения внутренних точек и выбросов [out] inliers полученные внутренние точки модели
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 206 файла sac_model_cone.hpp.
Ссылки: pcl::geometry::distance(), pcl::getAngle3D() и M_PI.
setAxis()
| inline |
Задаёт ось, вдоль которой необходимо искать направление конуса.
- Параметры
-
[in] ax ось, вдоль которой необходимо искать направление конуса
Определение в строке 167 файла sac_model_cone.h.
Используется в pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
setEpsAngle()
| inline |
Задаёт порог угловой погрешности (дельты).
- Параметры
-
[in] ea максимально допустимая разница между осью конуса и заданной осью.
Определение в строке 157 файла sac_model_cone.h.
Используется в pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
setMinMaxOpeningAngle()
| inline |
Задаёт минимальный и максимальный допустимые углы раствора модели конуса, указанные пользователем.
- Параметры
-
[in] min_angle минимальный допустимый угол раствора модели конуса [in] max_angle максимальный допустимый угол раствора модели конуса
Определение в строке 179 файла sac_model_cone.h.
Используется в pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().
Документация для этого класса создана на основе следующих файлов:
- pcl/sample_consensus/sac_model_cone.h
- pcl/sample_consensus/impl/sac_model_cone.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_cone.html