SampleConsensusModelEllipse3D определяет модель для сегментации эллипсов в 3D. Подробнее...
#include <pcl/sample_consensus/sac_model_ellipse3d.h>
Общедоступные типы | |
| using | PointCloud = typename SampleConsensusModel< PointT >::PointCloud |
| using | PointCloudPtr = typename SampleConsensusModel< PointT >::PointCloudPtr |
| using | PointCloudConstPtr = typename SampleConsensusModel< PointT >::PointCloudConstPtr |
| using | Ptr = shared_ptr< SampleConsensusModelEllipse3D< PointT > > |
| using | ConstPtr = shared_ptr< const SampleConsensusModelEllipse3D< PointT > > |
|
| |
| using | PointCloud = pcl::PointCloud< PointT > |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | SearchPtr = typename pcl::search::Search< PointT >::Ptr |
| using | Ptr = shared_ptr< SampleConsensusModel< PointT > > |
| using | ConstPtr = shared_ptr< const SampleConsensusModel< PointT > > |
Публичные функции-члены | |
| SampleConsensusModelEllipse3D (const PointCloudConstPtr &cloud, bool random=false) | |
| Конструктор для базового SampleConsensusModelEllipse3D. More... |
|
| SampleConsensusModelEllipse3D (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false) | |
| Конструктор для базового SampleConsensusModelEllipse3D. More... |
|
| ~SampleConsensusModelEllipse3D () override=default | |
| Пустой деструктор. More... |
|
| SampleConsensusModelEllipse3D (const SampleConsensusModelEllipse3D &source) | |
| Конструктор копирования. More... |
|
| SampleConsensusModelEllipse3D & | operator= (const SampleConsensusModelEllipse3D &source) |
| Конструктор копирования. More... |
|
| bool | computeModelCoefficients (const Indices &samples, Eigen::VectorXf &model_coefficients) const override |
| Проверить, могут ли заданные индексные образцы образовать допустимую 3D-модель эллипса, вычислить коэффициенты модели из этих образцов и сохранить их в model_coefficients. More... |
|
| void | getDistancesToModel (const Eigen::VectorXf &model_coefficients, std::vector< double > &distances) const override |
| Вычислить все расстояния от данных облака до заданной 3D-модели эллипса. More... |
|
| void | selectWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold, Indices &inliers) override |
| Вычислить все расстояния от данных облака до заданной 3D-модели эллипса. More... |
|
| std::size_t | countWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold) const override |
| Подсчитать все точки, которые соответствуют заданным коэффициентам модели как внутренние. More... |
|
| void | optimizeModelCoefficients (const Indices &inliers, const Eigen::VectorXf &model_coefficients, Eigen::VectorXf &optimized_coefficients) const override |
| Пересчитать коэффициенты 3D-эллипса, используя заданный набор внутренних точек, и вернуть их пользователю. More... |
|
| void | projectPoints (const Indices &inliers, const Eigen::VectorXf &model_coefficients, PointCloud &projected_points, bool copy_data_fields=true) const override |
| Создать новое облако точек с внутренними точками, спроецированными на 3D-модель эллипса. More... |
|
| bool | doSamplesVerifyModel (const std::set< index_t > &indices, const Eigen::VectorXf &model_coefficients, const double threshold) const override |
| Проверить, подтверждает ли подмножество индексов заданные коэффициенты модели 3D-эллипса. More... |
|
| pcl::SacModel | getModelType () const override |
| Возвращает уникальный идентификатор для этой модели (SACMODEL_ELLIPSE3D). More... |
|
|
| |
| 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 |
| Проверка валидности модели с учетом ограничений пользователя. Подробнее... |
|
| 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 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_ |
| Пользовательская функция, которая принимает коэффициенты модели и возвращает значение, указывающее, является ли модель приемлемой. Подробнее... |
|
|
| |
| static const unsigned int | max_sample_checks_ = 1000 |
| Максимальное количество проб, которые нужно выполнить, прежде чем получить подходящую. Подробнее... |
|
Подробное описание
шаблон<typename PointT>
класс pcl::SampleConsensusModelEllipse3D< PointT >
SampleConsensusModelEllipse3D определяет модель для сегментации эллипсов в 3D пространстве.
Коэффициенты модели определяются как:
- center.x : координата X центра эллипса
- center.y : координата Y центра эллипса
- center.z : координата Z центра эллипса
- semi_axis.u : длина полуоси-мажора вдоль локальной оси u эллипса
- semi_axis.v : длина полуоси-минора вдоль локальной оси v эллипса
- normal.x : координата X направления нормали
- normal.y : координата Y направления нормали
- normal.z : координата Z направления нормали
- u.x : координата X локальной оси u эллипса
- u.y : координата Y локальной оси u эллипса
- u.z : координата Z локальной оси u эллипса
Дополнительную информацию можно найти в статье: "Semi-autonomous Prosthesis Control Using Minimal Depth Information and Vibrotactile Feedback", Miguel N. Castro & Strahinja Dosen. IEEE Transactions on Human-Machine Systems [под рецензией]. arXiv:2210.00541. (@ github.com/mnobrecastro/pcl-ellipse-fitting)
Определение в строке 41 файла sac_model_ellipse3d.h.
Документация по типу члена
ConstPtr
| используя pcl::SampleConsensusModelEllipse3D< PointT >::ConstPtr = shared_ptr<const SampleConsensusModelEllipse3D<PointT> > |
Определение в строке 55 файла sac_model_ellipse3d.h.
PointCloud
| используя pcl::SampleConsensusModelEllipse3D< PointT >::PointCloud = typename SampleConsensusModel<PointT>::PointCloud |
Определение в строке 50 файла sac_model_ellipse3d.h.
PointCloudConstPtr
| используя pcl::SampleConsensusModelEllipse3D< PointT >::PointCloudConstPtr = typename SampleConsensusModel<PointT>::PointCloudConstPtr |
Определение в строке 52 файла sac_model_ellipse3d.h.
PointCloudPtr
| используя pcl::SampleConsensusModelEllipse3D< PointT >::PointCloudPtr = typename SampleConsensusModel<PointT>::PointCloudPtr |
Определение в строке 51 файла sac_model_ellipse3d.h.
Ptr
| используя pcl::SampleConsensusModelEllipse3D< PointT >::Ptr = shared_ptr<SampleConsensusModelEllipse3D<PointT> > |
Определение в строке 54 файла sac_model_ellipse3d.h.
Конструктор & Деструктор
SampleConsensusModelEllipse3D() [1/3]
| inline |
Конструктор для базового класса SampleConsensusModelEllipse3D.
- Параметры
-
[in] облако входное облако точек [in] случайный если true, устанавливает генератор случайных чисел по текущему времени, иначе устанавливает значение 12345 (по умолчанию: false)
Определение в строке 61 файла sac_model_ellipse3d.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
SampleConsensusModelEllipse3D() [2/3]
| inline |
Конструктор для базового класса SampleConsensusModelEllipse3D.
- Параметры
-
[in] облако входное облако точек [in] индексы вектор индексов точек, используемых из облако [in] случайный если true, устанавливает генератор случайных чисел по текущему времени, иначе устанавливает значение 12345 (по умолчанию: false)
Определение в строке 74 файла sac_model_ellipse3d.h.
Ссылки на pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
~SampleConsensusModelEllipse3D()
| overridedefault |
Пустой деструктор.
SampleConsensusModelEllipse3D() [3/3]
| inline |
Копирующий конструктор.
- Параметры
-
[in] источник модель для копирования в эту модель
Определение в строке 90 файла sac_model_ellipse3d.h.
Функция-член документации
computeModelCoefficients()
| overridevirtual |
Проверяет, могут ли данные индексы образцов сформировать корректную 3D-модель эллипса, вычисляет коэффициенты модели из этих образцов и сохраняет их в коэффициенты_модели.
Коэффициенты эллипса: x, y, R.
- Параметры
-
[in] выборка индексы точек, которые являются потенциально подходящими для создания корректной модели [out] коэффициенты_модели результирующие коэффициенты модели
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 52 файла sac_model_ellipse3d.hpp.
countWithinDistance()
| overridevirtual |
Подсчитывает все точки, которые соответствуют заданным коэффициентам модели, как инлайнеры.
- Parameters
-
[in] model_coefficients коэффициенты модели, для которой требуется вычислить расстояния [in] threshold максимально допустимый порог расстояния для определения инлайнеров от аутлайнеров
- Returns
- результирующее количество инлайнеров
Реализация pcl::SampleConsensusModel< PointT >.
Определение в строке 371 файла sac_model_ellipse3d.hpp.
doSamplesVerifyModel()
| overridevirtual |
Проверка, соответствует ли подмножество индексов заданным коэффициентам эллипсоидальной модели 3D.
- Parameters
-
[in] indices индексы данных, которые необходимо проверить относительно модели 3D эллипса [in] model_coefficients коэффициенты модели 3D эллипса [in] threshold максимально допустимый порог расстояния для определения инлайнеров от аутлайнеров
Реализация pcl::SampleConsensusModel< PointT >.
Определение в строке 632 файла sac_model_ellipse3d.hpp.
getDistancesToModel()
| overridevirtual |
Вычисление всех расстояний от данных облака до заданной 3D модели эллипса.
- Parameters
-
[in] model_coefficients коэффициенты 3D модели эллипса, для которых требуется вычислить расстояния [out] distances результирующие вычисленные расстояния
Реализация pcl::SampleConsensusModel< PointT >.
Определение в строке 248 файла sac_model_ellipse3d.hpp.
getModelType()
| inlineoverridevirtual |
Возвращает уникальный идентификатор для этой модели (SACMODEL_ELLIPSE3D).
Реализация pcl::SampleConsensusModel< PointT >.
Определение в строке 179 файла sac_model_ellipse3d.h.
Ссылки на pcl::SACMODEL_ELLIPSE3D.
isModelValid()
| overrideprotectedvirtual |
Проверка валидности модели с учетом пользовательских ограничений.
- Parameters
-
[in] model_coefficients набор коэффициентов модели
Реализация pcl::SampleConsensusModel< PointT >.
Определение в строке 690 файла sac_model_ellipse3d.hpp.
isSampleGood()
| overrideprotectedvirtual |
Проверка, является ли выборка индексов подходящей.
- Parameters
-
[in] samples результирующие индексы выборки
Реализация pcl::SampleConsensusModel< PointT >.
Определение в строке 24 файла sac_model_ellipse3d.hpp.
operator=()
| inline |
Копирование конструктор.
- Параметры
-
[in] source модель для копирования в эту
Определение в строке 101 файла sac_model_ellipse3d.h.
optimizeModelCoefficients()
| overridevirtual |
Пересчёт коэффициентов эллипса 3D с использованием заданного набора инлайнеров и возвращение их пользователю.
- Примечание
- : это коэффициенты модели эллипса 3D после уточнения (например, после SVD)
- Параметры
-
[in] inliers данные инлайнеры, найденные как поддерживающие модель [in] model_coefficients начальная оценка для оптимизации [out] optimized_coefficients полученные пересчитанные коэффициенты после нелинейной оптимизации
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 426 файла sac_model_ellipse3d.hpp.
projectPoints()
| overridevirtual |
Создаёт новую точку облака с инлайнерами, спроецированными на модель эллипса 3D.
- Параметры
-
[in] inliers инлайнеры данных, которые мы хотим спроецировать на модель эллипса 3D [in] model_coefficients коэффициенты модели эллипса 3D [out] projected_points результирующие спроецированные точки [in] copy_data_fields установить в true, если нам нужно скопировать другие поля данных
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 486 файла sac_model_ellipse3d.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 |
Вычисление всех расстояний от данных облака до заданной модели эллипса 3D.
- Параметры
-
[in] model_coefficients коэффициенты модели эллипса 3D, до которых нам нужно вычислить расстояния [in] threshold максимально допустимое пороговое значение расстояния для определения инлайнеров от аутлайнеров [out] inliers результирующие инлайнеры модели
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 310 файла sac_model_ellipse3d.hpp.
Документация для этого класса была сгенерирована из следующих файлов:
- pcl/sample_consensus/sac_model_ellipse3d.h
- pcl/sample_consensus/impl/sac_model_ellipse3d.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_ellipse3_d.html