IterativeClosestPoint предоставляет базовую реализацию алгоритма итеративного ближайшего соседа. Подробнее...
#include <pcl/registration/icp.h>
Общедоступные типы | |
| using | PointCloudSource = typename Registration< PointSource, PointTarget, Scalar >::PointCloudSource |
| using | PointCloudSourcePtr = typename PointCloudSource::Ptr |
| using | PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr |
| using | PointCloudTarget = typename Registration< PointSource, PointTarget, Scalar >::PointCloudTarget |
| using | PointCloudTargetPtr = typename PointCloudTarget::Ptr |
| using | PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr |
| using | PointIndicesPtr = PointIndices::Ptr |
| using | PointIndicesConstPtr = PointIndices::ConstPtr |
| using | Ptr = shared_ptr< IterativeClosestPoint< PointSource, PointTarget, Scalar > > |
| using | ConstPtr = shared_ptr< const IterativeClosestPoint< PointSource, PointTarget, Scalar > > |
| using | Matrix4 = typename Registration< PointSource, PointTarget, Scalar >::Matrix4 |
|
| |
| using | Matrix4 = Eigen::Matrix< float, 4, 4 > |
| using | Ptr = shared_ptr< Registration< PointSource, PointTarget, float > > |
| using | ConstPtr = shared_ptr< const Registration< PointSource, PointTarget, float > > |
| using | CorrespondenceRejectorPtr = pcl::registration::CorrespondenceRejector::Ptr |
| using | KdTree = pcl::search::KdTree< PointTarget > |
| using | KdTreePtr = typename KdTree::Ptr |
| using | KdTreeReciprocal = pcl::search::KdTree< PointSource > |
| using | KdTreeReciprocalPtr = typename KdTreeReciprocal::Ptr |
| using | PointCloudSource = pcl::PointCloud< PointSource > |
| using | PointCloudSourcePtr = typename PointCloudSource::Ptr |
| using | PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr |
| using | PointCloudTarget = pcl::PointCloud< PointTarget > |
| using | PointCloudTargetPtr = typename PointCloudTarget::Ptr |
| using | PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr |
| using | PointRepresentationConstPtr = typename KdTree::PointRepresentationConstPtr |
| using | TransformationEstimation = typename pcl::registration::TransformationEstimation< PointSource, PointTarget, float > |
| using | TransformationEstimationPtr = typename TransformationEstimation::Ptr |
| using | TransformationEstimationConstPtr = typename TransformationEstimation::ConstPtr |
| using | CorrespondenceEstimation = pcl::registration::CorrespondenceEstimationBase< PointSource, PointTarget, float > |
| using | CorrespondenceEstimationPtr = typename CorrespondenceEstimation::Ptr |
| using | CorrespondenceEstimationConstPtr = typename CorrespondenceEstimation::ConstPtr |
| using | UpdateVisualizerCallbackSignature = void(const pcl::PointCloud< PointSource > &, const pcl::Indices &, const pcl::PointCloud< PointTarget > &, const pcl::Indices &) |
| Сигнатура обратного вызова функции, обновляющей положение облака исходных точек на промежуточном этапе его регистрации относительно целевого облака точек. Подробнее... |
|
|
| |
| using | PointCloud = pcl::PointCloud< PointSource > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | PointIndicesPtr = PointIndices::Ptr |
| using | PointIndicesConstPtr = PointIndices::ConstPtr |
Общедоступные функции-члены | |
| IterativeClosestPoint () | |
| Пустой конструктор. Подробнее... |
|
| IterativeClosestPoint (const IterativeClosestPoint &)=delete | |
Поскольку convergence_criteria_ содержит ссылки на члены класса, корректно реализовать операции копирования и перемещения непросто. Подробнее... |
|
| IterativeClosestPoint (IterativeClosestPoint &&)=delete | |
| IterativeClosestPoint & | operator= (const IterativeClosestPoint &)=delete |
| IterativeClosestPoint & | operator= (IterativeClosestPoint &&)=delete |
| ~IterativeClosestPoint () override=default | |
| Пустой деструктор. Подробнее... |
|
| pcl::registration::DefaultConvergenceCriteria< Scalar >::Ptr | getConvergeCriteria () |
| Возвращает указатель на DefaultConvergenceCriteria, используемый классом IterativeClosestPoint. Подробнее... |
|
| void | setInputSource (const PointCloudSourceConstPtr &cloud) override |
| Задает указатель на исходные входные данные (например, облако точек, которое требуется совместить с целевым облаком). Подробнее... |
|
| void | setInputTarget (const PointCloudTargetConstPtr &cloud) override |
| Задает указатель на целевые входные данные (например, облако точек, с которым требуется совместить исходное облако). Подробнее... |
|
| void | setUseReciprocalCorrespondences (bool use_reciprocal_correspondence) |
| Задает, следует ли использовать взаимные соответствия. Подробнее... |
|
| bool | getUseReciprocalCorrespondences () const |
| Возвращает информацию о том, используются ли взаимные соответствия. Подробнее... |
|
| void | setNumberOfThreads (unsigned int nr_threads) |
| Задает количество используемых потоков. Подробнее... |
|
|
| |
| Registration () | |
| Пустой конструктор. Подробнее... |
|
| ~Registration () override=default | |
| Деструктор. Подробнее... |
|
| void | setTransformationEstimation (const TransformationEstimationPtr &te) |
| Задает указатель на объект оценки преобразования. Подробнее... |
|
| void | setCorrespondenceEstimation (const CorrespondenceEstimationPtr &ce) |
| Задает указатель на объект оценки соответствий. Подробнее... |
|
| PointCloudSourceConstPtr const | getInputSource () |
| Возвращает указатель на целевой набор входных облаков точек. Подробнее... |
|
| PointCloudTargetConstPtr const | getInputTarget () |
| Возвращает указатель на целевой набор входных облаков точек. Подробнее... |
|
| void | setSearchMethodTarget (const KdTreePtr &tree, bool force_no_recompute=false) |
| Задает указатель на объект поиска, используемый для поиска соответствий в целевом облаке. Подробнее... |
|
| KdTreePtr | getSearchMethodTarget () const |
| Возвращает указатель на метод поиска, используемый для поиска соответствий в целевом облаке. Подробнее... |
|
| void | setSearchMethodSource (const KdTreeReciprocalPtr &tree, bool force_no_recompute=false) |
| Задает указатель на объект поиска, используемый для поиска соответствий в исходном облаке (обычно применяется при поиске взаимных соответствий). Подробнее... |
|
| KdTreeReciprocalPtr | getSearchMethodSource () const |
| Возвращает указатель на метод поиска, используемый для поиска соответствий в исходном облаке. Подробнее... |
|
| Matrix4 | getFinalTransformation () |
| Возвращает итоговую матрицу преобразования, оцененную методом регистрации. Подробнее... |
|
| Matrix4 | getLastIncrementalTransformation () |
| Возвращает последнюю матрицу приращения преобразования, оцененную методом регистрации. Подробнее... |
|
| void | setMaximumIterations (int nr_iterations) |
| Задает максимальное количество итераций внутренней оптимизации. Подробнее... |
|
| int | getMaximumIterations () |
| Возвращает заданное пользователем максимальное количество итераций внутренней оптимизации. Подробнее... |
|
| void | setRANSACIterations (int ransac_iterations) |
| Задает количество итераций алгоритма RANSAC. Подробнее... |
|
| double | getRANSACIterations () |
| Возвращает заданное пользователем количество итераций алгоритма RANSAC. Подробнее... |
|
| void | setRANSACOutlierRejectionThreshold (double inlier_threshold) |
| Задает пороговое расстояние для точек-выбросов во внутреннем цикле отбраковки выбросов RANSAC. Подробнее... |
|
| double | getRANSACOutlierRejectionThreshold () |
| Возвращает заданный пользователем порог расстояния для точек-выбросов во внутреннем цикле отбраковки выбросов. Подробнее... |
|
| void | setMaxCorrespondenceDistance (double distance_threshold) |
| Задает максимальное пороговое расстояние между двумя соответствующими точками исходного и целевого облаков. Подробнее... |
|
| double | getMaxCorrespondenceDistance () |
| Возвращает максимальное пороговое расстояние между двумя соответствующими точками исходного и целевого облаков. Подробнее... |
|
| void | setTransformationEpsilon (double epsilon) |
| Задает эпсилон преобразования (максимально допустимую разность квадратов перемещений между двумя последовательными преобразованиями), при которой оптимизация считается достигшей итогового решения. Подробнее... |
|
| double | getTransformationEpsilon () |
| Возвращает заданный пользователем эпсилон преобразования (максимально допустимую разность квадратов перемещений между двумя последовательными преобразованиями). Подробнее... |
|
| void | setTransformationRotationEpsilon (double epsilon) |
| Задает эпсилон вращения преобразования (максимально допустимую разность вращений между двумя последовательными преобразованиями), при которой оптимизация считается достигшей итогового решения. Подробнее... |
|
| double | getTransformationRotationEpsilon () |
| Возвращает заданный пользователем эпсилон вращения преобразования (максимально допустимую разность между двумя последовательными преобразованиями; эпсилон — это cos угла в представлении ось–угол). Подробнее... |
|
| void | setEuclideanFitnessEpsilon (double epsilon) |
| Задает максимально допустимую евклидову ошибку между двумя последовательными шагами цикла ICP, при превышении которой алгоритм считается сошедшимся. Подробнее... |
|
| double | getEuclideanFitnessEpsilon () |
| Возвращает заданную пользователем максимально допустимую ошибку расстояния, при достижении которой алгоритм считается сошедшимся. Подробнее... |
|
| void | setPointRepresentation (const PointRepresentationConstPtr &point_representation) |
| Задает общий указатель Boost на PointRepresentation, который будет использоваться при сравнении точек. Подробнее... |
|
| bool | registerVisualizationCallback (std::function< UpdateVisualizerCallbackSignature > &visualizerCallback) |
| Зарегистрировать пользовательскую функцию обратного вызова, которая будет вызываться из потока регистрации для обновления облака точек, полученного после каждой итерации. Подробнее... |
|
| double | getFitnessScore (double max_range=std::numeric_limits< double >::max()) |
| Получить евклидову оценку соответствия (например, среднее значение квадратов расстояний от исходного набора до целевого). Подробнее... |
|
| double | getFitnessScore (const std::vector< float > &distances_a, const std::vector< float > &distances_b) |
| Получить евклидову оценку соответствия (например, среднее значение квадратов расстояний от исходного набора до целевого) на основе двух наборов расстояний соответствующих точек (расстояний между точками исходного и целевого наборов). Подробнее... |
|
| bool | hasConverged () const |
| Вернуть состояние сходимости после последнего вызова align. Подробнее... |
|
| void | align (PointCloudSource &output) |
| Вызвать алгоритм регистрации, который вычисляет преобразование и возвращает преобразованный исходный набор (входные данные) в output. Подробнее... |
|
| void | align (PointCloudSource &output, const Matrix4 &guess) |
| Вызвать алгоритм регистрации, который вычисляет преобразование и возвращает преобразованный исходный набор (входные данные) в output. Подробнее... |
|
| const std::string & | getClassName () const |
| Метод абстрактного класса для получения имени. Подробнее... |
|
| bool | initCompute () |
| Инициализация внутренних вычислений. Подробнее... |
|
| bool | initComputeReciprocal () |
| Внутренние вычисления, необходимые для обратного поиска. Подробнее... |
|
| void | addCorrespondenceRejector (const CorrespondenceRejectorPtr &rejector) |
| Добавить новый фильтр соответствий в список. Подробнее... |
|
| std::vector< CorrespondenceRejectorPtr > | getCorrespondenceRejectors () |
| Получить список фильтров соответствий. Подробнее... |
|
| bool | removeCorrespondenceRejector (unsigned int i) |
| Удалить i-й фильтр соответствий из списка. Подробнее... |
|
| void | clearCorrespondenceRejectors () |
| Очистить список фильтров соответствий. Подробнее... |
|
|
| |
| PCLBase () | |
| Конструктор без параметров. Подробнее... |
|
| PCLBase (const PCLBase &base) | |
| Конструктор копирования. Подробнее... |
|
| virtual | ~PCLBase ()=default |
| Деструктор. Подробнее... |
|
| virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
| Передать указатель на входной набор данных. Подробнее... |
|
| PointCloudConstPtr const | getInputCloud () const |
| Получить указатель на входной набор данных облака точек. Подробнее... |
|
| virtual void | setIndices (const IndicesPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (const IndicesConstPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (const PointIndicesConstPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols) |
| Задать индексы точек, расположенных в интересующей области облака точек. Подробнее... |
|
| IndicesPtr | getIndices () |
| Получить указатель на используемый вектор индексов. Подробнее... |
|
| IndicesConstPtr const | getIndices () const |
| Получить указатель на используемый вектор индексов. Подробнее... |
|
| const PointSource & | operator[] (std::size_t pos) const |
| Переопределить оператор PointCloud operator[] для сокращения кода. Подробнее... |
|
Открытые атрибуты | |
| pcl::registration::DefaultConvergenceCriteria< Scalar >::Ptr | convergence_criteria_ |
Защищённые функции-члены | |
| virtual void | transformCloud (const PointCloudSource &input, PointCloudSource &output, const Matrix4 &transform) |
| Применить жёсткое преобразование к заданному набору данных. Подробнее... |
|
| void | computeTransformation (PointCloudSource &output, const Matrix4 &guess) override |
| Метод вычисления жёсткого преобразования с начальным приближением. Подробнее... |
|
| virtual void | determineRequiredBlobData () |
| Проверяет средства вычисления и фильтры, определяя, нужно ли вызывать для них методы задания blob. Подробнее... |
|
|
| |
| bool | searchForNeighbors (const PointCloudSource &cloud, int index, pcl::Indices &indices, std::vector< float > &distances) |
| Найти ближайшего соседа для заданной точки. Подробнее... |
|
| virtual void | computeTransformation (PointCloudSource &output, const Matrix4 &guess)=0 |
| Абстрактный метод вычисления преобразования с начальным приближением. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод следует вызывать перед началом фактических вычислений. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод следует вызывать после завершения фактических вычислений. Подробнее... |
|
Защищённые атрибуты | |
| std::size_t | x_idx_offset_ {0} |
| Смещение полей XYZ. Подробнее... |
|
| std::size_t | y_idx_offset_ {0} |
| std::size_t | z_idx_offset_ {0} |
| std::size_t | nx_idx_offset_ {0} |
|
Нормаль: смещение полей. Подробнее... |
|
| std::size_t | ny_idx_offset_ {0} |
| std::size_t | nz_idx_offset_ {0} |
| bool | use_reciprocal_correspondence_ {false} |
| Тип соответствий, используемый для оценки соответствий. Подробнее... |
|
| bool | source_has_normals_ {false} |
| Внутренняя проверка наличия нормалей в исходном наборе данных. Подробнее... |
|
| bool | target_has_normals_ {false} |
| Внутренняя проверка наличия нормалей в целевом наборе данных. Подробнее... |
|
| bool | need_source_blob_ |
| Проверяет, нужны ли оценщикам и фильтрам отбраковки различные данные. Подробнее... |
|
| bool | need_target_blob_ |
|
| |
| std::string | reg_name_ |
| Имя метода регистрации. Подробнее... |
|
| KdTreePtr | tree_ |
| Указатель на объект пространственного поиска. Подробнее... |
|
| KdTreeReciprocalPtr | tree_reciprocal_ |
| Указатель на объект пространственного поиска исходного набора данных. Подробнее... |
|
| int | nr_iterations_ |
| Число итераций внутренней оптимизации (используется внутри класса). Подробнее... |
|
| int | max_iterations_ |
| Максимальное число итераций внутренней оптимизации. Подробнее... |
|
| int | ransac_iterations_ |
| Число итераций алгоритма RANSAC. Подробнее... |
|
| PointCloudTargetConstPtr | target_ |
| Целевой набор входных облаков точек. Подробнее... |
|
| Matrix4 | final_transformation_ |
| Итоговая матрица преобразования, оценённая методом регистрации после N итераций. Подробнее... |
|
| Matrix4 | transformation_ |
| Матрица преобразования, оценённая методом регистрации. Подробнее... |
|
| Matrix4 | previous_transformation_ |
| Предыдущая матрица преобразования, оценённая методом регистрации (используется внутри класса). Подробнее... |
|
| double | transformation_epsilon_ |
| Максимальная разница между двумя последовательными преобразованиями для признания сходимости (задаётся пользователем). Подробнее... |
|
| double | transformation_rotation_epsilon_ |
| Максимальная разница углов поворота между двумя последовательными преобразованиями для признания сходимости (задаётся пользователем). Подробнее... |
|
| double | euclidean_fitness_epsilon_ |
| Максимально допустимая евклидова ошибка между двумя последовательными шагами цикла ICP, при достижении которой алгоритм считается сошедшимся. Подробнее... |
|
| double | corr_dist_threshold_ |
| Максимальный порог расстояния между соответствующими точками исходного и целевого наборов. Подробнее... |
|
| double | inlier_threshold_ |
| Порог расстояния для внутренних выбросов во внутреннем цикле отбраковки выбросов RANSAC. Подробнее... |
|
| bool | converged_ |
| Хранит внутреннее состояние сходимости с учётом параметров пользователя. Подробнее... |
|
| unsigned int | min_number_correspondences_ |
| Минимальное число соответствий, необходимое алгоритму перед оценкой преобразования. Подробнее... |
|
| CorrespondencesPtr | correspondences_ |
| Набор соответствий, определённых на этом шаге ICP. Подробнее... |
|
| TransformationEstimationPtr | transformation_estimation_ |
| Объект TransformationEstimation, используемый для вычисления жёсткого преобразования 4x4. Подробнее... |
|
| CorrespondenceEstimationPtr | correspondence_estimation_ |
| Объект CorrespondenceEstimation, используемый для оценки соответствий между исходным и целевым облаками. Подробнее... |
|
| std::vector< CorrespondenceRejectorPtr > | correspondence_rejectors_ |
| Список используемых фильтров отбраковки соответствий. Подробнее... |
|
| bool | target_cloud_updated_ |
| Переменная, показывающая, появилось ли новое целевое облако и требуется ли повторная предварительная обработка. Подробнее... |
|
| bool | source_cloud_updated_ |
| Переменная, показывающая, появилось ли новое исходное облако и требуется ли повторная предварительная обработка. Подробнее... |
|
| bool | force_no_recompute_ |
| Флаг, который при установке запрещает повторное вычисление дерева для целевого облака. Подробнее... |
|
| bool | force_no_recompute_reciprocal_ |
| Флаг, который при установке запрещает повторное вычисление дерева для исходного облака. Подробнее... |
|
| std::function< UpdateVisualizerCallbackSignature > | update_visualizer_ |
| Функция обратного вызова для обновления положения промежуточного исходного облака точек во время его регистрации относительно целевого облака точек. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| Входной набор облаков точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор используемых индексов точек. Подробнее... |
|
| bool | use_indices_ |
| Установите значение true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, создаётся набор фиктивных индексов, соответствующий входному облаку точек. Подробнее... |
|
Подробное описание
template<typename PointSource, typename PointTarget, typename Scalar = float>
class pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >
IterativeClosestPoint предоставляет базовую реализацию алгоритма итеративного ближайшего соседа.
Преобразование оценивается на основе сингулярного разложения (SVD).
Алгоритм имеет несколько критериев остановки:
- Число итераций достигло максимального заданного пользователем числа итераций (с помощью setMaximumIterations)
- Эпсилон (разность) между предыдущим преобразованием и текущим оцененным преобразованием меньше заданного пользователем значения (с помощью setTransformationEpsilon)
- Сумма квадратов евклидовых ошибок меньше заданного пользователем порогового значения (с помощью setEuclideanFitnessEpsilon)
Пример использования:
IterativeClosestPoint<PointXYZ, PointXYZ> icp; // Set the input source and target icp.setInputSource (cloud_source); icp.setInputTarget (cloud_target); // Set the max correspondence distance to 5cm (e.g., correspondences with higher // distances will be ignored) icp.setMaxCorrespondenceDistance (0.05); // Set the maximum number of iterations (criterion 1) icp.setMaximumIterations (50); // Set the transformation epsilon (criterion 2) icp.setTransformationEpsilon (1e-8); // Set the euclidean distance difference epsilon (criterion 3) icp.setEuclideanFitnessEpsilon (1); // Perform the alignment icp.align (cloud_source_registered); // Obtain the transformation that aligned cloud_source to cloud_source_registered Eigen::Matrix4f transformation = icp.getFinalTransformation ();
Документация определений типов-членов
ConstPtr
| using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::ConstPtr = shared_ptr<const IterativeClosestPoint<PointSource, PointTarget, Scalar> > |
Matrix4
| using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix4 = typename Registration<PointSource, PointTarget, Scalar>::Matrix4 |
PointCloudSource
| using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSource = typename Registration<PointSource, PointTarget, Scalar>::PointCloudSource |
PointCloudSourceConstPtr
| using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr |
PointCloudSourcePtr
| using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSourcePtr = typename PointCloudSource::Ptr |
PointCloudTarget
| using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTarget = typename Registration<PointSource, PointTarget, Scalar>::PointCloudTarget |
PointCloudTargetConstPtr
| using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr |
PointCloudTargetPtr
| using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTargetPtr = typename PointCloudTarget::Ptr |
PointIndicesConstPtr
| using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointIndicesConstPtr = PointIndices::ConstPtr |
PointIndicesPtr
| using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointIndicesPtr = PointIndices::Ptr |
Ptr
| using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::Ptr = shared_ptr<IterativeClosestPoint<PointSource, PointTarget, Scalar> > |
Документация конструкторов и деструктора
IterativeClosestPoint() [1/3]
| inline |
Пустой конструктор.
Определение в строке 146 файла icp.h.
Ссылается на pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::convergence_criteria_, pcl::Registration< PointSource, PointTarget, float >::correspondence_estimation_, pcl::Registration< PointSource, PointTarget, float >::correspondences_, pcl::Registration< PointSource, PointTarget, float >::nr_iterations_, pcl::Registration< PointSource, PointTarget, float >::reg_name_, pcl::Registration< PointSource, PointTarget, float >::transformation_ и pcl::Registration< PointSource, PointTarget, float >::transformation_estimation_.
IterativeClosestPoint() [2/3]
| delete |
Поскольку convergence_criteria_ хранит ссылки на члены класса, корректно реализовать операции копирования и перемещения непросто.
Это может привести к трудноуловимым ошибкам; чтобы предотвратить их, эти операции для ICP отключены.
- Задача:
- : удалите удалённые конструкторы и операции присваивания после устранения проблемы
IterativeClosestPoint() [3/3]
| delete |
~IterativeClosestPoint()
| overridedefault |
Пустой деструктор.
Документация методов-членов
computeTransformation()
| overrideprotected |
Вычисление жёсткого преобразования с начальным приближением.
- Параметры
-
output преобразованный набор входных облаков точек с использованием найденного жёсткого преобразования guess начальное приближение преобразования, которое нужно вычислить
Определение в строке 115 файла icp.hpp.
Ссылается на pcl::toPCLPointCloud2().
determineRequiredBlobData()
| protectedvirtual |
Проверяет оцениватели и фильтры отклонения и определяет, нужно ли вызывать их методы задания blob-данных.
Переопределён в pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >.
getConvergeCriteria()
| inline |
Возвращает указатель на DefaultConvergenceCriteria, используемый классом IterativeClosestPoint.
Это позволяет проверить состояние сходимости после вызова метода align(), а также настроить параметры DefaultConvergenceCriteria, недоступные через API ICP, до вызова метода align(). Обратите внимание, что метод align задаёт max_iterations_, euclidean_fitness_epsilon_ и transformation_epsilon_, поэтому он переопределяет значения по умолчанию или заданные значения экземпляра DefaultConvergenceCriteria.
- Возвращает
- Указатель на DefaultConvergenceCriteria класса IterativeClosestPoint.
Определение в строке 188 файла icp.h.
Ссылается на pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::convergence_criteria_.
getUseReciprocalCorrespondences()
| inline |
Возвращает, используются ли взаимные соответствия.
Определение в строке 259 файла icp.h.
Ссылается на pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::use_reciprocal_correspondence_.
operator=() [1/2]
| delete |
operator=() [2/2]
| delete |
setInputSource()
| inlineoverridevirtual |
Передаёт указатель на входной источник (например, облако точек, которое требуется совместить с целевым облаком)
- Параметры
-
[in] cloud входное облако точек-источник
Переопределяет метод из pcl::Registration< PointSource, PointTarget, float >.
Определение в строке 199 файла icp.h.
Ссылается на pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::nx_idx_offset_, pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::ny_idx_offset_, pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::nz_idx_offset_, pcl::Registration< PointSource, PointTarget, Scalar >::setInputSource(), pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::source_has_normals_, pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::x_idx_offset_, pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::y_idx_offset_ и pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::z_idx_offset_.
Используется в pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::addInputSource(), pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::computeTransformation() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().
setInputTarget()
| inlineoverridevirtual |
Предоставляет указатель на входное целевое облако (например, облако точек, к которому необходимо выровнять исходное входное облако)
- Параметры
-
[in] cloud входное целевое облако точек
Переопределено из pcl::Registration< PointSource, PointTarget, float >.
Определение в строке 232 файла icp.h.
Ссылается на pcl::Registration< PointSource, PointTarget, Scalar >::setInputTarget() и pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::target_has_normals_.
Используется в pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::addInputTarget(), pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::computeTransformation() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget().
setNumberOfThreads()
| inline |
Задает количество используемых потоков.
- Параметры
-
nr_threads количество используемых аппаратных потоков (0 возвращает значение в автоматический режим)
Определение в строке 269 файла icp.h.
Ссылается на pcl::Registration< PointSource, PointTarget, float >::correspondence_estimation_.
setUseReciprocalCorrespondences()
| inline |
Задает, следует ли использовать взаимные соответствия.
- Параметры
-
[in] use_reciprocal_correspondence указывает, следует ли использовать взаимные соответствия
Определение в строке 252 файла icp.h.
Ссылается на pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::use_reciprocal_correspondence_.
transformCloud()
| protectedvirtual |
Применяет жесткое преобразование к заданному набору данных.
Здесь проверяется, содержит ли набор данных помимо XYZ нормали поверхности, и при наличии нормалей они также поворачиваются.
- Параметры
-
[in] input входное облако точек [out] output результирующее выходное облако точек [in] transform жесткое преобразование 4x4
- Примечание
- Можно использовать, если cloud_in равно cloud_out
Переопределено в pcl::IterativeClosestPointWithNormals< PointSource, PointTarget, Scalar >.
Документация по данным-членам
convergence_criteria_
| pcl::registration::DefaultConvergenceCriteria<Scalar>::Ptr pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::convergence_criteria_ |
Определение в строке 142 файла icp.h.
На него ссылаются pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::getConvergeCriteria() и pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::IterativeClosestPoint().
need_source_blob_
| protected |
need_target_blob_
| protected |
nx_idx_offset_
| protected |
Смещение поля Normal.
Определение в строке 304 файла icp.h.
На него ссылается pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().
ny_idx_offset_
|
Определение в строке 304 файла icp.h.
На него ссылается pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().
nz_idx_offset_
|
Определение в строке 304 файла icp.h.
На него ссылается pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().
source_has_normals_
| protected |
Внутренняя проверка наличия нормалей в исходном наборе данных.
Определение в строке 310 файла icp.h.
На него ссылается pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().
target_has_normals_
| protected |
Внутренняя проверка наличия нормалей в целевом наборе данных.
Определение в строке 312 файла icp.h.
На него ссылается pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget().
use_reciprocal_correspondence_
| protected |
Тип соответствий, используемый для оценки соответствий.
Определение в строке 307 файла icp.h.
На него ссылаются pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::getUseReciprocalCorrespondences() и pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setUseReciprocalCorrespondences().
x_idx_offset_
| protected |
Смещение полей XYZ.
Определение в строке 301 файла icp.h.
На него ссылается pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().
y_idx_offset_
| protected |
Определение в строке 301 файла icp.h.
На него ссылается pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().
z_idx_offset_
| protected |
Определение в строке 301 файла icp.h.
На него ссылается pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().
Документация этого класса была сгенерирована на основе следующих файлов:
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_iterative_closest_point.html