SampleConsensusModelCircle3D задаёт модель для сегментации 3D-окружностей. Подробнее...
#include <pcl/sample_consensus/sac_model_circle3d.h>
Общедоступные типы | |
| using | PointCloud = typename SampleConsensusModel< PointT >::PointCloud |
| using | PointCloudPtr = typename SampleConsensusModel< PointT >::PointCloudPtr |
| using | PointCloudConstPtr = typename SampleConsensusModel< PointT >::PointCloudConstPtr |
| using | Ptr = shared_ptr< SampleConsensusModelCircle3D< PointT > > |
| using | ConstPtr = shared_ptr< const SampleConsensusModelCircle3D< 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 > > |
Общедоступные функции-члены | |
| SampleConsensusModelCircle3D (const PointCloudConstPtr &cloud, bool random=false) | |
| Конструктор базового класса SampleConsensusModelCircle3D. Подробнее... |
|
| SampleConsensusModelCircle3D (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false) | |
| Конструктор базового класса SampleConsensusModelCircle3D. Подробнее... |
|
| ~SampleConsensusModelCircle3D () override=default | |
| Пустой деструктор. Подробнее... |
|
| SampleConsensusModelCircle3D (const SampleConsensusModelCircle3D &source) | |
| Конструктор копирования. Подробнее... |
|
| SampleConsensusModelCircle3D & | operator= (const SampleConsensusModelCircle3D &source) |
| Конструктор копирования. Подробнее... |
|
| bool | computeModelCoefficients (const Indices &samples, Eigen::VectorXf &model_coefficients) const override |
| Проверяет, могут ли заданные индексы образовать корректную модель окружности в 2D, вычисляет по этим образцам коэффициенты модели и сохраняет их в model_coefficients. Подробнее... |
|
| void | getDistancesToModel (const Eigen::VectorXf &model_coefficients, std::vector< double > &distances) const override |
| Вычисляет расстояния от всех точек облака данных до заданной модели окружности в 3D. Подробнее... |
|
| void | selectWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold, Indices &inliers) override |
| Вычисляет расстояния от всех точек облака данных до заданной модели окружности в 3D. Подробнее... |
|
| 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 |
| Повторно вычисляет коэффициенты окружности в 3D по заданному набору внутренних точек и возвращает их пользователю. Подробнее... |
|
| void | projectPoints (const Indices &inliers, const Eigen::VectorXf &model_coefficients, PointCloud &projected_points, bool copy_data_fields=true) const override |
| Создаёт новое облако точек, проецируя внутренние точки на модель окружности в 3D. Подробнее... |
|
| bool | doSamplesVerifyModel (const std::set< index_t > &indices, const Eigen::VectorXf &model_coefficients, const double threshold) const override |
| Проверяет, удовлетворяет ли подмножество индексов заданным коэффициентам модели окружности в 3D. Подробнее... |
|
| pcl::SacModel | getModelType () const override |
| Возвращает уникальный идентификатор этой модели (SACMODEL_CIRCLE3D). Подробнее... |
|
|
| |
| 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 |
| Проверяет, даёт ли выборка индексов допустимую выборку индексов точек. Подробнее... |
|
|
| |
| SampleConsensusModel (bool random=false) | |
| Пустой конструктор базового класса SampleConsensusModel. Подробнее... |
|
| void | drawIndexSample (Indices &sample) |
| Заполняет массив выборки случайными элементами из вектора indices_. Подробнее... |
|
| void | drawIndexSampleRadius (Indices &sample) |
| Заполняет массив выборки одним случайным элементом из вектора indices_ и другими случайными элементами, расположенными ближе, чем samples_radius_. Подробнее... |
|
| int | rnd () |
| Генератор случайных чисел на основе Boost. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| std::string | model_name_ |
| Имя модели. Подробнее... |
|
| PointCloudConstPtr | input_ |
| Указатель boost shared на массив данных облака точек. Подробнее... |
|
| 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_ |
| Определённая пользователем функция, принимающая коэффициенты модели и возвращающая признак того, является ли модель допустимой. Подробнее... |
|
|
| |
| static const unsigned int | max_sample_checks_ = 1000 |
| Максимальное число проверяемых выборок до получения подходящей. Подробнее... |
|
Подробное описание
template<typename PointT>
class pcl::SampleConsensusModelCircle3D< PointT >
SampleConsensusModelCircle3D задаёт модель для сегментации окружностей в 3D.
Коэффициенты модели определяются следующим образом:
- center.x : координата X центра окружности
- center.y : координата Y центра окружности
- center.z : координата Z центра окружности
- radius : радиус окружности
- normal.x : координата X направления нормали
- normal.y : координата Y направления нормали
- normal.z : координата Z направления нормали
Определение в строке 60 файла sac_model_circle3d.h.
Документация по псевдонимам типов-членов
ConstPtr
| using pcl::SampleConsensusModelCircle3D< PointT >::ConstPtr = shared_ptr<const SampleConsensusModelCircle3D<PointT> > |
Определение в строке 75 файла sac_model_circle3d.h.
PointCloud
| using pcl::SampleConsensusModelCircle3D< PointT >::PointCloud = typename SampleConsensusModel<PointT>::PointCloud |
Определение в строке 70 файла sac_model_circle3d.h.
PointCloudConstPtr
| using pcl::SampleConsensusModelCircle3D< PointT >::PointCloudConstPtr = typename SampleConsensusModel<PointT>::PointCloudConstPtr |
Определение в строке 72 файла sac_model_circle3d.h.
PointCloudPtr
| using pcl::SampleConsensusModelCircle3D< PointT >::PointCloudPtr = typename SampleConsensusModel<PointT>::PointCloudPtr |
Определение в строке 71 файла sac_model_circle3d.h.
Ptr
| using pcl::SampleConsensusModelCircle3D< PointT >::Ptr = shared_ptr<SampleConsensusModelCircle3D<PointT> > |
Определение в строке 74 файла sac_model_circle3d.h.
Документация по конструкторам и деструкторам
SampleConsensusModelCircle3D() [1/3]
| inline |
Конструктор базового класса SampleConsensusModelCircle3D.
- Параметры
-
[in] cloud входной набор данных облака точек [in] random если true, начальное значение генератора случайных чисел устанавливается равным текущему времени; в противном случае — 12345 (по умолчанию: false)
Определение в строке 81 файла sac_model_circle3d.h.
Ссылки: pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
SampleConsensusModelCircle3D() [2/3]
| inline |
Конструктор базового класса SampleConsensusModelCircle3D.
- Параметры
-
[in] cloud входной набор данных облака точек [in] indices вектор индексов точек, используемых из cloud [in] random если true, инициализировать генератор случайных чисел текущим временем, иначе установить значение 12345 (по умолчанию: false)
Определение в строке 95 файла sac_model_circle3d.h.
Ссылки: pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
~SampleConsensusModelCircle3D()
| overridedefault |
Пустой деструктор.
SampleConsensusModelCircle3D() [3/3]
| inline |
Конструктор копирования.
- Параметры
-
[in] source модель, копируемая в этот объект
Определение в строке 111 файла sac_model_circle3d.h.
Описание функций-членов
computeModelCoefficients()
| overridevirtual |
Проверяет, можно ли по заданным индексам выборки построить допустимую модель окружности в 2D, вычисляет коэффициенты модели по этой выборке и сохраняет их в model_coefficients.
Коэффициенты окружности: x, y, R.
- Параметры
-
[in] samples индексы точек, выбранные в качестве возможных кандидатов для построения допустимой модели [out] model_coefficients результирующие коэффициенты модели
Реализует метод pcl::SampleConsensusModel< PointT >.
Определение в строке 79 файла sac_model_circle3d.hpp.
countWithinDistance()
| overridevirtual |
Подсчитывает все точки, соответствующие заданным коэффициентам модели, как точки-выбросы.
- Параметры
-
[in] model_coefficients коэффициенты модели, до которой требуется вычислить расстояния [in] threshold максимально допустимый порог расстояния для определения точек-выбросов среди точек, не являющихся выбросами
- Возвращает
- итоговое количество точек-выбросов
Реализует метод pcl::SampleConsensusModel< PointT >.
Определение в строке 238 файла sac_model_circle3d.hpp.
Ссылка: pcl::K.
doSamplesVerifyModel()
| overridevirtual |
Проверяет, соответствуют ли коэффициентам заданной модели окружности в 3D точки из подмножества индексов.
- Параметры
-
[in] indices индексы данных, которые необходимо проверить на соответствие модели окружности в 3D [in] model_coefficients коэффициенты модели окружности в 3D [in] threshold максимально допустимый порог расстояния для определения точек-выбросов среди точек, не являющихся выбросами
Реализует метод pcl::SampleConsensusModel< PointT >.
Определение в строке 419 файла sac_model_circle3d.hpp.
Ссылка: pcl::K.
getDistancesToModel()
| overridevirtual |
Вычисляет все расстояния от точек облака до заданной модели окружности в 3D.
- Параметры
-
[in] model_coefficients коэффициенты модели окружности в 2D, до которой требуется вычислить расстояния [out] distances результирующие оценочные расстояния
Реализует метод pcl::SampleConsensusModel< PointT >.
Определение в строке 139 файла sac_model_circle3d.hpp.
getModelType()
| inlineoverridevirtual |
Возвращает уникальный идентификатор этой модели (SACMODEL_CIRCLE3D).
Реализует метод pcl::SampleConsensusModel< PointT >.
Определение в строке 200 файла sac_model_circle3d.h.
Ссылка: pcl::SACMODEL_CIRCLE3D.
isModelValid()
| overrideprotectedvirtual |
Проверяет, является ли модель допустимой с учётом ограничений, заданных пользователем.
- Параметры
-
[in] model_coefficients набор коэффициентов модели
Переопределяет метод pcl::SampleConsensusModel< PointT >.
Определение в строке 465 файла sac_model_circle3d.hpp.
isSampleGood()
| overrideprotectedvirtual |
Проверяет, образует ли выборка индексов подходящую выборку индексов точек.
- Параметры
-
[in] samples результирующая выборка индексов
Реализует метод pcl::SampleConsensusModel< PointT >.
Определение в строке 50 файла sac_model_circle3d.hpp.
operator=()
| inline |
Конструктор копирования.
- Параметры
-
[in] source модель, копируемая в этот объект
Определение в строке 122 файла sac_model_circle3d.h.
optimizeModelCoefficients()
| overridevirtual |
Повторно вычисляет коэффициенты окружности в 3D по заданному набору точек, соответствующих модели, и возвращает их пользователю.
- Примечание
- : это коэффициенты модели окружности в 3D после уточнения (например, после SVD)
- Параметры
-
[in] inliers точки данных, соответствующие модели [in] model_coefficients начальное приближение для оптимизации [out] optimized_coefficients результирующие повторно вычисленные коэффициенты после нелинейной оптимизации
Реализует метод pcl::SampleConsensusModel< PointT >.
Определение в строке 280 файла sac_model_circle3d.hpp.
projectPoints()
| overridevirtual |
Создаёт новое облако точек, проецируя точки, соответствующие модели, на модель окружности в 3D.
- Параметры
-
[in] inliers точки данных, которые требуется спроецировать на модель окружности в 3D [in] model_coefficients коэффициенты модели окружности в 3D [out] projected_points результирующие спроецированные точки [in] copy_data_fields установите значение true, если требуется скопировать остальные поля данных
Реализует метод pcl::SampleConsensusModel< PointT >.
Определение в строке 317 файла sac_model_circle3d.hpp.
Ссылки: pcl::PointCloud< PointT >::header, pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::is_dense, pcl::K, pcl::PointCloud< PointT >::resize(), pcl::PointCloud< PointT >::size() и pcl::PointCloud< PointT >::width.
selectWithinDistance()
| overridevirtual |
Вычисляет все расстояния от точек облака до заданной модели окружности в 3D.
- Параметры
-
[in] model_coefficients коэффициенты модели окружности в 3D, до которой требуется вычислить расстояния [in] threshold максимально допустимый порог расстояния для определения точек-выбросов среди точек, не являющихся выбросами [out] inliers итоговые точки модели, соответствующие модели
Реализует метод pcl::SampleConsensusModel< PointT >.
Определение в строке 186 файла sac_model_circle3d.hpp.
Документация этого класса создана на основе следующих файлов:
- pcl/sample_consensus/sac_model_circle3d.h
- pcl/sample_consensus/impl/sac_model_circle3d.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_circle3_d.html