Spec-Zone.ru › PointCloudLibrary

SampleConsensusModelEllipse3D определяет модель для сегментации эллипсов в 3D. Подробнее...

#include <pcl/sample_consensus/sac_model_ellipse3d.h>

Inheritance graph
[легенда]
Collaboration graph
[легенда]

Общедоступные типы

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 > >
- Общедоступные типы, унаследованные от pcl::SampleConsensusModel< 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...
- Публичные функции-члены, унаследованные от pcl::SampleConsensusModel< PointT >
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
Проверка, является ли выборка индексов хорошей выборкой индексов точек. Подробнее...
- Защищенные члены-функции, унаследованные от pcl::SampleConsensusModel< PointT >
SampleConsensusModel (bool random=false)
Пустой конструктор для базового класса SampleConsensusModel. Подробнее...
void drawIndexSample (Indices &sample)
Заполняет массив образцов случайными образцами из вектора indices_. Подробнее...
void drawIndexSampleRadius (Indices &sample)
Заполняет массив образцов одним случайным образцом из вектора indices_ и другими случайными образцами, которые находятся ближе, чем samples_radius_. Подробнее...
int rnd ()
Генератор случайных чисел на основе Boost. Подробнее...

Дополнительные унаследованные члены

- Защищенные атрибуты, унаследованные от pcl::SampleConsensusModel< PointT >
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_
Пользовательская функция, которая принимает коэффициенты модели и возвращает значение, указывающее, является ли модель приемлемой. Подробнее...
- Статические защищённые атрибуты, унаследованные от pcl::SampleConsensusModel< PointT >
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)

Автор
Miguel Nobre Castro (mnobr.nosp@m.ecas.nosp@m.tro@g.nosp@m.mail.nosp@m..com)

Определение в строке 41 файла sac_model_ellipse3d.h.

Документация по типу члена

ConstPtr

шаблон<typename PointT >
используя pcl::SampleConsensusModelEllipse3D< PointT >::ConstPtr = shared_ptr<const SampleConsensusModelEllipse3D<PointT> >

Определение в строке 55 файла sac_model_ellipse3d.h.

PointCloud

шаблон<typename PointT >
используя pcl::SampleConsensusModelEllipse3D< PointT >::PointCloud = typename SampleConsensusModel<PointT>::PointCloud

Определение в строке 50 файла sac_model_ellipse3d.h.

PointCloudConstPtr

шаблон<typename PointT >
используя pcl::SampleConsensusModelEllipse3D< PointT >::PointCloudConstPtr = typename SampleConsensusModel<PointT>::PointCloudConstPtr

Определение в строке 52 файла sac_model_ellipse3d.h.

PointCloudPtr

шаблон<typename PointT >
используя pcl::SampleConsensusModelEllipse3D< PointT >::PointCloudPtr = typename SampleConsensusModel<PointT>::PointCloudPtr

Определение в строке 51 файла sac_model_ellipse3d.h.

Ptr

шаблон<typename PointT >
используя pcl::SampleConsensusModelEllipse3D< PointT >::Ptr = shared_ptr<SampleConsensusModelEllipse3D<PointT> >

Определение в строке 54 файла sac_model_ellipse3d.h.

Конструктор & Деструктор

SampleConsensusModelEllipse3D() [1/3]

template<typename PointT >
pcl::SampleConsensusModelEllipse3D< PointT >::SampleConsensusModelEllipse3D ( const PointCloudConstPtr & облако,
bool случайный = false
)
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]

template<typename PointT >
pcl::SampleConsensusModelEllipse3D< PointT >::SampleConsensusModelEllipse3D ( const PointCloudConstPtr & облако,
const Indices & индексы,
bool случайный = false
)
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()

template<typename PointT >
pcl::SampleConsensusModelEllipse3D< PointT >::~SampleConsensusModelEllipse3D ( )
overridedefault

Пустой деструктор.

SampleConsensusModelEllipse3D() [3/3]

template<typename PointT >
pcl::SampleConsensusModelEllipse3D< PointT >::SampleConsensusModelEllipse3D ( const SampleConsensusModelEllipse3D< PointT > & источник )
inline

Копирующий конструктор.

Параметры
[in] источник модель для копирования в эту модель

Определение в строке 90 файла sac_model_ellipse3d.h.

Ссылки на pcl::SampleConsensusModel< PointT >::model_name_.

Функция-член документации

computeModelCoefficients()

template<typename PointT >
bool pcl::SampleConsensusModelEllipse3D< PointT >::computeModelCoefficients ( const Indices & выборка,
Eigen::VectorXf & коэффициенты_модели
) const
overridevirtual

Проверяет, могут ли данные индексы образцов сформировать корректную 3D-модель эллипса, вычисляет коэффициенты модели из этих образцов и сохраняет их в коэффициенты_модели.

Коэффициенты эллипса: x, y, R.

Параметры
[in] выборка индексы точек, которые являются потенциально подходящими для создания корректной модели
[out] коэффициенты_модели результирующие коэффициенты модели

Реализует pcl::SampleConsensusModel< PointT >.

Определение в строке 52 файла sac_model_ellipse3d.hpp.

countWithinDistance()

template<typename PointT >
std::size_t pcl::SampleConsensusModelEllipse3D< PointT >::countWithinDistance ( const Eigen::VectorXf & model_coefficients,
const double threshold
) const
overridevirtual

Подсчитывает все точки, которые соответствуют заданным коэффициентам модели, как инлайнеры.

Parameters
[in] model_coefficients коэффициенты модели, для которой требуется вычислить расстояния
[in] threshold максимально допустимый порог расстояния для определения инлайнеров от аутлайнеров
Returns
результирующее количество инлайнеров

Реализация pcl::SampleConsensusModel< PointT >.

Определение в строке 371 файла sac_model_ellipse3d.hpp.

doSamplesVerifyModel()

template<typename PointT >
bool pcl::SampleConsensusModelEllipse3D< PointT >::doSamplesVerifyModel ( const std::set< index_t > & indices,
const Eigen::VectorXf & model_coefficients,
const double threshold
) const
overridevirtual

Проверка, соответствует ли подмножество индексов заданным коэффициентам эллипсоидальной модели 3D.

Parameters
[in] indices индексы данных, которые необходимо проверить относительно модели 3D эллипса
[in] model_coefficients коэффициенты модели 3D эллипса
[in] threshold максимально допустимый порог расстояния для определения инлайнеров от аутлайнеров

Реализация pcl::SampleConsensusModel< PointT >.

Определение в строке 632 файла sac_model_ellipse3d.hpp.

getDistancesToModel()

template<typename PointT >
void pcl::SampleConsensusModelEllipse3D< PointT >::getDistancesToModel ( const Eigen::VectorXf & model_coefficients,
std::vector< double > & distances
) const
overridevirtual

Вычисление всех расстояний от данных облака до заданной 3D модели эллипса.

Parameters
[in] model_coefficients коэффициенты 3D модели эллипса, для которых требуется вычислить расстояния
[out] distances результирующие вычисленные расстояния

Реализация pcl::SampleConsensusModel< PointT >.

Определение в строке 248 файла sac_model_ellipse3d.hpp.

getModelType()

template<typename PointT >
pcl::SacModel pcl::SampleConsensusModelEllipse3D< PointT >::getModelType ( ) const
inlineoverridevirtual

Возвращает уникальный идентификатор для этой модели (SACMODEL_ELLIPSE3D).

Реализация pcl::SampleConsensusModel< PointT >.

Определение в строке 179 файла sac_model_ellipse3d.h.

Ссылки на pcl::SACMODEL_ELLIPSE3D.

isModelValid()

template<typename PointT >
bool pcl::SampleConsensusModelEllipse3D< PointT >::isModelValid ( const Eigen::VectorXf & model_coefficients ) const
overrideprotectedvirtual

Проверка валидности модели с учетом пользовательских ограничений.

Parameters
[in] model_coefficients набор коэффициентов модели

Реализация pcl::SampleConsensusModel< PointT >.

Определение в строке 690 файла sac_model_ellipse3d.hpp.

isSampleGood()

template<typename PointT >
bool pcl::SampleConsensusModelEllipse3D< PointT >::isSampleGood ( const Indices & samples ) const
overrideprotectedvirtual

Проверка, является ли выборка индексов подходящей.

Parameters
[in] samples результирующие индексы выборки

Реализация pcl::SampleConsensusModel< PointT >.

Определение в строке 24 файла sac_model_ellipse3d.hpp.

operator=()

template<typename PointT >
SampleConsensusModelEllipse3D& pcl::SampleConsensusModelEllipse3D< PointT >::operator= ( const SampleConsensusModelEllipse3D< PointT > & source )
inline

Копирование конструктор.

Параметры
[in] source модель для копирования в эту

Определение в строке 101 файла sac_model_ellipse3d.h.

optimizeModelCoefficients()

template<typename PointT >
void pcl::SampleConsensusModelEllipse3D< PointT >::optimizeModelCoefficients ( const Indices & inliers,
const Eigen::VectorXf & model_coefficients,
Eigen::VectorXf & optimized_coefficients
) const
overridevirtual

Пересчёт коэффициентов эллипса 3D с использованием заданного набора инлайнеров и возвращение их пользователю.

Примечание
: это коэффициенты модели эллипса 3D после уточнения (например, после SVD)
Параметры
[in] inliers данные инлайнеры, найденные как поддерживающие модель
[in] model_coefficients начальная оценка для оптимизации
[out] optimized_coefficients полученные пересчитанные коэффициенты после нелинейной оптимизации

Реализует pcl::SampleConsensusModel< PointT >.

Определение в строке 426 файла sac_model_ellipse3d.hpp.

projectPoints()

template<typename PointT >
void pcl::SampleConsensusModelEllipse3D< PointT >::projectPoints ( const Indices & inliers,
const Eigen::VectorXf & model_coefficients,
PointCloud & projected_points,
bool copy_data_fields = true
) const
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()

template<typename PointT >
void pcl::SampleConsensusModelEllipse3D< PointT >::selectWithinDistance ( const Eigen::VectorXf & model_coefficients,
const double threshold,
Indices & inliers
)
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API