SampleConsensusModelRegistration задаёт модель для отбраковки выбросов при регистрации «точка-точка». Подробнее...
#include <pcl/sample_consensus/sac_model_registration.h>
Публичные типы | |
| using | PointCloud = typename SampleConsensusModel< PointT >::PointCloud |
| using | PointCloudPtr = typename SampleConsensusModel< PointT >::PointCloudPtr |
| using | PointCloudConstPtr = typename SampleConsensusModel< PointT >::PointCloudConstPtr |
| using | Ptr = shared_ptr< SampleConsensusModelRegistration< PointT > > |
| using | ConstPtr = shared_ptr< const SampleConsensusModelRegistration< 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 > > |
Общедоступные функции-члены | |
| SampleConsensusModelRegistration (const PointCloudConstPtr &cloud, bool random=false) | |
| Конструктор базового класса SampleConsensusModelRegistration. Подробнее... |
|
| SampleConsensusModelRegistration (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false) | |
| Конструктор базового класса SampleConsensusModelRegistration. Подробнее... |
|
| ~SampleConsensusModelRegistration () override=default | |
| Пустой деструктор. Подробнее... |
|
| void | setInputCloud (const PointCloudConstPtr &cloud) override |
| Задать указатель на входной набор данных. Подробнее... |
|
| void | setInputTarget (const PointCloudConstPtr &target) |
| Задать целевое облако точек для входных данных. Подробнее... |
|
| void | setInputTarget (const PointCloudConstPtr &target, const Indices &indices_tgt) |
| Задать целевое облако точек для входных данных. Подробнее... |
|
| bool | computeModelCoefficients (const Indices &samples, Eigen::VectorXf &model_coefficients) const override |
| Вычислить матрицу жесткого преобразования 4x4 по заданным выборочным точкам. Подробнее... |
|
| 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 |
| Повторно вычислить матрицу преобразования 4x4, используя заданный набор внутренних точек. Подробнее... |
|
| void | projectPoints (const Indices &, const Eigen::VectorXf &, PointCloud &, bool=true) const override |
| Создать новое облако точек, спроецировав внутренние точки на модель. Подробнее... |
|
| bool | doSamplesVerifyModel (const std::set< index_t > &, const Eigen::VectorXf &, const double) const override |
| Проверить, соответствует ли подмножество индексов заданному набору коэффициентов модели. Подробнее... |
|
| pcl::SacModel | getModelType () const override |
| Возвращает уникальный идентификатор этой модели (SACMODEL_REGISTRATION). Подробнее... |
|
|
| |
| 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) |
| Получить набор случайных выборок данных и вернуть их в виде индексов точек. Подробнее... |
|
| 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 |
| Проверяет, даёт ли выборка индексов подходящую выборку индексов точек. Подробнее... |
|
| void | computeSampleDistanceThreshold (const PointCloudConstPtr &cloud) |
| Вычисляет «оптимальный» порог расстояния между точками выборки на основе главных направлений входного облака. Подробнее... |
|
| void | computeSampleDistanceThreshold (const PointCloudConstPtr &cloud, const Indices &indices) |
| Вычисляет «оптимальный» порог расстояния между точками выборки на основе главных направлений входного облака. Подробнее... |
|
| void | estimateRigidTransformationSVD (const pcl::PointCloud< PointT > &cloud_src, const Indices &indices_src, const pcl::PointCloud< PointT > &cloud_tgt, const Indices &indices_tgt, Eigen::VectorXf &transform) const |
| Оценивает жёсткое преобразование между исходным и целевым облаками точек с помощью замкнутого аналитического решения задачи абсолютной ориентации на основе SVD и единичных кватернионов. Подробнее... |
|
| void | computeOriginalIndexMapping () |
| Вычисляет соответствия между исходными индексами облаков input_/target_. Подробнее... |
|
|
| |
| 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. Подробнее... |
|
Защищённые атрибуты | |
| PointCloudConstPtr | target_ |
| Разделяемый указатель Boost на массив данных целевого облака точек. Подробнее... |
|
| IndicesPtr | indices_tgt_ |
| Указатель на вектор индексов целевых точек, которые следует использовать. Подробнее... |
|
| std::map< index_t, index_t > | correspondences_ |
| По индексу в исходном облаке точек возвращает соответствующий исходный индекс в целевом облаке. Подробнее... |
|
| double | sample_dist_thresh_ |
| Внутренний порог расстояния, используемый на этапе выбора выборки. Подробнее... |
|
|
| |
| 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_ |
| Функция, определяемая пользователем, принимает коэффициенты модели и сообщает, является ли модель допустимой. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| static const unsigned int | max_sample_checks_ = 1000 |
| Максимальное число проверяемых выборок до получения подходящей. Подробнее... |
|
Подробное описание
template<typename PointT>
class pcl::SampleConsensusModelRegistration< PointT >
SampleConsensusModelRegistration задаёт модель для отбраковки выбросов при регистрации «точка-точка».
Определение в строке 60 файла sac_model_registration.h.
Описание псевдонимов типов-членов
ConstPtr
| using pcl::SampleConsensusModelRegistration< PointT >::ConstPtr = shared_ptr<const SampleConsensusModelRegistration<PointT> > |
Определение в строке 74 файла sac_model_registration.h.
PointCloud
| using pcl::SampleConsensusModelRegistration< PointT >::PointCloud = typename SampleConsensusModel<PointT>::PointCloud |
Определение в строке 69 файла sac_model_registration.h.
PointCloudConstPtr
| using pcl::SampleConsensusModelRegistration< PointT >::PointCloudConstPtr = typename SampleConsensusModel<PointT>::PointCloudConstPtr |
Определение в строке 71 файла sac_model_registration.h.
PointCloudPtr
| using pcl::SampleConsensusModelRegistration< PointT >::PointCloudPtr = typename SampleConsensusModel<PointT>::PointCloudPtr |
Определено в строке 70 файла sac_model_registration.h.
Ptr
| using pcl::SampleConsensusModelRegistration< PointT >::Ptr = shared_ptr<SampleConsensusModelRegistration<PointT> > |
Определено в строке 73 файла sac_model_registration.h.
Документация конструкторов и деструктора
SampleConsensusModelRegistration() [1/2]
| inline |
Конструктор базового класса SampleConsensusModelRegistration.
- Параметры
-
[in] cloud входной набор данных облака точек [in] random если значение равно true, начальное значение генератора случайных чисел устанавливается по текущему времени, иначе — в 12345 (по умолчанию: false)
Определено в строке 80 файла sac_model_registration.h.
Ссылки: pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_, pcl::SampleConsensusModel< PointT >::sample_size_ и pcl::SampleConsensusModelRegistration< PointT >::setInputCloud().
SampleConsensusModelRegistration() [2/2]
| inline |
Конструктор базового класса SampleConsensusModelRegistration.
- Параметры
-
[in] cloud входной набор данных облака точек [in] indices вектор индексов точек из cloud, которые будут использоваться [in] random если значение равно true, начальное значение генератора случайных чисел устанавливается по текущему времени, иначе — в 12345 (по умолчанию: false)
Определено в строке 98 файла sac_model_registration.h.
Ссылки: pcl::SampleConsensusModelRegistration< PointT >::computeOriginalIndexMapping(), pcl::SampleConsensusModelRegistration< PointT >::computeSampleDistanceThreshold(), pcl::SampleConsensusModel< PointT >::model_name_, pcl::SampleConsensusModel< PointT >::model_size_ и pcl::SampleConsensusModel< PointT >::sample_size_.
~SampleConsensusModelRegistration()
| overridedefault |
Пустой деструктор.
Документация функций-членов
computeModelCoefficients()
| overridevirtual |
Вычисляет матрицу жёсткого преобразования 4x4 по заданным выборочным точкам.
- Параметры
-
[in] samples индексы, найденные как подходящие кандидаты для построения допустимой модели [out] model_coefficients результирующие коэффициенты модели
Реализует pcl::SampleConsensusModel< PointT >.
Определено в строке 69 файла sac_model_registration.hpp.
computeOriginalIndexMapping()
| inlineprotected |
Вычисляет соответствия между исходными индексами облаков input_/target_.
Определено в строке 311 файла sac_model_registration.h.
Ссылки: pcl::SampleConsensusModelRegistration< PointT >::correspondences_, pcl::SampleConsensusModel< PointT >::indices_ и pcl::SampleConsensusModelRegistration< PointT >::indices_tgt_.
Используется в pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration(), pcl::SampleConsensusModelRegistration2D< PointT >::SampleConsensusModelRegistration2D(), pcl::SampleConsensusModelRegistration< PointT >::setInputCloud() и pcl::SampleConsensusModelRegistration< PointT >::setInputTarget().
computeSampleDistanceThreshold() [1/2]
| inlineprotected |
Вычисляет «оптимальный» порог расстояния между выборочными точками на основе главных направлений входного облака.
- Параметры
-
[in] cloud константный общий указатель boost на сообщение PointCloud
Определено в строке 233 файла sac_model_registration.h.
Ссылки: pcl::computeMeanAndCovarianceMatrix(), pcl::eigen33() и pcl::SampleConsensusModelRegistration< PointT >::sample_dist_thresh_.
Используется в pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration() и pcl::SampleConsensusModelRegistration< PointT >::setInputCloud().
computeSampleDistanceThreshold() [2/2]
| inlineprotected |
Вычисляет «оптимальный» порог расстояния между выборочными точками на основе главных направлений входного облака.
- Параметры
-
[in] cloud константный общий указатель boost на сообщение PointCloud indices
Определено в строке 265 файла sac_model_registration.h.
Ссылки: pcl::computeMeanAndCovarianceMatrix(), pcl::eigen33() и pcl::SampleConsensusModelRegistration< PointT >::sample_dist_thresh_.
countWithinDistance()
| overridevirtual |
Подсчитывает все точки, удовлетворяющие заданным коэффициентам модели, как внутренние точки.
- Параметры
-
[in] model_coefficients коэффициенты модели, относительно которой необходимо вычислить расстояния [in] threshold максимально допустимый порог расстояния для определения внутренних точек и выбросов
- Возвращает
- итоговое количество внутренних точек
Реализует pcl::SampleConsensusModel< PointT >.
Переопределён в pcl::SampleConsensusModelRegistration2D< PointT >.
Определено в строке 204 файла sac_model_registration.hpp.
doSamplesVerifyModel()
| inlineoverridevirtual |
Проверяет, соответствует ли подмножество индексов заданному набору коэффициентов модели.
Чисто виртуальная функция.
- Параметры
-
[in] indices индексы данных, которые необходимо проверить на соответствие модели [in] model_coefficients набор коэффициентов модели [in] threshold максимально допустимый порог расстояния для определения внутренних точек и выбросов
Реализует pcl::SampleConsensusModel< PointT >.
Определено в строке 206 файла sac_model_registration.h.
estimateRigidTransformationSVD()
| protected |
Оценивает жёсткое преобразование между исходным и целевым облаками точек с помощью замкнутого решения задачи абсолютной ориентации на основе SVD и единичных кватернионов.
- Параметры
-
[in] cloud_src исходный набор данных облака точек [in] indices_src вектор индексов, задающий интересующие точки в cloud_src [in] cloud_tgt целевой набор данных облака точек [in] indices_tgt вектор индексов, задающий соответствия интересующих точек из indices_src [out] transform результирующая матрица преобразования (в виде коэффициентов модели)
Этот метод реализует алгоритм из работы: Horn, B. «Closed-Form Solution of Absolute Orientation Using Unit Quaternions», JOSA A, Vol. 4, No. 4, 1987
Определено в строке 290 файла sac_model_registration.hpp.
Ссылка: pcl::umeyama().
getDistancesToModel()
| overridevirtual |
Вычисляет расстояния от всех преобразованных точек до соответствующих им точек.
- Параметры
-
[in] model_coefficients матрица преобразования 4x4 [out] distances результирующие оценённые расстояния
Реализует pcl::SampleConsensusModel< PointT >.
Переопределён в pcl::SampleConsensusModelRegistration2D< PointT >.
Определено в строке 101 файла sac_model_registration.hpp.
getModelType()
| inlineoverridevirtual |
Возвращает уникальный идентификатор этой модели (SACMODEL_REGISTRATION).
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 215 файла sac_model_registration.h.
Ссылки на pcl::SACMODEL_REGISTRATION.
isSampleGood()
| overrideprotectedvirtual |
Проверяет, дает ли выборка индексов корректную выборку индексов точек.
- Параметры
-
[in] samples полученные индексы выборки
Реализует pcl::SampleConsensusModel< PointT >.
Переопределен в pcl::SampleConsensusModelRegistration2D< PointT >.
Определение в строке 48 файла sac_model_registration.hpp.
optimizeModelCoefficients()
| overridevirtual |
Повторно вычисляет преобразование 4x4 по заданному набору внутренних точек.
- Параметры
-
[in] inliers внутренние точки данных, найденные как поддерживающие модель [in] model_coefficients начальное приближение для оптимизации [out] optimized_coefficients полученное повторно вычисленное преобразование
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 253 файла sac_model_registration.hpp.
projectPoints()
| inlineoverridevirtual |
Создает новое облако точек, проецируя на модель внутренние точки.
Чисто виртуальный метод.
- Параметры
-
[in] inliers внутренние точки данных, которые требуется спроецировать на модель [in] model_coefficients коэффициенты модели [out] projected_points полученные проецированные точки [in] copy_data_fields установите значение true (по умолчанию), если требуется, чтобы облако projected_points было точной копией входного набора данных за вычетом проекций точек на плоскую модель
Реализует pcl::SampleConsensusModel< PointT >.
Определение в строке 199 файла sac_model_registration.h.
selectWithinDistance()
| overridevirtual |
Выбирает все точки, соответствующие заданным коэффициентам модели, в качестве внутренних точек.
- Параметры
-
[in] model_coefficients матрица преобразования 4x4 [in] threshold максимально допустимый порог расстояния для разделения внутренних и внешних точек [out] inliers полученные внутренние точки модели
Реализует pcl::SampleConsensusModel< PointT >.
Переопределен в pcl::SampleConsensusModelRegistration2D< PointT >.
Определение в строке 147 файла sac_model_registration.hpp.
Ссылки на pcl::geometry::distance().
setInputCloud()
| inlineoverridevirtual |
Задает указатель на входной набор данных.
- Параметры
-
[in] cloud константный разделяемый указатель boost на сообщение PointCloud
Переопределяет реализацию из pcl::SampleConsensusModel< PointT >.
Определение в строке 119 файла sac_model_registration.h.
Ссылки на pcl::SampleConsensusModelRegistration< PointT >::computeOriginalIndexMapping(), pcl::SampleConsensusModelRegistration< PointT >::computeSampleDistanceThreshold() и pcl::SampleConsensusModel< PointT >::setInputCloud().
Используется в pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration() и pcl::SampleConsensusModelRegistration2D< PointT >::SampleConsensusModelRegistration2D().
setInputTarget() [1/2]
| inline |
Задает входное целевое облако точек.
- Параметры
-
[in] target входное целевое облако точек
Определение в строке 130 файла sac_model_registration.h.
Ссылки на pcl::SampleConsensusModelRegistration< PointT >::computeOriginalIndexMapping(), pcl::SampleConsensusModelRegistration< PointT >::indices_tgt_ и pcl::SampleConsensusModelRegistration< PointT >::target_.
Используется в pcl::registration::CorrespondenceRejectorSampleConsensus2D< PointT >::getRemainingCorrespondences().
setInputTarget() [2/2]
| inline |
Задает входное целевое облако точек.
- Параметры
-
[in] target входное целевое облако точек [in] indices_tgt вектор индексов точек из target, которые следует использовать
Определение в строке 145 файла sac_model_registration.h.
Ссылки на pcl::SampleConsensusModelRegistration< PointT >::computeOriginalIndexMapping(), pcl::SampleConsensusModelRegistration< PointT >::indices_tgt_ и pcl::SampleConsensusModelRegistration< PointT >::target_.
Описание данных-членов
correspondences_
| protected |
По индексу в исходном облаке точек возвращает соответствующий исходный индекс в целевом облаке.
Определение в строке 346 файла sac_model_registration.h.
Используется в pcl::SampleConsensusModelRegistration< PointT >::computeOriginalIndexMapping().
indices_tgt_
| protected |
Указатель на вектор индексов целевых точек, которые следует использовать.
Определение в строке 343 файла sac_model_registration.h.
Используется в pcl::SampleConsensusModelRegistration< PointT >::computeOriginalIndexMapping() и pcl::SampleConsensusModelRegistration< PointT >::setInputTarget().
sample_dist_thresh_
| protected |
Внутренний порог расстояния, используемый на этапе выбора выборки.
Определение в строке 349 файла sac_model_registration.h.
Используется в pcl::SampleConsensusModelRegistration< PointT >::computeSampleDistanceThreshold().
target_
| protected |
Разделяемый указатель boost на массив данных целевого облака точек.
Определение в строке 340 файла sac_model_registration.h.
Используется в pcl::SampleConsensusModelRegistration< PointT >::setInputTarget().
Документация этого класса была сгенерирована из следующих файлов:
- pcl/sample_consensus/sac_model_registration.h
- pcl/sample_consensus/impl/sac_model_registration.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_registration.html