Spec-Zone.ru › PointCloudLibrary

SampleConsensusModelParallelPlane определяет модель для сегментации 3D плоскостей с дополнительными угловыми ограничениями. Подробнее...

#include <pcl/sample_consensus/sac_model_parallel_plane.h>

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

Публичные типы

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

Публичные члены-функции

SampleConsensusModelParallelPlane (const PointCloudConstPtr &cloud, bool random=false)
Конструктор базового класса SampleConsensusModelParallelPlane. Подробнее...
SampleConsensusModelParallelPlane (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Конструктор базового класса SampleConsensusModelParallelPlane. Подробнее...
~SampleConsensusModelParallelPlane () override=default
Пустой деструктор. Подробнее...
void setAxis (const Eigen::Vector3f &ax)
Установить ось, по которой необходимо искать плоскость, перпендикулярную ей. Подробнее...
Eigen::Vector3f getAxis () const
Получить ось, по которой необходимо искать плоскость, перпендикулярную ей. Подробнее...
void setEpsAngle (const double ea)
Установить пороговое значение угла epsilon (delta). Подробнее...
double getEpsAngle () const
Получить пороговое значение угла epsilon (delta). Подробнее...
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_PLANE). Подробнее...
- Публичные члены-функции, унаследованные от pcl::SampleConsensusModelPlane< PointT >
SampleConsensusModelPlane (const PointCloudConstPtr &cloud, bool random=false)
Конструктор базового класса SampleConsensusModelPlane. Подробнее...
SampleConsensusModelPlane (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Конструктор базового класса SampleConsensusModelPlane. Подробнее...
~SampleConsensusModelPlane () override=default
Пустой деструктор. Подробнее...
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_PLANE). Подробнее...
- Публичные члены-функции унаследованные от 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::SampleConsensusModelPlane< PointT >
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. Подробнее...

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

Eigen::Vector3f axis_
Ось, вдоль которой необходимо искать плоскость, перпендикулярную ей. Подробнее...
double eps_angle_
Максимальное допустимое отклонение между плоскостью и заданной осью. Подробнее...
double sin_angle_
Синус угла. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::SampleConsensusModel< PointT >
std::string model_name_
Название модели. Подробнее...
PointCloudConstPtr input_
Указатель на данные облака точек. Подробнее...
IndicesPtr indices_
Указатель на вектор индексов точек для использования. Подробнее...
double radius_min_
Минимальное и максимальное радиусы для модели. Подробнее...
double radius_max_
double samples_radius_
Максимальное расстояние последующих выборок от первой (поиск по радиусу) Подробнее...
SearchPtr samples_radius_search_
Объект поиска для выбора последующих выборок с помощью поиска по радиусу. Подробнее...
Indices shuffled_indices_
Данные, содержащие перемешанную версию индексов. Подробнее...
boost::mt19937 rng_alg_
Алгоритм генератора случайных чисел Boost. Подробнее...
std::shared_ptr< boost::uniform_int<> > rng_dist_
Распределение генератора случайных чисел Boost. Подробнее...
std::shared_ptr< boost::variate_generator< boost::mt19937 &, boost::uniform_int<> > > rng_gen_
Генератор случайных чисел Boost. Подробнее...
std::vector< double > error_sqr_dists_
Вектор, содержащий расстояния до вычисленной модели. Подробнее...
unsigned int sample_size_
Размер выборки, из которой вычисляется модель. Подробнее...
unsigned int model_size_
Количество коэффициентов в модели. Подробнее...
std::function< bool(const Eigen::VectorXf &)> custom_model_constraints_
Пользовательская функция, принимающая коэффициенты модели и возвращающая, является ли модель приемлемой. Подробнее...

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

- Статические защищенные атрибуты, унаследованные от pcl::SampleConsensusModel< PointT >
static const unsigned int max_sample_checks_ = 1000
Максимальное количество выборок для проверки, пока не будет найдена подходящая. Подробнее...

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

шаблон<typename PointT>
класс pcl::SampleConsensusModelParallelPlane< PointT >

SampleConsensusModelParallelPlane определяет модель для сегментации 3D плоскости с дополнительными угловыми ограничениями.

Плоскость должна быть параллельна указанной оси (setAxis) в пределах указанного порогового угла (setEpsAngle). Другими словами, нормаль плоскости должна быть (почти) перпендикулярна указанной оси.

Пример кода для модели плоскости, параллельной (с точностью до 15 градусов) оси Z:

SampleConsensusModelParallelPlane<pcl::PointXYZ> model (cloud);
model.setAxis (Eigen::Vector3f (0.0, 0.0, 1.0));
model.setEpsAngle (pcl::deg2rad (15));
pcl::deg2radfloat deg2rad(float alpha)Convert an angle from degrees to radians.Definition: angles.hpp:67
pcl::deg2rad
float deg2rad(float alpha)
Convert an angle from degrees to radians.
Definition: angles.hpp:67
Примечание
Помните, что вам необходимо указать угол > 0, чтобы активировать ограничение оси-угла!
Автор
Radu B. Rusu, Nico Blodow

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

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

ConstPtr

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

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

PointCloud

шаблон<typename PointT >
используется pcl::SampleConsensusModelParallelPlane< PointT >::PointCloud = typename SampleConsensusModelPlane<PointT>::PointCloud

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

PointCloudConstPtr

шаблон<typename PointT >
используется pcl::SampleConsensusModelParallelPlane< PointT >::PointCloudConstPtr = typename SampleConsensusModelPlane<PointT>::PointCloudConstPtr

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

PointCloudPtr

шаблон<typename PointT >
используется pcl::SampleConsensusModelParallelPlane< PointT >::PointCloudPtr = typename SampleConsensusModelPlane<PointT>::PointCloudPtr

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

Ptr

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

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

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

SampleConsensusModelParallelPlane() [1/2]

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

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

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

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

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

SampleConsensusModelParallelPlane() [2/2]

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

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

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

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

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

~SampleConsensusModelParallelPlane()

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

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

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

countWithinDistance()

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

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

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

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

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

getAxis()

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

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

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

Ссылки на pcl::SampleConsensusModelParallelPlane< PointT >::axis_.

Ссылка на pcl::SACSegmentation< PointT >::initSACModel().

getDistancesToModel()

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

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

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

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

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

getEpsAngle()

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

Получить пороговое значение угла epsilon (delta).

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

Ссылается на pcl::SampleConsensusModelParallelPlane< PointT >::eps_angle_.

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

getModelType()

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

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

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

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

Ссылается на pcl::SACMODEL_PARALLEL_PLANE.

isModelValid()

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

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

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

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

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

selectWithinDistance()

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

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

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

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

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

setAxis()

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

Установить ось, по которой нужно искать плоскость, перпендикулярную к ней.

Parameters
[in] ax ось, по которой нужно искать плоскость, перпендикулярную к ней

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

Ссылается на pcl::SampleConsensusModelParallelPlane< PointT >::axis_.

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

setEpsAngle()

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

Установить пороговое значение угла epsilon (delta).

Параметры
[in] ea максимальное допустимое расхождение между нормалью к плоскости и заданной осью.
Примечание
Для активации ограничения по оси и углу необходимо указать угол > 0!

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

Ссылки на pcl::SampleConsensusModelParallelPlane< PointT >::eps_angle_ и pcl::SampleConsensusModelParallelPlane< PointT >::sin_angle_.

Используется функцией pcl::SACSegmentation< PointT >::initSACModel().

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

axis_

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

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

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

Используется функциями pcl::SampleConsensusModelParallelPlane< PointT >::getAxis() и pcl::SampleConsensusModelParallelPlane< PointT >::setAxis().

eps_angle_

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

Максимальное допустимое расхождение между плоскостью и заданной осью.

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

Используется функциями pcl::SampleConsensusModelParallelPlane< PointT >::getEpsAngle() и pcl::SampleConsensusModelParallelPlane< PointT >::setEpsAngle().

sin_angle_

template<typename PointT >
double pcl::SampleConsensusModelParallelPlane< PointT >::sin_angle_
protected

Синус угла.

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

Используется функцией pcl::SampleConsensusModelParallelPlane< PointT >::setEpsAngle().


The documentation for this class was generated from the following files:
  • pcl/sample_consensus/sac_model_parallel_plane.h
  • pcl/sample_consensus/impl/sac_model_parallel_plane.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_plane.html

Spec-Zone.ru

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