Spec-Zone.ru › PointCloudLibrary

SampleConsensusModelNormalSphere задаёт модель для сегментации сфер в 3D с использованием дополнительных ограничений на нормали поверхности. Подробнее...

#include <pcl/sample_consensus/sac_model_normal_sphere.h>

Inheritance graph
[обозначения]
Collaboration graph
[обозначения]

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

using PointCloud = typename SampleConsensusModel< PointT >::PointCloud
using PointCloudPtr = typename SampleConsensusModel< PointT >::PointCloudPtr
using PointCloudConstPtr = typename SampleConsensusModel< PointT >::PointCloudConstPtr
using PointCloudNPtr = typename SampleConsensusModelFromNormals< PointT, PointNT >::PointCloudNPtr
using PointCloudNConstPtr = typename SampleConsensusModelFromNormals< PointT, PointNT >::PointCloudNConstPtr
using Ptr = shared_ptr< SampleConsensusModelNormalSphere< PointT, PointNT > >
using ConstPtr = shared_ptr< const SampleConsensusModelNormalSphere< PointT, PointNT > >
- Общедоступные типы, унаследованные от pcl::SampleConsensusModelSphere< PointT >
using PointCloud = typename SampleConsensusModel< PointT >::PointCloud
using PointCloudPtr = typename SampleConsensusModel< PointT >::PointCloudPtr
using PointCloudConstPtr = typename SampleConsensusModel< PointT >::PointCloudConstPtr
using Ptr = shared_ptr< SampleConsensusModelSphere< PointT > >
using ConstPtr = shared_ptr< const SampleConsensusModelSphere< 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 > >
- Общедоступные типы, унаследованные от pcl::SampleConsensusModelFromNormals< PointT, PointNT >
using PointCloudNConstPtr = typename pcl::PointCloud< PointNT >::ConstPtr
using PointCloudNPtr = typename pcl::PointCloud< PointNT >::Ptr
using Ptr = shared_ptr< SampleConsensusModelFromNormals< PointT, PointNT > >
using ConstPtr = shared_ptr< const SampleConsensusModelFromNormals< PointT, PointNT > >

Открытые функции-члены

SampleConsensusModelNormalSphere (const PointCloudConstPtr &cloud, bool random=false)
Конструктор базового класса SampleConsensusModelNormalSphere. Подробнее...
SampleConsensusModelNormalSphere (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Конструктор базового класса SampleConsensusModelNormalSphere. Подробнее...
~SampleConsensusModelNormalSphere () override=default
Пустой деструктор. Подробнее...
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 getDistancesToModel (const Eigen::VectorXf &model_coefficients, std::vector< double > &distances) const override
Вычислить расстояния от всех точек облака до заданной модели сферы. Подробнее...
pcl::SacModel getModelType () const override
Возвращает уникальный идентификатор этой модели (SACMODEL_NORMAL_SPHERE). Подробнее...
- Открытые функции-члены, унаследованные от pcl::SampleConsensusModelSphere< PointT >
SampleConsensusModelSphere (const PointCloudConstPtr &cloud, bool random=false)
Конструктор базового класса SampleConsensusModelSphere. Подробнее...
SampleConsensusModelSphere (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Конструктор базового класса SampleConsensusModelSphere. Подробнее...
~SampleConsensusModelSphere () override=default
Пустой деструктор. Подробнее...
SampleConsensusModelSphere (const SampleConsensusModelSphere &source)
Конструктор копирования. Подробнее...
SampleConsensusModelSphere & operator= (const SampleConsensusModelSphere &source)
Конструктор копирования. Подробнее...
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_SPHERE). Подробнее...
- Общедоступные функции-члены, унаследованные от 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
Вычислить дисперсию ошибок модели на основе внутренне оценённого вектора расстояний. Подробнее...
- Унаследованные общедоступные функции-члены из pcl::SampleConsensusModelFromNormals< PointT, PointNT >
SampleConsensusModelFromNormals ()
Пустой конструктор базового класса SampleConsensusModelFromNormals. Подробнее...
virtual ~SampleConsensusModelFromNormals ()=default
Деструктор. Подробнее...
void setNormalDistanceWeight (const double w)
Задать вес углового расстояния нормали. Подробнее...
double getNormalDistanceWeight () const
Получить вес углового расстояния нормали. Подробнее...
void setInputNormals (const PointCloudNConstPtr &normals)
Предоставить указатель на входной набор данных, содержащий нормали точек набора XYZ. Подробнее...
PointCloudNConstPtr getInputNormals () const
Получить указатель на нормали входного облака точек XYZ. Подробнее...

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

- Защищённые функции-члены, унаследованные от pcl::SampleConsensusModelSphere< PointT >
bool isModelValid (const Eigen::VectorXf &model_coefficients) const override
Проверяет, является ли модель допустимой с учётом ограничений пользователя. Подробнее...
bool isSampleGood (const Indices &samples) const override
Проверяет, даёт ли выборка индексов корректную выборку индексов точек. Подробнее...
std::size_t countWithinDistanceStandard (const Eigen::VectorXf &model_coefficients, const double threshold, std::size_t i=0) const
В этой реализации не используются инструкции SIMD. Подробнее...
- Защищённые функции-члены, унаследованные от 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::SampleConsensusModelFromNormals< PointT, PointNT >
double normal_distance_weight_ {0.0}
Относительный вес (от 0 до 1), присваиваемый угловому расстоянию (от 0 до pi/2) между нормалями точек и нормалью плоскости. Подробнее...
PointCloudNConstPtr normals_
Указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее...
- Статические защищённые атрибуты, унаследованные от pcl::SampleConsensusModel< PointT >
static const unsigned int max_sample_checks_ = 1000
Максимальное количество проверяемых выборок до получения подходящей. Подробнее...

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

template<typename PointT, typename PointNT>
class pcl::SampleConsensusModelNormalSphere< PointT, PointNT >

SampleConsensusModelNormalSphere задаёт модель для сегментации трёхмерной сферы с использованием дополнительных ограничений на нормали поверхности.

По сути, это означает, что при проверке принадлежности точек к выбросам учитывается не только критерий «расстояние до модели», но и дополнительное «максимальное угловое отклонение» между нормалью сферы и нормалями точек-кандидатов.

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

  • center.x : координата X центра сферы
  • center.y : координата Y центра сферы
  • center.z : координата Z центра сферы
  • radius : радиус сферы
Автор
Stefan Schrandt

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

Документация псевдонимов типов-членов

ConstPtr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::ConstPtr = shared_ptr<const SampleConsensusModelNormalSphere<PointT, PointNT> >

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

PointCloud

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::PointCloud = typename SampleConsensusModel<PointT>::PointCloud

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

PointCloudConstPtr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::PointCloudConstPtr = typename SampleConsensusModel<PointT>::PointCloudConstPtr

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

PointCloudNConstPtr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::PointCloudNConstPtr = typename SampleConsensusModelFromNormals<PointT, PointNT>::PointCloudNConstPtr

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

PointCloudNPtr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::PointCloudNPtr = typename SampleConsensusModelFromNormals<PointT, PointNT>::PointCloudNPtr

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

PointCloudPtr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::PointCloudPtr = typename SampleConsensusModel<PointT>::PointCloudPtr

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

Ptr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::Ptr = shared_ptr<SampleConsensusModelNormalSphere<PointT, PointNT> >

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

Документация конструктора и деструктора

SampleConsensusModelNormalSphere() [1/2]

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

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

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

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

Ссылки: pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.

SampleConsensusModelNormalSphere() [2/2]

template<typename PointT , typename PointNT >
pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::SampleConsensusModelNormalSphere ( const PointCloudConstPtr & cloud,
const Indices & indices,
bool random = false
)
inline

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

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

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

Ссылки: pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.

~SampleConsensusModelNormalSphere()

template<typename PointT , typename PointNT >
pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::~SampleConsensusModelNormalSphere ( )
overridedefault

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

Документация функций-членов

countWithinDistance()

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

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

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

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

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

Ссылки: pcl::getAngle3D() и M_PI.

getDistancesToModel()

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

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

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

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

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

Ссылки: pcl::getAngle3D() и M_PI.

getModelType()

template<typename PointT , typename PointNT >
pcl::SacModel pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::getModelType ( ) const
inlineoverridevirtual

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

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

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

Ссылки: pcl::SACMODEL_NORMAL_SPHERE.

selectWithinDistance()

template<typename PointT , typename PointNT >
void pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::selectWithinDistance ( const Eigen::VectorXf & model_coefficients,
const double threshold,
Indices & inliers
)
overridevirtual

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

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

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

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

Ссылки на pcl::geometry::distance(), pcl::getAngle3D() и M_PI.


Документация этого класса создана на основе следующих файлов:
  • pcl/sample_consensus/sac_model_normal_sphere.h
  • pcl/sample_consensus/impl/sac_model_normal_sphere.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_normal_sphere.html

Spec-Zone.ru

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