Spec-Zone.ru › PointCloudLibrary

IterativeClosestPoint предоставляет базовую реализацию алгоритма Iterative Closest Point. Подробнее...

#include <pcl/registration/icp.h>

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

Публичные типы

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
- Публичные типы, унаследованные от pcl::Registration< PointSource, PointTarget, float >
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 &)
The callback signature to the function updating intermediate source point cloud position during it's registration to the target point cloud. More...
- Public Types inherited from pcl::PCLBase< PointSource >
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
Получить, используются ли взаимные соответствия или нет. Подробнее...
- Общедоступные члены-функции, унаследованные от pcl::Registration< PointSource, PointTarget, float >
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)
Предоставьте указатель на объект 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
Возвратить состояние сходимости после последнего запуска выравнивания. Подробнее...
void align (PointCloudSource &output)
Вызвать алгоритм регистрации, который оценивает преобразование и возвращает преобразованный источник (ввод) как вывод. Подробнее...
void align (PointCloudSource &output, const Matrix4 &guess)
Вызовите алгоритм регистрации, который оценивает преобразование и возвращает преобразованный источник (входные данные) как выходные данные. Подробнее...
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 ()
Очистить список отбрасывателей соответствий. Подробнее...
- Общедоступные методы, унаследованные от pcl::PCLBase< PointSource >
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[] для сокращения кода. Подробнее...

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

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 ()
Просматривает оценщики и отбрасыватели и определяет, нужно ли вызывать их методы установки блобов. Подробнее...
- Защищённые члены функций, унаследованные от pcl::Registration< PointSource, PointTarget, float >
bool searchForNeighbors (const PointCloudSource &cloud, int index, pcl::Indices &indices, std::vector< float > &distances)
Поиск ближайшего соседа заданной точки. Подробнее...
virtual void computeTransformation (PointCloudSource &output, const Matrix4 &guess)=0
Абстрактный метод вычисления преобразования с начальным приближением. Подробнее...
- Защищённые члены функций, унаследованные от pcl::PCLBase< PointSource >
bool initCompute ()
Этот метод должен вызываться перед началом фактического вычисления. Подробнее...
bool deinitCompute ()
Этот метод должен вызываться после завершения фактического вычисления. Подробнее...

Защищенные атрибуты

std::size_t x_idx_offset_
Смещение полей XYZ. Подробнее...
std::size_t y_idx_offset_
std::size_t z_idx_offset_
std::size_t nx_idx_offset_
Смещение полей Normal. Подробнее...
std::size_t ny_idx_offset_
std::size_t nz_idx_offset_
bool use_reciprocal_correspondence_
Тип соответствия, используемый для оценки соответствия. Подробнее...
bool source_has_normals_
Внутренняя проверка, есть ли нормали в исходном наборе данных. Подробнее...
bool target_has_normals_
Внутренняя проверка, есть ли нормали в целевом наборе данных. Подробнее...
bool need_source_blob_
Проверка необходимости различных данных для оценок и исключения. Подробнее...
bool need_target_blob_
- Защищенные атрибуты, унаследованные от pcl::Registration< PointSource, PointTarget, float >
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_
Функция обратного вызова для обновления положения облака исходных точек в процессе его регистрации с облаком целевых точек. Подробнее...
- Защищенные атрибуты, унаследованные от pcl::PCLBase< PointSource >
PointCloudConstPtr input_
Набор данных входного облака точек. Подробнее...
IndicesPtr indices_
Указатель на вектор индексов точек для использования. Подробнее...
bool use_indices_
Устанавливается в значение true, если используются индексы точек. Подробнее...
bool fake_indices_
Если набор индексов не задан, создаётся набор фиктивных индексов, имитирующих входное облако точек. Подробнее...

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

шаблон<typename PointSource, typename PointTarget, typename Scalar = float>
класс pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >

IterativeClosestPoint предоставляет базовую реализацию алгоритма Итеративного Ближайшего Соседства.

Преобразование оценивается на основе разложения по единственному собственному значению (SVD).

Алгоритм имеет несколько критериев завершения:

  1. Количество итераций достигло максимального значения, заданного пользователем (через setMaximumIterations)
  2. Разница (epsilon) между предыдущим преобразованием и текущим оценённым преобразованием меньше заданного пользователем значения (через setTransformationEpsilon)
  3. Сумма квадратов ошибок Евклида меньше заданного пользователем порога (через 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 ();
Автор
Radu B. Rusu, Michael Dixon

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

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

ConstPtr

шаблон<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::ConstPtr = shared_ptr<const IterativeClosestPoint<PointSource, PointTarget, Scalar> >

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

Matrix4

шаблон<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix4 = typename Registration<PointSource, PointTarget, Scalar>::Matrix4

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

PointCloudSource

шаблон<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSource = typename Registration<PointSource, PointTarget, Scalar>::PointCloudSource

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

PointCloudSourceConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr

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

PointCloudSourcePtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSourcePtr = typename PointCloudSource::Ptr

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

PointCloudTarget

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTarget = typename Registration<PointSource, PointTarget, Scalar>::PointCloudTarget

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

PointCloudTargetConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr

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

PointCloudTargetPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTargetPtr = typename PointCloudTarget::Ptr

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

PointIndicesConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointIndicesConstPtr = PointIndices::ConstPtr

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

PointIndicesPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointIndicesPtr = PointIndices::Ptr

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

Ptr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::Ptr = shared_ptr<IterativeClosestPoint<PointSource, PointTarget, Scalar> >

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

Конструктор и деструктор документации

IterativeClosestPoint() [1/3]

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::IterativeClosestPoint ( )
inline

Пустой конструктор.

Определение в строке 145 файла 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]

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::IterativeClosestPoint ( const IterativeClosestPoint< PointSource, PointTarget, Scalar > & )
delete

Из-за convergence_criteria_ , удерживающего ссылки на члены класса, сложно правильно реализовать операции копирования и перемещения.

Это может привести к скрытым ошибкам, и для их предотвращения операции копирования и перемещения для ICP были отключены.

Задача:
: удалить удалённые конструкторы и операции присваивания после решения проблемы

IterativeClosestPoint() [3/3]

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::IterativeClosestPoint ( IterativeClosestPoint< PointSource, PointTarget, Scalar > && )
delete

~IterativeClosestPoint()

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::~IterativeClosestPoint ( )
overridedefault

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

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

computeTransformation()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::computeTransformation ( PointCloudSource & output,
const Matrix4 & guess
)
overrideprotected

Метод вычисления ригидного преобразования с начальным приближением.

Parameters
output преобразованный набор точек входного облака точек с использованием найденного ригидного преобразования
guess начальное приближение преобразования для вычисления

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

Ссылки на pcl::toPCLPointCloud2().

determineRequiredBlobData()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::determineRequiredBlobData
protectedvirtual

Проверяет оценки и методы отбраковки и определяет, нужно ли вызывать их методы установки blob.

Переопределено в pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >.

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

getConvergeCriteria()

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::registration::DefaultConvergenceCriteria<Scalar>::Ptr pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::getConvergeCriteria ( )
inline

Возвращает указатель на DefaultConvergenceCriteria, используемый классом IterativeClosestPoint.

Это позволяет проверить состояние сходимости после метода align(), а также настроить параметры DefaultConvergenceCriteria, недоступные через API ICP до вызова метода align(). Обратите внимание, что метод align устанавливает max_iterations_, euclidean_fitness_epsilon_ и transformation_epsilon_ и, таким образом, переопределяет значения по умолчанию/установленные значения экземпляра DefaultConvergenceCriteria.

Returns
Указатель на DefaultConvergenceCriteria класса IterativeClosestPoint.

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

Ссылки на pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::convergence_criteria_.

getUseReciprocalCorrespondences()

template<typename PointSource , typename PointTarget , typename Scalar = float>
bool pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::getUseReciprocalCorrespondences ( ) const
inline

Получить, используются ли взаимные соответствия.

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

Ссылки на pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::use_reciprocal_correspondence_.

operator=() [1/2]

template<typename PointSource , typename PointTarget , typename Scalar = float>
IterativeClosestPoint& pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::operator= ( const IterativeClosestPoint< PointSource, PointTarget, Scalar > & )
delete

operator=() [2/2]

template<typename PointSource , typename PointTarget , typename Scalar = float>
IterativeClosestPoint& pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::operator= ( IterativeClosestPoint< PointSource, PointTarget, Scalar > && )
delete

setInputSource()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource ( const PointCloudSourceConstPtr & cloud )
inlineoverridevirtual

Предоставьте указатель на исходный вход (например, облако точек, которое мы хотим выровнять с целевым)

Parameters
[in] cloud исходное облако точек

Переопределено из pcl::Registration< PointSource, PointTarget, float >.

Определение в строке 207 файла 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()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget ( const PointCloudTargetConstPtr & cloud )
inlineoverridevirtual

Предоставьте указатель на целевой вход (например, облако точек, к которому мы хотим выровнять входной источник)

Parameters
[in] cloud целевое облако точек

Переопределено из pcl::Registration< PointSource, PointTarget, float >.

Определение в строке 240 файла 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().

setUseReciprocalCorrespondences()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setUseReciprocalCorrespondences ( bool use_reciprocal_correspondence )
inline

Установить, использовать ли взаимную корреспонденцию или нет.

Parameters
[in] use_reciprocal_correspondence использовать ли взаимную корреспонденцию или нет

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

Ссылки на pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::use_reciprocal_correspondence_.

transformCloud()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::transformCloud ( const PointCloudSource & input,
PointCloudSource & output,
const Matrix4 & transform
)
protectedvirtual

Применить жёсткое преобразование к заданному набору данных.

Здесь мы проверяем, имеет ли набор данных нормали поверхности в дополнение к XYZ, и вращаем нормали тоже.

Parameters
[in] input входное облако точек
[out] output результирующее выходное облако точек
[in] transform жёсткое преобразование 4x4
Note
Можно использовать с cloud_in равным cloud_out

Переопределено в pcl::IterativeClosestPointWithNormals< PointSource, PointTarget, Scalar >.

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

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

convergence_criteria_

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::registration::DefaultConvergenceCriteria<Scalar>::Ptr pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::convergence_criteria_

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

Используется в pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::getConvergeCriteria() и pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::IterativeClosestPoint().

need_source_blob_

template<typename PointSource , typename PointTarget , typename Scalar = float>
bool pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::need_source_blob_
protected

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

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

need_target_blob_

template<typename PointSource , typename PointTarget , typename Scalar = float>
bool pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::need_target_blob_
protected

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

nx_idx_offset_

template<typename PointSource , typename PointTarget , typename Scalar = float>
std::size_t pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::nx_idx_offset_
protected

Смещение полей Normal.

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

Используется в pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().

ny_idx_offset_

template<typename PointSource , typename PointTarget , typename Scalar = float>
std::size_t pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::ny_idx_offset_
protected

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

Используется в pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().

nz_idx_offset_

template<typename PointSource , typename PointTarget , typename Scalar = float>
std::size_t pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::nz_idx_offset_
protected

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

Используется в pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().

source_has_normals_

template<typename PointSource , typename PointTarget , typename Scalar = float>
bool pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::source_has_normals_
protected

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

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

Используется в pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().

target_has_normals_

template<typename PointSource , typename PointTarget , typename Scalar = float>
bool pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::target_has_normals_
protected

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

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

Используется в pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget().

use_reciprocal_correspondence_

template<typename PointSource , typename PointTarget , typename Scalar = float>
bool pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::use_reciprocal_correspondence_
protected

Тип соответствия, используемый для оценки соответствия.

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

Используется в pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::getUseReciprocalCorrespondences() и pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setUseReciprocalCorrespondences().

x_idx_offset_

template<typename PointSource , typename PointTarget , typename Scalar = float>
std::size_t pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::x_idx_offset_
protected

Смещение полей XYZ.

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

Используется в pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().

y_idx_offset_

template<typename PointSource , typename PointTarget , typename Scalar = float>
std::size_t pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::y_idx_offset_
protected

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

Используется в pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().

z_idx_offset_

template<typename PointSource , typename PointTarget , typename Scalar = float>
std::size_t pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::z_idx_offset_
protected

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

Используется в pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource().


Документация для этого класса сгенерирована из следующих файлов:
  • pcl/registration/icp.h
  • pcl/registration/impl/icp.hpp

© 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

Spec-Zone.ru

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