Spec-Zone.ru › PointCloudLibrary

SampleConsensusModelSphere определяет модель для сегментации сфер в 3D. Подробнее...

#include <pcl/sample_consensus/sac_model_sphere.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< SampleConsensusModelSphere< PointT > >
using ConstPtr = shared_ptr< const SampleConsensusModelSphere< 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 > >

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

SampleConsensusModelSphere (const PointCloudConstPtr &cloud, bool random=false)
Конструктор базового класса SampleConsensusModelSphere. Подробнее...
SampleConsensusModelSphere (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Конструктор базового класса SampleConsensusModelSphere. Подробнее...
~SampleConsensusModelSphere () override=default
Пустой деструктор. Подробнее...
SampleConsensusModelSphere (const SampleConsensusModelSphere &source)
Конструктор копирования. Подробнее...
SampleConsensusModelSphere & operator= (const SampleConsensusModelSphere &source)
Конструктор копирования. Подробнее...
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_SPHERE). Подробнее...
- Публичные функции-члены, унаследованные от 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
Проверяет, является ли модель допустимой с учётом ограничений, заданных пользователем. Подробнее...
bool isSampleGood (const Indices &samples) const override
Проверяет, образует ли выборка индексов подходящую выборку индексов точек. Подробнее...
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. Подробнее...

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

- Защищённые атрибуты, унаследованные от 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::SampleConsensusModelSphere< PointT >

SampleConsensusModelSphere задаёт модель для сегментации сфер в 3D.

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

  • center.x : X-координата центра сферы
  • center.y : Y-координата центра сферы
  • center.z : Z-координата центра сферы
  • radius : радиус сферы
Автор
Radu B. Rusu

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

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

ConstPtr

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

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

PointCloud

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

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

PointCloudConstPtr

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

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

PointCloudPtr

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

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

Ptr

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

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

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

SampleConsensusModelSphere() [1/3]

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

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

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

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

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

SampleConsensusModelSphere() [2/3]

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

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

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

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

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

~SampleConsensusModelSphere()

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

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

SampleConsensusModelSphere() [3/3]

template<typename PointT >
pcl::SampleConsensusModelSphere< PointT >::SampleConsensusModelSphere ( const SampleConsensusModelSphere< PointT > & source )
inline

Конструктор копирования.

Параметры
[in] source модель, которую необходимо скопировать в этот объект

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

Ссылка: pcl::SampleConsensusModel< PointT >::model_name_.

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

computeModelCoefficients()

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

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

Коэффициенты сферы: x, y, z, R.

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

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

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

countWithinDistance()

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

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

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

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

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

countWithinDistanceStandard()

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

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

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

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

doSamplesVerifyModel()

template<typename PointT >
bool pcl::SampleConsensusModelSphere< 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 >.

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

getDistancesToModel()

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

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

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

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

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

getModelType()

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

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

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

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

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

isModelValid()

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

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

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

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

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

Ссылки: pcl::SampleConsensusModel< PointT >::radius_max_ и pcl::SampleConsensusModel< PointT >::radius_min_.

isSampleGood()

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

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

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

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

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

operator=()

template<typename PointT >
SampleConsensusModelSphere& pcl::SampleConsensusModelSphere< PointT >::operator= ( const SampleConsensusModelSphere< PointT > & source )
inline

Конструктор копирования.

Параметры
[in] source модель, которую необходимо скопировать в этот объект

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

optimizeModelCoefficients()

template<typename PointT >
void pcl::SampleConsensusModelSphere< 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 >.

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

Ссылка: pcl::internal::optimizeModelCoefficientsSphere().

projectPoints()

template<typename PointT >
void pcl::SampleConsensusModelSphere< 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 >.

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

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

selectWithinDistance()

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

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

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

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

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


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

Spec-Zone.ru

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