Spec-Zone.ru › PointCloudLibrary

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

#include <pcl/sample_consensus/sac_model_perpendicular_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< SampleConsensusModelPerpendicularPlane< PointT > >
using ConstPtr = shared_ptr< const SampleConsensusModelPerpendicularPlane< 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 > >

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

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

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

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

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

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

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

Плоскость должна быть перпендикулярна заданной пользователем оси (setAxis) с учётом заданного пользователем порогового значения угла (setEpsAngle). Другими словами, нормаль плоскости должна быть (почти) параллельна заданной оси. Коэффициенты модели определяются следующим образом:

  • a : координата X нормали плоскости (нормализованной)
  • b : координата Y нормали плоскости (нормализованной)
  • c : координата Z нормали плоскости (нормализованной)
  • d : четвёртая компонента Гессе уравнения плоскости

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

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

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

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

ConstPtr

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

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

PointCloud

template<typename PointT >
using pcl::SampleConsensusModelPerpendicularPlane< PointT >::PointCloud = typename SampleConsensusModelPlane<PointT>::PointCloud

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

PointCloudConstPtr

template<typename PointT >
using pcl::SampleConsensusModelPerpendicularPlane< PointT >::PointCloudConstPtr = typename SampleConsensusModelPlane<PointT>::PointCloudConstPtr

Определено в строке 77 файла sac_model_perpendicular_plane.h.

PointCloudPtr

template<typename PointT >
using pcl::SampleConsensusModelPerpendicularPlane< PointT >::PointCloudPtr = typename SampleConsensusModelPlane<PointT>::PointCloudPtr

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

Ptr

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

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

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

SampleConsensusModelPerpendicularPlane() [1/2]

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

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

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

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

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

SampleConsensusModelPerpendicularPlane() [2/2]

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

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

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

Определено в строке 102 файла sac_model_perpendicular_plane.h.

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

~SampleConsensusModelPerpendicularPlane()

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

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

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

countWithinDistance()

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

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

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

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

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

getAxis()

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

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

Определено в строке 125 файла sac_model_perpendicular_plane.h.

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

На этот метод ссылается pcl::SACSegmentation< PointT >::initSACModel().

getDistancesToModel()

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

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

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

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

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

getEpsAngle()

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

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

Определено в строке 136 файла sac_model_perpendicular_plane.h.

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

На этот метод ссылается pcl::SACSegmentation< PointT >::initSACModel().

getModelType()

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

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

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

Определено в строке 168 файла sac_model_perpendicular_plane.h.

Ссылки на pcl::SACMODEL_PERPENDICULAR_PLANE.

isModelValid()

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

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

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

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

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

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

selectWithinDistance()

template<typename PointT >
void pcl::SampleConsensusModelPerpendicularPlane< PointT >::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_perpendicular_plane.hpp.

setAxis()

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

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

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

Определено в строке 121 файла sac_model_perpendicular_plane.h.

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

На этот метод ссылается pcl::SACSegmentation< PointT >::initSACModel().

setEpsAngle()

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

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

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

Определено в строке 132 файла sac_model_perpendicular_plane.h.

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

На этот метод ссылается pcl::SACSegmentation< PointT >::initSACModel().

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

axis_

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

Ось, относительно которой выполняется поиск перпендикулярной плоскости.

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

На это поле ссылаются методы pcl::SampleConsensusModelPerpendicularPlane< PointT >::getAxis() и pcl::SampleConsensusModelPerpendicularPlane< PointT >::setAxis().

eps_angle_

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

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

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

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


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

Spec-Zone.ru

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