Spec-Zone.ru › PointCloudLibrary

SampleConsensusModel представляет базовый класс модели. Подробнее...

#include <pcl/sample_consensus/sac_model.h>

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

Открытые типы

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 > >

Открытые методы

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 bool computeModelCoefficients (const Indices &samples, Eigen::VectorXf &model_coefficients) const =0
Проверить, могут ли заданные выборки индексов образовать допустимую модель, вычислить коэффициенты модели по этим выборкам и сохранить их в model_coefficients. Подробнее...
virtual void optimizeModelCoefficients (const Indices &inliers, const Eigen::VectorXf &model_coefficients, Eigen::VectorXf &optimized_coefficients) const =0
Повторно вычислить коэффициенты модели с использованием заданного набора внутренних точек и вернуть их пользователю. Подробнее...
virtual void getDistancesToModel (const Eigen::VectorXf &model_coefficients, std::vector< double > &distances) const =0
Вычислить расстояния от всех точек облака данных до заданной модели. Подробнее...
virtual void selectWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold, Indices &inliers)=0
Выбрать все точки, соответствующие заданным коэффициентам модели, в качестве внутренних точек. Подробнее...
virtual std::size_t countWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold) const =0
Подсчитать все точки, соответствующие заданным коэффициентам модели, в качестве внутренних точек. Подробнее...
virtual void projectPoints (const Indices &inliers, const Eigen::VectorXf &model_coefficients, PointCloud &projected_points, bool copy_data_fields=true) const =0
Создать новое облако точек, спроецировав на модель внутренние точки. Подробнее...
virtual bool doSamplesVerifyModel (const std::set< index_t > &indices, const Eigen::VectorXf &model_coefficients, const double threshold) const =0
Проверить, соответствует ли подмножество индексов заданному набору коэффициентов модели. Подробнее...
virtual void setInputCloud (const PointCloudConstPtr &cloud)
Передать указатель на входной набор данных. Подробнее...
PointCloudConstPtr getInputCloud () const
Получить указатель на входной набор данных облака точек. Подробнее...
void setIndices (const IndicesPtr &indices)
Передать указатель на вектор индексов, представляющий входные данные. Подробнее...
void setIndices (const Indices &indices)
Передать вектор индексов, представляющий входные данные. Подробнее...
IndicesPtr getIndices () const
Получить указатель на используемый вектор индексов. Подробнее...
virtual SacModel getModelType () const =0
Вернуть уникальный идентификатор каждого используемого типа модели. Подробнее...
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
Вычислить дисперсию ошибок модели по внутреннему вычисленному вектору расстояний. Подробнее...

Защищённые функции-члены

SampleConsensusModel (bool random=false)
Пустой конструктор базового класса SampleConsensusModel. Подробнее...
void drawIndexSample (Indices &sample)
Заполняет массив выборки случайными элементами из вектора indices_. Подробнее...
void drawIndexSampleRadius (Indices &sample)
Заполняет массив выборки одним случайным элементом из вектора indices_ и другими случайными элементами, находящимися на расстоянии меньше samples_radius_. Подробнее...
virtual bool isModelValid (const Eigen::VectorXf &model_coefficients) const
Проверяет, является ли модель допустимой с учётом заданных пользователем ограничений. Подробнее...
virtual bool isSampleGood (const Indices &samples) const =0
Проверяет, приводит ли выборка индексов к корректной выборке индексов точек. Подробнее...
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
Максимальное количество проверяемых выборок до получения подходящей. Подробнее...

Дружественные классы

class ProgressiveSampleConsensus< PointT >

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

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

SampleConsensusModel представляет базовый класс модели.

Все модели консенсуса по выборке должны наследовать этот класс.

Автор
Radu B. Rusu

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

Описание псевдонимов типов-членов

ConstPtr

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

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

PointCloud

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

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

PointCloudConstPtr

template<typename PointT >
using pcl::SampleConsensusModel< PointT >::PointCloudConstPtr = typename PointCloud::ConstPtr

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

PointCloudPtr

template<typename PointT >
using pcl::SampleConsensusModel< PointT >::PointCloudPtr = typename PointCloud::Ptr

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

Ptr

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

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

SearchPtr

template<typename PointT >
using pcl::SampleConsensusModel< PointT >::SearchPtr = typename pcl::search::Search<PointT>::Ptr

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

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

SampleConsensusModel() [1/3]

template<typename PointT >
pcl::SampleConsensusModel< PointT >::SampleConsensusModel ( bool random = false )
inlineprotected

Пустой конструктор базового класса SampleConsensusModel.

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

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

SampleConsensusModel() [2/3]

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

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

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

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

SampleConsensusModel() [3/3]

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

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

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

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

~SampleConsensusModel()

template<typename PointT >
virtual pcl::SampleConsensusModel< PointT >::~SampleConsensusModel ( )
virtualdefault

Деструктор базового класса SampleConsensusModel.

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

computeModelCoefficients()

template<typename PointT >
virtual bool pcl::SampleConsensusModel< PointT >::computeModelCoefficients ( const Indices & samples,
Eigen::VectorXf & model_coefficients
) const
pure virtual

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

Чисто виртуальная функция. Реализации этой функции должны быть потокобезопасными.

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

Реализовано в pcl::SampleConsensusModelTorus< PointT, PointNT >, pcl::SampleConsensusModelTorus< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelEllipse3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT > и pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >.

computeVariance() [1/2]

template<typename PointT >
double pcl::SampleConsensusModel< PointT >::computeVariance ( ) const
inline

Вычисляет дисперсию ошибок модели по внутренне оцененному вектору расстояний.

Сначала необходимо вычислить модель (или хотя бы вызвать selectWithinDistance).

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

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

computeVariance() [2/2]

template<typename PointT >
double pcl::SampleConsensusModel< PointT >::computeVariance ( const std::vector< double > & error_sqr_dists ) const
inline

Вычисляет дисперсию ошибок модели.

Параметры
[in] error_sqr_dists вектор, содержащий расстояния

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

countWithinDistance()

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

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

Чисто виртуальная функция. Реализации этой функции должны быть потокобезопасными.

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

Реализовано в pcl::SampleConsensusModelTorus< PointT, PointNT >, pcl::SampleConsensusModelTorus< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelPerpendicularPlane< PointT >, pcl::SampleConsensusModelParallelPlane< PointT >, pcl::SampleConsensusModelParallelLine< PointT >, pcl::SampleConsensusModelNormalSphere< PointT, PointNT >, pcl::SampleConsensusModelNormalPlane< PointT, PointNT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelEllipse3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB > и pcl::SampleConsensusModelRegistration2D< PointT >.

doSamplesVerifyModel()

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

Проверяет, соответствует ли подмножество индексов заданному набору коэффициентов модели.

Чисто виртуальная функция.

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

Реализовано в pcl::SampleConsensusModelTorus< PointT, PointNT >, pcl::SampleConsensusModelTorus< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelEllipse3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB > и pcl::SampleConsensusModelRegistration< PointT >.

drawIndexSample()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::drawIndexSample ( Indices & sample )
inlineprotected

Заполняет массив выборки случайными значениями из вектора indices_.

Параметры
[out] sample набор индексов target_ для анализа

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

Ссылки на pcl::SampleConsensusModel< PointT >::rnd() и pcl::SampleConsensusModel< PointT >::shuffled_indices_.

Используется в pcl::SampleConsensusModel< PointT >::getSamples().

drawIndexSampleRadius()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::drawIndexSampleRadius ( Indices & sample )
inlineprotected

Заполняет массив выборки одним случайным значением из вектора indices_ и другими случайными значениями, расстояние до которых меньше samples_radius_.

Параметры
[out] sample набор индексов target_ для анализа

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

Ссылки на pcl::SampleConsensusModel< PointT >::input_, pcl::SampleConsensusModel< PointT >::rnd(), pcl::SampleConsensusModel< PointT >::samples_radius_, pcl::SampleConsensusModel< PointT >::samples_radius_search_ и pcl::SampleConsensusModel< PointT >::shuffled_indices_.

Используется в pcl::SampleConsensusModel< PointT >::getSamples().

getClassName()

template<typename PointT >
const std::string& pcl::SampleConsensusModel< PointT >::getClassName ( ) const
inline

Возвращает строковое представление имени этого класса.

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

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

Используется в pcl::SampleConsensusModel< PointT >::isModelValid().

getDistancesToModel()

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

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

Чисто виртуальная функция.

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

Реализовано в pcl::SampleConsensusModelTorus< PointT, PointNT >, pcl::SampleConsensusModelTorus< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelPerpendicularPlane< PointT >, pcl::SampleConsensusModelParallelPlane< PointT >, pcl::SampleConsensusModelParallelLine< PointT >, pcl::SampleConsensusModelNormalSphere< PointT, PointNT >, pcl::SampleConsensusModelNormalPlane< PointT, PointNT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelEllipse3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB > и pcl::SampleConsensusModelRegistration2D< PointT >.

getIndices()

template<typename PointT >
IndicesPtr pcl::SampleConsensusModel< PointT >::getIndices ( ) const
inline

Возвращает указатель на используемый вектор индексов.

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

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

getInputCloud()

template<typename PointT >
PointCloudConstPtr pcl::SampleConsensusModel< PointT >::getInputCloud ( ) const
inline

Возвращает указатель на входной набор данных облака точек.

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

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

getModelSize()

template<typename PointT >
unsigned int pcl::SampleConsensusModel< PointT >::getModelSize ( ) const
inline

Возвращает число коэффициентов модели.

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

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

getModelType()

template<typename PointT >
virtual SacModel pcl::SampleConsensusModel< PointT >::getModelType ( ) const
pure virtual

Возвращает уникальный идентификатор для каждого используемого типа модели.

Реализовано в pcl::SampleConsensusModelTorus< PointT, PointNT >, pcl::SampleConsensusModelTorus< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelPerpendicularPlane< PointT >, pcl::SampleConsensusModelParallelPlane< PointT >, pcl::SampleConsensusModelParallelLine< PointT >, pcl::SampleConsensusModelNormalSphere< PointT, PointNT >, pcl::SampleConsensusModelNormalPlane< PointT, PointNT >, pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelEllipse3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT > и pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >.

getRadiusLimits()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::getRadiusLimits ( double & min_radius,
double & max_radius
) const
inline

Возвращает минимальное и максимальное допустимые значения радиуса модели, заданные пользователем.

Параметры
[out] min_radius полученное минимальное значение радиуса модели
[out] max_radius полученное максимальное значение радиуса модели

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

Ссылки: pcl::SampleConsensusModel< PointT >::radius_max_ и pcl::SampleConsensusModel< PointT >::radius_min_.

Используется в pcl::SACSegmentation< PointT >::initSACModel() и pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().

getSamples()

template<typename PointT >
virtual void pcl::SampleConsensusModel< PointT >::getSamples ( int & iterations,
Indices & samples
)
inlinevirtual

Получает набор случайных выборок данных и возвращает их в виде индексов точек.

Параметры
[out] iterations внутреннее число итераций, используемое методами SAC
[out] samples полученные выборки модели

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

Ссылки: pcl::SampleConsensusModel< PointT >::drawIndexSample(), pcl::SampleConsensusModel< PointT >::drawIndexSampleRadius(), pcl::SampleConsensusModel< PointT >::getSampleSize(), pcl::SampleConsensusModel< PointT >::indices_, pcl::SampleConsensusModel< PointT >::isSampleGood(), pcl::SampleConsensusModel< PointT >::max_sample_checks_ и pcl::SampleConsensusModel< PointT >::samples_radius_.

getSampleSize()

template<typename PointT >
unsigned int pcl::SampleConsensusModel< PointT >::getSampleSize ( ) const
inline

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

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

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

Используется в pcl::SampleConsensusModel< PointT >::getSamples().

getSamplesMaxDist()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::getSamplesMaxDist ( double & radius ) const
inline

Возвращает максимальное расстояние, допустимое при выборе случайных выборок.

Параметры
[out] radius максимальное расстояние (норма L2)

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

Ссылки: pcl::SampleConsensusModel< PointT >::samples_radius_.

isModelValid()

template<typename PointT >
virtual bool pcl::SampleConsensusModel< PointT >::isModelValid ( const Eigen::VectorXf & model_coefficients ) const
inlineprotectedvirtual

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

Реализация по умолчанию проверяет, что число коэффициентов в переданной модели соответствует ожидаемому для данного типа модели SAC. В конкретных моделях SAC эту функцию следует расширить проверкой ограничений пользователя (если они заданы).

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

Переопределено в pcl::SampleConsensusModelTorus< PointT, PointNT >, pcl::SampleConsensusModelTorus< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelPerpendicularPlane< PointT >, pcl::SampleConsensusModelParallelPlane< PointT >, pcl::SampleConsensusModelParallelLine< PointT >, pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelEllipse3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT > и pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >.

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

Ссылки: pcl::SampleConsensusModel< PointT >::custom_model_constraints_, pcl::SampleConsensusModel< PointT >::getClassName() и pcl::SampleConsensusModel< PointT >::model_size_.

isSampleGood()

template<typename PointT >
virtual bool pcl::SampleConsensusModel< PointT >::isSampleGood ( const Indices & samples ) const
protectedpure virtual

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

Чистая виртуальная функция.

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

Реализовано в pcl::SampleConsensusModelTorus< PointT, PointNT >, pcl::SampleConsensusModelTorus< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelEllipse3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB > и pcl::SampleConsensusModelRegistration2D< PointT >.

Используется в pcl::SampleConsensusModel< PointT >::getSamples().

optimizeModelCoefficients()

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

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

Чистая виртуальная функция.

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

Реализовано в pcl::SampleConsensusModelTorus< PointT, PointNT >, pcl::SampleConsensusModelTorus< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelEllipse3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT > и pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >.

projectPoints()

template<typename PointT >
virtual void pcl::SampleConsensusModel< PointT >::projectPoints ( const Indices & inliers,
const Eigen::VectorXf & model_coefficients,
PointCloud & projected_points,
bool copy_data_fields = true
) const
pure virtual

Создает новое облако точек, проецируя на модель точки-выбросы.

Чистая виртуальная функция.

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

Реализована в pcl::SampleConsensusModelTorus< PointT, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle2D< PointT > и pcl::SampleConsensusModelRegistration< PointT >.

rnd()

template<typename PointT >
int pcl::SampleConsensusModel< PointT >::rnd ( )
inlineprotected

Генератор случайных чисел на основе Boost.

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

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

Используется в pcl::SampleConsensusModel< PointT >::drawIndexSample() и pcl::SampleConsensusModel< PointT >::drawIndexSampleRadius().

selectWithinDistance()

template<typename PointT >
virtual void pcl::SampleConsensusModel< PointT >::selectWithinDistance ( const Eigen::VectorXf & model_coefficients,
const double threshold,
Indices & inliers
)
pure virtual

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

Чистая виртуальная функция.

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

Реализована в pcl::SampleConsensusModelTorus< PointT, PointNT >, pcl::SampleConsensusModelTorus< pcl::PointXYZRGB, PointNT >, pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelPerpendicularPlane< PointT >, pcl::SampleConsensusModelParallelPlane< PointT >, pcl::SampleConsensusModelParallelLine< PointT >, pcl::SampleConsensusModelNormalSphere< PointT, PointNT >, pcl::SampleConsensusModelNormalPlane< PointT, PointNT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelEllipse3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB > и pcl::SampleConsensusModelRegistration2D< PointT >.

setIndices() [1/2]

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::setIndices ( const Indices & indices )
inline

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

Параметры
[out] indices вектор индексов, представляющий входные данные.

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

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

setIndices() [2/2]

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::setIndices ( const IndicesPtr & indices )
inline

Задает указатель на вектор индексов, представляющий входные данные.

Параметры
[in] indices указатель на вектор индексов, представляющий входные данные.

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

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

Используется в pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >::selectBase().

setInputCloud()

template<typename PointT >
virtual void pcl::SampleConsensusModel< PointT >::setInputCloud ( const PointCloudConstPtr & cloud )
inlinevirtual

Задает указатель на входной набор данных.

Параметры
[in] cloud константный общий указатель boost на сообщение PointCloud

Переопределена в pcl::SampleConsensusModelRegistration< PointT >.

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

Ссылки на pcl::SampleConsensusModel< PointT >::indices_, pcl::SampleConsensusModel< PointT >::input_ и pcl::SampleConsensusModel< PointT >::shuffled_indices_.

Используется в pcl::SampleConsensusModelRegistration< PointT >::setInputCloud().

setModelConstraints()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::setModelConstraints ( std::function< bool(const Eigen::VectorXf &)> function )
inline

Этот метод позволяет наложить на модель ограничения любого типа, например

задать конкретное направление, размер или любое другое свойство.

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

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

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

setRadiusLimits()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::setRadiusLimits ( const double & min_radius,
const double & max_radius
)
inline

Задает минимальное и максимальное допустимые значения радиуса модели (применимо к моделям, оценивающим радиус).

Параметры
[in] min_radius минимальный радиус модели
[in] max_radius максимальный радиус модели
Задача:
изменить этот метод так, чтобы он задавал ограничения для всей модели

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

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

Используется в pcl::SACSegmentation< PointT >::initSACModel() и pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().

setSamplesMaxDist()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::setSamplesMaxDist ( const double & radius,
SearchPtr search
)
inline

Задает максимальное расстояние при выборе случайных образцов.

Параметры
[in] radius максимальное расстояние (норма L2)
search

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

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

Документация друзей и связанных функций

ProgressiveSampleConsensus< PointT >

template<typename PointT >
friend class ProgressiveSampleConsensus< PointT >
friend

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

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

custom_model_constraints_

template<typename PointT >
std::function<bool(const Eigen::VectorXf &)> pcl::SampleConsensusModel< PointT >::custom_model_constraints_
protected

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

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

Используется в pcl::SampleConsensusModel< PointT >::isModelValid() и pcl::SampleConsensusModel< PointT >::setModelConstraints().

error_sqr_dists_

template<typename PointT >
std::vector<double> pcl::SampleConsensusModel< PointT >::error_sqr_dists_
protected

Вектор, содержащий расстояния до вычисленной модели.

Используется внутри класса.

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

Используется в pcl::SampleConsensusModel< PointT >::computeVariance().

indices_

template<typename PointT >
IndicesPtr pcl::SampleConsensusModel< PointT >::indices_
protected

Указатель на вектор индексов точек, которые следует использовать.

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

Используется в pcl::SampleConsensusModelRegistration< PointT >::computeOriginalIndexMapping(), pcl::SampleConsensusModel< PointT >::getIndices(), pcl::SampleConsensusModel< PointT >::getSamples(), pcl::SampleConsensusModel< PointT >::setIndices() и pcl::SampleConsensusModel< PointT >::setInputCloud().

input_

template<typename PointT >
PointCloudConstPtr pcl::SampleConsensusModel< PointT >::input_
protected

Разделяемый указатель Boost на массив данных облака точек.

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

Используется в pcl::SampleConsensusModel< PointT >::drawIndexSampleRadius(), pcl::SampleConsensusModel< PointT >::getInputCloud() и pcl::SampleConsensusModel< PointT >::setInputCloud().

max_sample_checks_

template<typename PointT >
const unsigned int pcl::SampleConsensusModel< PointT >::max_sample_checks_ = 1000
staticprotected

Максимальное число попыток выбора выборки, необходимое для получения подходящей.

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

Используется в pcl::SampleConsensusModel< PointT >::getSamples().

model_name_

template<typename PointT >
std::string pcl::SampleConsensusModel< PointT >::model_name_
protected

Имя модели.

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

Используется в pcl::SampleConsensusModel< PointT >::getClassName(), pcl::SampleConsensusModelCircle2D< PointT >::SampleConsensusModelCircle2D(), pcl::SampleConsensusModelCircle3D< PointT >::SampleConsensusModelCircle3D(), pcl::SampleConsensusModelCone< PointT, PointNT >::SampleConsensusModelCone(), pcl::SampleConsensusModelCylinder< PointT, PointNT >::SampleConsensusModelCylinder(), pcl::SampleConsensusModelEllipse3D< PointT >::SampleConsensusModelEllipse3D(), pcl::SampleConsensusModelLine< PointT >::SampleConsensusModelLine(), pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >::SampleConsensusModelNormalParallelPlane(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::SampleConsensusModelNormalPlane(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::SampleConsensusModelNormalSphere(), pcl::SampleConsensusModelParallelLine< PointT >::SampleConsensusModelParallelLine(), pcl::SampleConsensusModelParallelPlane< PointT >::SampleConsensusModelParallelPlane(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::SampleConsensusModelPerpendicularPlane(), pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration(), pcl::SampleConsensusModelRegistration2D< PointT >::SampleConsensusModelRegistration2D(), pcl::SampleConsensusModelSphere< PointT >::SampleConsensusModelSphere(), pcl::SampleConsensusModelStick< PointT >::SampleConsensusModelStick() и pcl::SampleConsensusModelTorus< PointT, PointNT >::SampleConsensusModelTorus().

model_size_

template<typename PointT >
unsigned int pcl::SampleConsensusModel< PointT >::model_size_
protected

Количество коэффициентов в модели.

Каждый подкласс должен корректно инициализировать это поле.

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

Используется в pcl::SampleConsensusModel< PointT >::getModelSize(), pcl::SampleConsensusModel< PointT >::isModelValid(), pcl::SampleConsensusModelCircle2D< PointT >::SampleConsensusModelCircle2D(), pcl::SampleConsensusModelCircle3D< PointT >::SampleConsensusModelCircle3D(), pcl::SampleConsensusModelCone< PointT, PointNT >::SampleConsensusModelCone(), pcl::SampleConsensusModelCylinder< PointT, PointNT >::SampleConsensusModelCylinder(), pcl::SampleConsensusModelEllipse3D< PointT >::SampleConsensusModelEllipse3D(), pcl::SampleConsensusModelLine< PointT >::SampleConsensusModelLine(), pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >::SampleConsensusModelNormalParallelPlane(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::SampleConsensusModelNormalPlane(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::SampleConsensusModelNormalSphere(), pcl::SampleConsensusModelParallelLine< PointT >::SampleConsensusModelParallelLine(), pcl::SampleConsensusModelParallelPlane< PointT >::SampleConsensusModelParallelPlane(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::SampleConsensusModelPerpendicularPlane(), pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration(), pcl::SampleConsensusModelRegistration2D< PointT >::SampleConsensusModelRegistration2D(), pcl::SampleConsensusModelSphere< PointT >::SampleConsensusModelSphere(), pcl::SampleConsensusModelStick< PointT >::SampleConsensusModelStick() и pcl::SampleConsensusModelTorus< PointT, PointNT >::SampleConsensusModelTorus().

radius_max_

template<typename PointT >
double pcl::SampleConsensusModel< PointT >::radius_max_
protected

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

Используется в pcl::SampleConsensusModel< PointT >::getRadiusLimits(), pcl::SampleConsensusModelSphere< PointT >::isModelValid() и pcl::SampleConsensusModel< PointT >::setRadiusLimits().

radius_min_

template<typename PointT >
double pcl::SampleConsensusModel< PointT >::radius_min_
protected

Минимальное и максимальное ограничения радиуса модели.

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

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

Используется в pcl::SampleConsensusModel< PointT >::getRadiusLimits(), pcl::SampleConsensusModelSphere< PointT >::isModelValid() и pcl::SampleConsensusModel< PointT >::setRadiusLimits().

rng_alg_

template<typename PointT >
boost::mt19937 pcl::SampleConsensusModel< PointT >::rng_alg_
protected

Алгоритм генератора случайных чисел на основе Boost.

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

rng_dist_

template<typename PointT >
std::shared_ptr<boost::uniform_int<> > pcl::SampleConsensusModel< PointT >::rng_dist_
protected

Распределение генератора случайных чисел на основе Boost.

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

rng_gen_

template<typename PointT >
std::shared_ptr<boost::variate_generator< boost::mt19937&, boost::uniform_int<> > > pcl::SampleConsensusModel< PointT >::rng_gen_
protected

Генератор случайных чисел на основе Boost.

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

Используется в pcl::SampleConsensusModel< PointT >::rnd().

sample_size_

template<typename PointT >
unsigned int pcl::SampleConsensusModel< PointT >::sample_size_
protected

Размер выборки, по которой вычисляется модель.

Каждый подкласс должен корректно инициализировать это поле.

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

Используется в pcl::SampleConsensusModel< PointT >::getSampleSize(), pcl::SampleConsensusModelCircle2D< PointT >::SampleConsensusModelCircle2D(), pcl::SampleConsensusModelCircle3D< PointT >::SampleConsensusModelCircle3D(), pcl::SampleConsensusModelCone< PointT, PointNT >::SampleConsensusModelCone(), pcl::SampleConsensusModelCylinder< PointT, PointNT >::SampleConsensusModelCylinder(), pcl::SampleConsensusModelEllipse3D< PointT >::SampleConsensusModelEllipse3D(), pcl::SampleConsensusModelLine< PointT >::SampleConsensusModelLine(), pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >::SampleConsensusModelNormalParallelPlane(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::SampleConsensusModelNormalPlane(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::SampleConsensusModelNormalSphere(), pcl::SampleConsensusModelParallelLine< PointT >::SampleConsensusModelParallelLine(), pcl::SampleConsensusModelParallelPlane< PointT >::SampleConsensusModelParallelPlane(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::SampleConsensusModelPerpendicularPlane(), pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration(), pcl::SampleConsensusModelRegistration2D< PointT >::SampleConsensusModelRegistration2D(), pcl::SampleConsensusModelSphere< PointT >::SampleConsensusModelSphere(), pcl::SampleConsensusModelStick< PointT >::SampleConsensusModelStick() и pcl::SampleConsensusModelTorus< PointT, PointNT >::SampleConsensusModelTorus().

samples_radius_

template<typename PointT >
double pcl::SampleConsensusModel< PointT >::samples_radius_
protected

Максимальное расстояние последующих выборочных точек от первой (поиск в радиусе)

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

Используется в pcl::SampleConsensusModel< PointT >::drawIndexSampleRadius(), pcl::SampleConsensusModel< PointT >::getSamples(), pcl::SampleConsensusModel< PointT >::getSamplesMaxDist() и pcl::SampleConsensusModel< PointT >::setSamplesMaxDist().

samples_radius_search_

template<typename PointT >
SearchPtr pcl::SampleConsensusModel< PointT >::samples_radius_search_
protected

Объект поиска для выбора последующих выборочных точек с помощью поиска в радиусе.

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

Используется в pcl::SampleConsensusModel< PointT >::drawIndexSampleRadius() и pcl::SampleConsensusModel< PointT >::setSamplesMaxDist().

shuffled_indices_

template<typename PointT >
Indices pcl::SampleConsensusModel< PointT >::shuffled_indices_
protected

Данные, содержащие перемешанную последовательность индексов.

Эти данные используются и изменяются при выборе выборок.

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

Используется в pcl::SampleConsensusModel< PointT >::drawIndexSample(), pcl::SampleConsensusModel< PointT >::drawIndexSampleRadius(), pcl::SampleConsensusModel< PointT >::setIndices() и pcl::SampleConsensusModel< PointT >::setInputCloud().


Документация для этого класса создана на основе следующего файла:
  • pcl/sample_consensus/sac_model.h

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_sample_consensus_model.html

Spec-Zone.ru

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