Spec-Zone.ru › PointCloudLibrary

SampleConsensusModelLine определяет модель для сегментации 3D-линий. Подробнее...

#include <pcl/sample_consensus/sac_model_line.h>

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

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

using PointCloud = typename SampleConsensusModel< PointT >::PointCloud
using PointCloudPtr = typename SampleConsensusModel< PointT >::PointCloudPtr
using PointCloudConstPtr = typename SampleConsensusModel< PointT >::PointCloudConstPtr
using Ptr = shared_ptr< SampleConsensusModelLine< PointT > >
using ConstPtr = shared_ptr< const SampleConsensusModelLine< 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 > >
tr>

Общедоступные функции-члены

SampleConsensusModelLine (const PointCloudConstPtr &cloud, bool random=false)
Конструктор базового класса SampleConsensusModelLine. Подробнее...
SampleConsensusModelLine (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Конструктор базового класса SampleConsensusModelLine. Подробнее...
~SampleConsensusModelLine () 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_LINE). Подробнее...
- Общедоступные функции-члены, унаследованные от 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 isSampleGood (const Indices &samples) const override
Проверяет, образуют ли выбранные индексы допустимую выборку индексов точек. Подробнее...
- Защищённые функции-члены, унаследованные от 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::SampleConsensusModel< PointT >
static const unsigned int max_sample_checks_ = 1000
Максимальное число попыток найти допустимую выборку. Подробнее...

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

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

SampleConsensusModelLine определяет модель для сегментации 3D-линий.

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

  • point_on_line.x : координата X точки на линии
  • point_on_line.y : координата Y точки на линии
  • point_on_line.z : координата Z точки на линии
  • line_direction.x : координата X направления линии
  • line_direction.y : координата Y направления линии
  • line_direction.z : координата Z направления линии
Автор
Radu B. Rusu

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

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

ConstPtr

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

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

PointCloud

template<typename PointT >
using pcl::SampleConsensusModelLine< PointT >::PointCloud = typename SampleConsensusModel<PointT>::PointCloud

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

PointCloudConstPtr

template<typename PointT >
using pcl::SampleConsensusModelLine< PointT >::PointCloudConstPtr = typename SampleConsensusModel<PointT>::PointCloudConstPtr

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

PointCloudPtr

template<typename PointT >
using pcl::SampleConsensusModelLine< PointT >::PointCloudPtr = typename SampleConsensusModel<PointT>::PointCloudPtr

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

Ptr

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

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

Описание конструктора и деструктора

SampleConsensusModelLine() [1/2]

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

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

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

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

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

SampleConsensusModelLine() [2/2]

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

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

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

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

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

~SampleConsensusModelLine()

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

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

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

computeModelCoefficients()

template<typename PointT >
bool pcl::SampleConsensusModelLine< PointT >::computeModelCoefficients ( const Indices & samples,
Eigen::VectorXf & model_coefficients
) const
overridevirtual

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

Коэффициенты прямой задаются точкой и направлением прямой.

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

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

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

countWithinDistance()

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

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

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

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

Переопределено в pcl::SampleConsensusModelParallelLine< PointT >.

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

doSamplesVerifyModel()

template<typename PointT >
bool pcl::SampleConsensusModelLine< PointT >::doSamplesVerifyModel ( const std::set< index_t > & indices,
const Eigen::VectorXf & model_coefficients,
const double threshold
) const
overridevirtual

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

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

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

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

getDistancesToModel()

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

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

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

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

Переопределено в pcl::SampleConsensusModelParallelLine< PointT >.

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

getModelType()

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

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

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

Переопределено в pcl::SampleConsensusModelParallelLine< PointT >.

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

Ссылка: pcl::SACMODEL_LINE.

isSampleGood()

template<typename PointT >
bool pcl::SampleConsensusModelLine< PointT >::isSampleGood ( const Indices & samples ) const
overrideprotectedvirtual

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

Параметры
[in] samples полученные индексы выборки

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

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

optimizeModelCoefficients()

template<typename PointT >
void pcl::SampleConsensusModelLine< PointT >::optimizeModelCoefficients ( const Indices & inliers,
const Eigen::VectorXf & model_coefficients,
Eigen::VectorXf & optimized_coefficients
) const
overridevirtual

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

Примечание
: это коэффициенты модели прямой после уточнения (например, с помощью SVD)
Параметры
[in] inliers внутренние точки данных, поддерживающие модель
[in] model_coefficients начальная оценка коэффициентов модели
[out] optimized_coefficients полученные коэффициенты после повторного вычисления и оптимизации

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

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

Ссылки: pcl::compute3DCentroid(), pcl::computeCorrespondingEigenVector(), pcl::computeCovarianceMatrix() и pcl::eigen33().

projectPoints()

template<typename PointT >
void pcl::SampleConsensusModelLine< PointT >::projectPoints ( const Indices & inliers,
const Eigen::VectorXf & model_coefficients,
PointCloud & projected_points,
bool copy_data_fields = true
) const
overridevirtual

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

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

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

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

Ссылки: pcl::PointCloud< PointT >::header, pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::is_dense, pcl::PointCloud< PointT >::resize(), pcl::PointCloud< PointT >::size() и pcl::PointCloud< PointT >::width.

selectWithinDistance()

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

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

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

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

Переопределено в pcl::SampleConsensusModelParallelLine< PointT >.

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


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

Spec-Zone.ru

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