Spec-Zone.ru › PointCloudLibrary

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

#include <pcl/sample_consensus/sac_model_perpendicular_plane.h>

Граф наследования
[легенда]
График взаимодействия
[легенда]
END_OF_DOCUMENT_MARKER

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

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)
Установить пороговое значение угла 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_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). Подробнее...
- Public Member Functions inherited from 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)
Заполняет массив sample случайными выборками из вектора indices_. Подробнее...
void drawIndexSampleRadius (Indices &sample)
Заполняет массив sample одной случайной выборкой из вектора indices_ и другими случайными выборками, которые ближе, чем samples_radius_. Подробнее...
int rnd ()
Генератор псевдослучайных чисел Boost. Подробнее...

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

Eigen::Vector3f axis_
Ось, вдоль которой необходимо искать плоскость, перпендикулярную ей. Подробнее...
double eps_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::SampleConsensusModelPerpendicularPlane< PointT >

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

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

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

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

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.

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

ConstPtr

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

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

PointCloud

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

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

PointCloudConstPtr

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

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

PointCloudPtr

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

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

Ptr

шаблон<typename PointT >
используя 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 & облако,
bool случайный = false
)
inline

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

Параметры
[in] облако входное облако точек
[in] случайный если true, установить seed генератора случайных чисел по текущему времени, иначе установить в 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 & облако,
const Indices & индексы,
bool случайный = false
)
inline

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

Параметры
[in] облако входное облако точек
[in] индексы вектор индексов точек для использования из облака
[in] случайный если true, установить seed генератора случайных чисел по текущему времени, иначе установить в 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 & коэффициенты_модели,
const double порог
) const
overridevirtual

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

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

Реализует 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

Установить порог угла эпсилон (дельта).

Параметры
[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().


The documentation for this class was generated from the following files:
  • 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