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. Подробнее...
SampleConsensusModelEllipse3D (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Конструктор базового класса SampleConsensusModelEllipse3D. Подробнее...
~SampleConsensusModelEllipse3D () override=default
Пустой деструктор. Подробнее...
SampleConsensusModelEllipse3D (const SampleConsensusModelEllipse3D &source)
Конструктор копирования. Подробнее...
SampleConsensusModelEllipse3D & operator= (const SampleConsensusModelEllipse3D &source)
Конструктор копирования. Подробнее...
bool computeModelCoefficients (const Indices &samples, Eigen::VectorXf &model_coefficients) const override
Проверяет, могут ли заданные индексы выборки образовать допустимую модель 3D-эллипса, вычисляет по этим выборкам коэффициенты модели и сохраняет их в model_coefficients. Подробнее...
void getDistancesToModel (const Eigen::VectorXf &model_coefficients, std::vector< double > &distances) const override
Вычисляет все расстояния от данных облака до заданной модели 3D-эллипса. Подробнее...
void selectWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold, Indices &inliers) override
Вычисляет все расстояния от данных облака до заданной модели 3D-эллипса. Подробнее...
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
Повторно вычисляет коэффициенты 3D-эллипса с использованием заданного набора внутренних точек и возвращает их пользователю. Подробнее...
void projectPoints (const Indices &inliers, const Eigen::VectorXf &model_coefficients, PointCloud &projected_points, bool copy_data_fields=true) const override
Создает новое облако точек, проецируя внутренние точки на модель 3D-эллипса. Подробнее...
bool doSamplesVerifyModel (const std::set< index_t > &indices, const Eigen::VectorXf &model_coefficients, const double threshold) const override
Проверяет, соответствует ли подмножество индексов заданным коэффициентам модели 3D-эллипса. Подробнее...
pcl::SacModel getModelType () const override
Возвращает уникальный идентификатор этой модели (SACMODEL_ELLIPSE3D). Подробнее...
- Общедоступные функции-члены, унаследованные от 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 на массив данных облака точек. Подробнее...
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
Максимальное количество проверяемых выборок, прежде чем будет найдена корректная. Подробнее...

Подробное описание

template<typename PointT>
class pcl::SampleConsensusModelEllipse3D< PointT >

SampleConsensusModelEllipse3D задаёт модель для сегментации трёхмерного эллипса.

Коэффициенты модели определяются следующим образом:

  • 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 эллипса

Дополнительные сведения см. в следующей статье: «Полуавтономное управление протезом с использованием минимальной информации о глубине и вибротактильной обратной связи», 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

template<typename PointT >
using pcl::SampleConsensusModelEllipse3D< PointT >::ConstPtr = shared_ptr<const SampleConsensusModelEllipse3D<PointT> >

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

PointCloud

template<typename PointT >
using pcl::SampleConsensusModelEllipse3D< PointT >::PointCloud = typename SampleConsensusModel<PointT>::PointCloud

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

PointCloudConstPtr

template<typename PointT >
using pcl::SampleConsensusModelEllipse3D< PointT >::PointCloudConstPtr = typename SampleConsensusModel<PointT>::PointCloudConstPtr

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

PointCloudPtr

template<typename PointT >
using pcl::SampleConsensusModelEllipse3D< PointT >::PointCloudPtr = typename SampleConsensusModel<PointT>::PointCloudPtr

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

Ptr

template<typename PointT >
using pcl::SampleConsensusModelEllipse3D< PointT >::Ptr = shared_ptr<SampleConsensusModelEllipse3D<PointT> >

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

Описание конструкторов и деструктора

SampleConsensusModelEllipse3D() [1/3]

template<typename PointT >
pcl::SampleConsensusModelEllipse3D< PointT >::SampleConsensusModelEllipse3D ( const PointCloudConstPtr & cloud,
bool random = false
)
inline

Конструктор базового класса SampleConsensusModelEllipse3D.

Параметры
[in] cloud входной набор данных облака точек
[in] random если true, начальное значение генератора случайных чисел устанавливается равным текущему времени, иначе — 12345 (по умолчанию: false)

Определение в строке 62 файла 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 & cloud,
const Indices & indices,
bool random = false
)
inline

Конструктор базовой модели SampleConsensusModelEllipse3D.

Параметры
[in] cloud входной набор данных облака точек
[in] indices вектор индексов точек из cloud, которые следует использовать
[in] random если значение равно true, начальное значение генератора случайных чисел устанавливается равным текущему времени; иначе — 12345 (по умолчанию: false)

Определение в строке 75 файла 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 > & source )
inline

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

Параметры
[in] source модель, копируемая в текущий объект

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

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

Описание функций-членов

computeModelCoefficients()

template<typename PointT >
bool pcl::SampleConsensusModelEllipse3D< PointT >::computeModelCoefficients ( const Indices & samples,
Eigen::VectorXf & model_coefficients
) const
overridevirtual

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

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

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

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

Определение в строке 51 файла 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

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

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

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

Определение в строке 374 файла 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-эллипса.

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

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

Определение в строке 634 файла 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-эллипса.

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

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

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

getModelType()

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

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

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

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

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

isModelValid()

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

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

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

Переопределяет метод из pcl::SampleConsensusModel< PointT >.

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

isSampleGood()

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

Проверяет, образует ли выборка индексов корректную выборку индексов точек.

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

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

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

operator=()

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

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

Параметры
[in] source модель, копируемая в текущий объект

Определение в строке 102 файла 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 >.

Определение в строке 429 файла 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 >.

Определение в строке 488 файла 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 >.

Определение в строке 309 файла 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