Spec-Zone.ru › PointCloudLibrary

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

#include <pcl/sample_consensus/sac_model_normal_plane.h>

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

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

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

Открытые функции-члены

SampleConsensusModelNormalPlane (const PointCloudConstPtr &cloud, bool random=false)
Конструктор базового класса SampleConsensusModelNormalPlane. Подробнее...
SampleConsensusModelNormalPlane (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Конструктор базового класса SampleConsensusModelNormalPlane. Подробнее...
~SampleConsensusModelNormalPlane () override=default
Пустой деструктор. Подробнее...
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_NORMAL_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
Вычислить дисперсию ошибок модели на основе внутренне рассчитанного вектора расстояний. Подробнее...
- Общедоступные функции-члены, унаследованные от pcl::SampleConsensusModelFromNormals< PointT, PointNT >
SampleConsensusModelFromNormals ()
Пустой конструктор базового класса SampleConsensusModelFromNormals. Подробнее...
virtual ~SampleConsensusModelFromNormals ()=default
Деструктор. Подробнее...
void setNormalDistanceWeight (const double w)
Задать вес углового расстояния между нормалями. Подробнее...
double getNormalDistanceWeight () const
Получить вес углового расстояния между нормалями. Подробнее...
void setInputNormals (const PointCloudNConstPtr &normals)
Предоставить указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее...
PointCloudNConstPtr getInputNormals () const
Получить указатель на нормали облака входных точек XYZ. Подробнее...

Защищённые функции-члены

std::size_t countWithinDistanceStandard (const Eigen::VectorXf &model_coefficients, const double threshold, std::size_t i=0) const
В этой реализации не используются инструкции SIMD. Подробнее...
- Защищённые функции-члены, унаследованные от 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_. Подробнее...
virtual bool isModelValid (const Eigen::VectorXf &model_coefficients) const
Проверяет, является ли модель допустимой с учётом ограничений, заданных пользователем. Подробнее...
int rnd ()
Генератор случайных чисел на основе Boost. Подробнее...

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

- Защищённые атрибуты, унаследованные от 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::SampleConsensusModelFromNormals< PointT, PointNT >
double normal_distance_weight_ {0.0}
Относительный вес (от 0 до 1), придаваемый угловому расстоянию (от 0 до pi/2) между нормалями точек и нормалью плоскости. Подробнее...
PointCloudNConstPtr normals_
Указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее...
- Статические защищённые атрибуты, унаследованные от pcl::SampleConsensusModel< PointT >
static const unsigned int max_sample_checks_ = 1000
Максимальное количество попыток выборки до получения подходящей. Подробнее...

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

template<typename PointT, typename PointNT>
class pcl::SampleConsensusModelNormalPlane< PointT, PointNT >

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

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

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

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

Чтобы задать влияние нормалей поверхности на процесс оценки принадлежности к инлайерам, установите вес нормалей (0,0–1,0), например:

SampleConsensusModelNormalPlane<pcl::PointXYZ, pcl::Normal> sac_model;
...
sac_model.setNormalDistanceWeight (0.1);
...
Автор
Radu B. Rusu и Jared Glover

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

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

ConstPtr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::ConstPtr = shared_ptr<const SampleConsensusModelNormalPlane<PointT, PointNT> >

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

PointCloud

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::PointCloud = typename SampleConsensusModel<PointT>::PointCloud

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

PointCloudConstPtr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::PointCloudConstPtr = typename SampleConsensusModel<PointT>::PointCloudConstPtr

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

PointCloudNConstPtr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::PointCloudNConstPtr = typename SampleConsensusModelFromNormals<PointT, PointNT>::PointCloudNConstPtr

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

PointCloudNPtr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::PointCloudNPtr = typename SampleConsensusModelFromNormals<PointT, PointNT>::PointCloudNPtr

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

PointCloudPtr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::PointCloudPtr = typename SampleConsensusModel<PointT>::PointCloudPtr

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

Ptr

template<typename PointT , typename PointNT >
using pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::Ptr = shared_ptr<SampleConsensusModelNormalPlane<PointT, PointNT> >

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

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

SampleConsensusModelNormalPlane() [1/2]

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

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

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

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

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

SampleConsensusModelNormalPlane() [2/2]

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

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

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

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

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

~SampleConsensusModelNormalPlane()

template<typename PointT , typename PointNT >
pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::~SampleConsensusModelNormalPlane ( )
overridedefault

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

Описание функций-членов

countWithinDistance()

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

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

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

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

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

countWithinDistanceStandard()

template<typename PointT , typename PointNT >
std::size_t pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::countWithinDistanceStandard ( const Eigen::VectorXf & model_coefficients,
const double threshold,
std::size_t i = 0
) const
protected

В этой реализации не используются инструкции SIMD.

Этот метод не предназначен для обычного использования. См. countWithinDistance, который автоматически выбирает самую быструю реализацию.

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

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

getDistancesToModel()

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

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

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

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

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

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

getModelType()

template<typename PointT , typename PointNT >
pcl::SacModel pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::getModelType ( ) const
inlineoverridevirtual

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

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

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

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

selectWithinDistance()

template<typename PointT , typename PointNT >
void pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::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_normal_plane.hpp.

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


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

Spec-Zone.ru

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