Spec-Zone.ru › PointCloudLibrary

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

#include <pcl/sample_consensus/sac_model_parallel_line.h>

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

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

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

Общедоступные функции-члены

SampleConsensusModelParallelLine (const PointCloudConstPtr &cloud, bool random=false)
Конструктор базового класса SampleConsensusModelParallelLine. Подробнее...
SampleConsensusModelParallelLine (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Конструктор базового класса SampleConsensusModelParallelLine. Подробнее...
~SampleConsensusModelParallelLine () override=default
Пустой деструктор. Подробнее...
void setAxis (const Eigen::Vector3f &ax)
Задать ось, параллельно которой нужно искать линию. Подробнее...
Eigen::Vector3f getAxis () const
Получить ось, параллельно которой нужно искать линию. Подробнее...
void setEpsAngle (const double ea)
Задать пороговое значение углового эпсилон (дельта). Подробнее...
double getEpsAngle () const
Получить пороговое значение углового эпсилон (дельта) в радианах. Подробнее...
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_PARALLEL_LINE). Подробнее...
- Общедоступные функции-члены, унаследованные от pcl::SampleConsensusModelLine< PointT >
SampleConsensusModelLine (const PointCloudConstPtr &cloud, bool random=false)
Конструктор базового класса SampleConsensusModelLine. Подробнее...
SampleConsensusModelLine (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Конструктор базового класса SampleConsensusModelLine. Подробнее...
~SampleConsensusModelLine () override=default
Пустой деструктор. Подробнее...
bool computeModelCoefficients (const Indices &samples, Eigen::VectorXf &model_coefficients) const override
Проверить, могут ли заданные выборочные индексы образовать допустимую модель линии, вычислить по ним коэффициенты модели и сохранить их внутри model_coefficients_. Подробнее...
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::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
Проверить, является ли модель допустимой с учётом ограничений, заданных пользователем. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::SampleConsensusModelLine< PointT >
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. Подробнее...

Защищённые атрибуты

Eigen::Vector3f axis_
Ось, вдоль которой необходимо искать линию. Подробнее...
double eps_angle_
Максимально допустимое отклонение направления линии от заданной оси. Подробнее...
- Защищённые атрибуты, унаследованные от 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
Максимальное количество проверяемых выборок до получения корректной. Подробнее...

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

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

SampleConsensusModelParallelLine задаёт модель для сегментации 3D-линий с использованием дополнительных угловых ограничений.

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

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

  • point_on_line.x : координата X точки на линии
  • point_on_line.y : координата Y точки на линии
  • point_on_line.z : координата Z точки на линии
  • line_direction.x : координата X направления линии
  • line_direction.y : координата Y направления линии
  • line_direction.z : координата Z направления линии
Автор
Radu B. Rusu

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

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

ConstPtr

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

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

PointCloud

template<typename PointT >
using pcl::SampleConsensusModelParallelLine< PointT >::PointCloud = typename SampleConsensusModelLine<PointT>::PointCloud

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

PointCloudConstPtr

template<typename PointT >
using pcl::SampleConsensusModelParallelLine< PointT >::PointCloudConstPtr = typename SampleConsensusModelLine<PointT>::PointCloudConstPtr

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

PointCloudPtr

template<typename PointT >
using pcl::SampleConsensusModelParallelLine< PointT >::PointCloudPtr = typename SampleConsensusModelLine<PointT>::PointCloudPtr

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

Ptr

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

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

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

SampleConsensusModelParallelLine() [1/2]

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

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

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

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

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

SampleConsensusModelParallelLine() [2/2]

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

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

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

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

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

~SampleConsensusModelParallelLine()

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

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

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

countWithinDistance()

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

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

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

Переопределено из pcl::SampleConsensusModelLine< PointT >.

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

getAxis()

template<typename PointT >
Eigen::Vector3f pcl::SampleConsensusModelParallelLine< PointT >::getAxis ( ) const
inline

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

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

Ссылки: pcl::SampleConsensusModelParallelLine< PointT >::axis_.

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

getDistancesToModel()

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

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

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

Переопределено из pcl::SampleConsensusModelLine< PointT >.

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

getEpsAngle()

template<typename PointT >
double pcl::SampleConsensusModelParallelLine< PointT >::getEpsAngle ( ) const
inline

Возвращает пороговое значение углового допуска (дельты) в радианах.

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

Ссылки: pcl::SampleConsensusModelParallelLine< PointT >::eps_angle_.

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

getModelType()

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

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

Переопределено из pcl::SampleConsensusModelLine< PointT >.

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

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

isModelValid()

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

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

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

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

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

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

selectWithinDistance()

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

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

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

Переопределено из pcl::SampleConsensusModelLine< PointT >.

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

setAxis()

template<typename PointT >
void pcl::SampleConsensusModelParallelLine< PointT >::setAxis ( const Eigen::Vector3f & ax )
inline

Задаёт ось, вдоль которой необходимо искать прямую.

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

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

Ссылки: pcl::SampleConsensusModelParallelLine< PointT >::axis_.

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

setEpsAngle()

template<typename PointT >
void pcl::SampleConsensusModelParallelLine< PointT >::setEpsAngle ( const double ea )
inline

Задаёт пороговое значение углового допуска (дельты).

Параметры
[in] ea максимально допустимое отклонение направления прямой от заданной оси (в радианах).

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

Ссылки: pcl::SampleConsensusModelParallelLine< PointT >::eps_angle_.

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

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

axis_

template<typename PointT >
Eigen::Vector3f pcl::SampleConsensusModelParallelLine< PointT >::axis_
protected

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

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

Используется в pcl::SampleConsensusModelParallelLine< PointT >::getAxis() и pcl::SampleConsensusModelParallelLine< PointT >::setAxis().

eps_angle_

template<typename PointT >
double pcl::SampleConsensusModelParallelLine< PointT >::eps_angle_
protected

Максимально допустимое отклонение направления прямой от заданной оси.

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

Используется в pcl::SampleConsensusModelParallelLine< PointT >::getEpsAngle() и pcl::SampleConsensusModelParallelLine< PointT >::setEpsAngle().


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

Spec-Zone.ru

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