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)
Задать пороговое значение угловой эпсилон-величины (дельты). Подробнее...
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_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_
Указатель boost::shared_ptr на массив данных облака точек. Подробнее...
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::SampleConsensusModelParallelPlane< PointT >

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

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

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

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

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

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

PointCloud

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

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

PointCloudConstPtr

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

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

PointCloudPtr

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

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

Ptr

template<typename PointT >
using 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

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

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

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

Определение в строке 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

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

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

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

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

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

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

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

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


Документация этого класса сгенерирована на основе следующих файлов:
  • 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