Spec-Zone.ru › PointCloudLibrary

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

#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 &)
Сигнатура обратного вызова функции, обновляющей положение облака исходных точек на промежуточном этапе его регистрации относительно целевого облака точек. Подробнее...
- Общедоступные типы, унаследованные от 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
Возвращает информацию о том, используются ли взаимные соответствия. Подробнее...
void setNumberOfThreads (unsigned int nr_threads)
Задает количество используемых потоков. Подробнее...
- Общедоступные функции-члены, унаследованные от 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)
Задает общий указатель 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 ()
Очистить список фильтров соответствий. Подробнее...
- Открытые функции-члены, унаследованные от 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 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. Подробнее...
- Защищённые функции-члены, унаследованные от 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_ {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_
- Защищённые атрибуты, унаследованные от 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_
Если набор индексов не задан, создаётся набор фиктивных индексов, соответствующий входному облаку точек. Подробнее...

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

template<typename PointSource, typename PointTarget, typename Scalar = float>
class pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >

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

Преобразование оценивается на основе сингулярного разложения (SVD).

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

  1. Число итераций достигло максимального заданного пользователем числа итераций (с помощью setMaximumIterations)
  2. Эпсилон (разность) между предыдущим преобразованием и текущим оцененным преобразованием меньше заданного пользователем значения (с помощью 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

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

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

ConstPtr

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

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

Matrix4

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

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

PointCloudSource

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

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

PointCloudSourceConstPtr

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

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

PointCloudSourcePtr

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

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

PointCloudTarget

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

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

PointCloudTargetConstPtr

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

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

PointCloudTargetPtr

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

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

PointIndicesConstPtr

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

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

PointIndicesPtr

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

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

Ptr

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

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

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

IterativeClosestPoint() [1/3]

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::IterativeClosestPoint ( )
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]

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

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

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

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

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

Возвращает
Указатель на DefaultConvergenceCriteria класса IterativeClosestPoint.

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

Возвращает, используются ли взаимные соответствия.

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

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

Параметры
[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()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget ( const PointCloudTargetConstPtr & cloud )
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()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setNumberOfThreads ( unsigned int nr_threads )
inline

Задает количество используемых потоков.

Параметры
nr_threads количество используемых аппаратных потоков (0 возвращает значение в автоматический режим)

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

Ссылается на pcl::Registration< PointSource, PointTarget, float >::correspondence_estimation_.

setUseReciprocalCorrespondences()

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

Задает, следует ли использовать взаимные соответствия.

Параметры
[in] use_reciprocal_correspondence указывает, следует ли использовать взаимные соответствия

Определение в строке 252 файла 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 нормали поверхности, и при наличии нормалей они также поворачиваются.

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

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

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

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

convergence_criteria_

template<typename PointSource , typename PointTarget , typename Scalar = float>
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_

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

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

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

need_target_blob_

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

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

nx_idx_offset_

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

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

Определение в строке 304 файла 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_ {0}

Определение в строке 304 файла 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_ {0}

Определение в строке 304 файла 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_ {false}
protected

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

Определение в строке 310 файла 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_ {false}
protected

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

Определение в строке 312 файла 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_ {false}
protected

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

Определение в строке 307 файла 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_ {0}
protected

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

Определение в строке 301 файла 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_ {0}
protected

Определение в строке 301 файла 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_ {0}
protected

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