Spec-Zone.ru › PointCloudLibrary
FPCSInitialAlignment вычисляет соответствующие наборы четырёх точек, как описано в: "4-points congruent sets for robust pairwise surface registration", Dror Aiger, Niloy Mitra, Daniel Cohen-Or. Подробнее...
#include <pcl/registration/ia_fpcs.h >
END_OF_DOCUMENT_MARKER
int
getMaxComputationTime () const
float
getFitnessScore () const
Registration ()
Пустой конструктор. Подробнее...
~Registration () override=default
деструктор. Подробнее...
void
setTransformationEstimation (const TransformationEstimationPtr &te)
Указать указатель на объект оценки преобразования. Подробнее...
void
setCorrespondenceEstimation (const CorrespondenceEstimationPtr &ce)
Указать указатель на объект оценки соответствия. Подробнее...
virtual void
setInputSource (const PointCloudSourceConstPtr &cloud)
Указать указатель на входной источник (например, облако точек, которое нужно выровнять с целевым). Подробнее...
PointCloudSourceConstPtr const
getInputSource ()
Получить указатель на входное облако точек целевого набора данных. Подробнее...
virtual void
setInputTarget (const PointCloudTargetConstPtr &cloud)
Указать указатель на входной целевой набор данных (например, облако точек, к которому нужно выровнять входной источник) Подробнее...
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 shared pointer к 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)
Вызов алгоритма регистрации, который оценивает преобразование и возвращает преобразованный исходник (ввод) как вывод . Подробнее...
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
computeTransformation (PointCloudSource &output, const Eigen::Matrix4f &guess) override
Метод вычисления ригидного преобразования. Подробнее...
virtual bool
initCompute ()
Инициализация внутренней вычислительной операции. Подробнее...
int
selectBase (pcl::Indices &base_indices, float(&ratio)[2])
Выбор приблизительно компланарного набора из четырех точек из облака исходных точек. Подробнее...
int
selectBaseTriangle (pcl::Indices &base_indices)
Случайный выбор тройки точек с большими расстояниями между точками. Подробнее...
void
setupBase (pcl::Indices &base_indices, float(&ratio)[2])
Настройка базовой области (четыре компланарные точки) путем упорядочения точек и вычисления отношений пересечения и расстояний между отрезками диагоналей базовой области. Подробнее...
float
segmentToSegmentDist (const pcl::Indices &base_indices, float(&ratio)[2])
Вычисление отношений пересечения и расстояний между отрезками диагоналей базовой области. Подробнее...
virtual int
bruteForceCorrespondences (int idx1, int idx2, pcl::Correspondences &pairs)
Поиск пар соответствий точек, учитывая расстояние между двумя базовыми точками. Подробнее...
virtual int
determineBaseMatches (const pcl::Indices &base_indices, std::vector< pcl::Indices > &matches, const pcl::Correspondences &pairs_a, const pcl::Correspondences &pairs_b, const float(&ratio)[2])
Определение соответствий базовой области путем комбинирования кандидатов пар точек и поиска совпадающих точек пересечения с использованием отношений диагональных отрезков базовой области B. Подробнее...
int
checkBaseMatch (const pcl::Indices &match_indices, const float(&ds)[4])
Проверка, подходит ли расстояние внешнего прямоугольника сопоставленных точек к прямоугольнику базовой области. Подробнее...
virtual void
handleMatches (const pcl::Indices &base_indices, std::vector< pcl::Indices > &matches, MatchingCandidates &candidates)
Метод обработки текущих сопоставленных кандидатов. Подробнее...
virtual void
linkMatchWithBase (const pcl::Indices &base_indices, pcl::Indices &match_indices, pcl::Correspondences &correspondences)
Устанавливает соответствия между базовой областью B и соответствием M, используя расстояние каждой точки до центра прямоугольника. Подробнее...
virtual int
validateMatch (const pcl::Indices &base_indices, const pcl::Indices &match_indices, const pcl::Correspondences &correspondences, Eigen::Matrix4f &transformation)
Проверка соответствия путем вычисления преобразования между исходными и целевыми данными на основе четырех сопоставленных точек и сравнения средней квадратичной ошибки (MSE) с пороговым значением. Подробнее...
Максимальное расстояние между двумя последовательными преобразованиями для определения сходимости (определяется пользователем). Подробнее...
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_
Флаг, который, если установлен, означает, что дерево, работающее с исходным облаком, никогда не будет пересчитано. Подробнее...
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
шаблон<typename PointSource, typename PointTarget, typename NormalT = pcl::Normal, typename Scalar = float> класс pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar > FPCSInitialAlignment вычисляет соответствующие наборы четырех точек, как описано в: "4-points congruent sets for robust pairwise surface registration", Dror Aiger, Niloy Mitra, Daniel Cohen-Or.
ACM Transactions on Graphics, том 27(3), 2008
Автор
P.W.Theiler
Определение в строке 81 файла ia_fpcs.h .
FPCSInitialAlignment() шаблон<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Конструктор.
Сбрасывает максимальное количество итераций до 0, тем самым принуждая к внутреннему вычислению, если это не установлено пользователем. Устанавливает количество итераций RANSAC в 1000 и стандартную оценку преобразования в TransformationEstimation3Point .
Определение в строке 135 файла ia_fpcs.hpp .
Ссылки на pcl::Registration< PointSource, PointTarget, float >::max_iterations_ , pcl::Registration< PointSource, PointTarget, float >::ransac_iterations_ , pcl::Registration< PointSource, PointTarget, float >::reg_name_ и pcl::Registration< PointSource, PointTarget, float >::transformation_estimation_ .
~FPCSInitialAlignment() шаблон<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
bruteForceCorrespondences() шаблон<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Поиск соответствующих пар точек, заданных расстоянием между двумя базовыми точками.
Параметры
[in]
idx1
индекс первой текущей базовой сегмента (в облаке исходных точек)
[in]
idx2
индекс второй текущей базовой сегмента (в облаке исходных точек)
[out]
pairs
результирующие пары точек с расстоянием от точки до точки, близким к ref_dist
Возвращает
< 0 соответствующая пара точек не найдена = 0 хотя бы одна пара кандидатных точек найдена
Определение в строке 580 файла ia_fpcs.hpp .
Ссылки на pcl::euclideanDistance() и M_PI .
checkBaseMatch() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Проверка, соответствует ли расстояние внешнего прямоугольника совпадающих точек базовому прямоугольнику.
Parameters
[in]
match_indices
индексы совпадения M
[in]
ds
длина сторон базового прямоугольника B
Returns
< 0 хотя бы одна сторона совпадения M не имеет соответствующей стороны в базовом прямоугольнике B = 0 стороны совпадения M соответствуют сторонам базового прямоугольника B
Определение в строке 716 файла ia_fpcs.hpp .
Ссылки на pcl::euclideanDistance() .
computeTransformation() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
determineBaseMatches() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Определение соответствий базиса путем объединения кандидатных пар точек и поиска совпадающих точек пересечения с использованием отношений диагональных отрезков базового прямоугольника B.
Порог совпадения вычисляется во время инициализации (coincidation_limit_).
Parameters
[in]
base_indices
индексы базового прямоугольника B
[out]
matches
вектор кандидатных совпадений по отношению к базовому прямоугольнику B
[in]
pairs_a
пар точек, соответствующих точкам первой диагонали базового прямоугольника B
[in]
pairs_b
пар точек, соответствующих точкам второй диагонали базового прямоугольника B
[in]
ratio
коэффициенты пересечения диагоналей базовых точек
Returns
< 0 соответствие по основанию не найдено = 0 по крайней мере одно соответствие по основанию найдено
Определение в строке 634 файла ia_fpcs.hpp .
Ссылки на pcl::euclideanDistance() .
finalCompute() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Окончательное вычисление наилучшего соответствия из вектора наилучших соответствий.
Для предотвращения межпотоковых зависимостей во время параллельного выполнения вычислялось наилучшее соответствие для каждой попытки.
Примечание
Для совместимости со старыми версиями кандидаты хранятся в векторах размера 1.
Parameters
[in]
candidates
вектор кандидатных совпадений
Переопределено в pcl::registration::KFPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar > .
Определение в строке 905 файла ia_fpcs.hpp .
getApproxOverlap() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
getDelta() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
getFitnessScore() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
getMaxComputationTime() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
getMaxNormalDifference() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
getNumberOfSamples() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
getNumberOfThreads() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
getScoreThreshold() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
getSourceNormals() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
getTargetIndices() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
getTargetNormals() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
handleMatches() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Метод для обработки текущих сопоставлений кандидатов.
Здесь мы валидируем и оцениваем соответствия относительно базовых данных и сохраняем наилучшее подходящее соответствие (вместе с его оценкой и оцененным преобразованием).
Примечание
Для совместимости с будущими версиями результаты сохраняются в «векторах размером 1».
Параметры
[in]
base_indices
индексы базовых данных B
[in,out]
matches
вектор соответствий кандидатов относительно базовых данных B. Кандидатские соответствия упорядочиваются на этом этапе.
[out]
candidates
вектор, содержащий кандидаты соответствий M
Реализация в pcl::registration::KFPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar > .
Определение в строке 740 файла ia_fpcs.hpp .
initCompute() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
linkMatchWithBase() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Устанавливает соответствия между базовыми данными B и соответствием M, используя расстояние каждой точки до центра прямоугольника.
Параметры
[in]
base_indices
индексы базовых данных B
[in]
match_indices
индексы соответствия M
[out]
correspondences
результирующие соответствия
Определение в строке 778 файла ia_fpcs.hpp .
Ссылки на pcl::compute3DCentroid() и pcl::squaredEuclideanDistance() .
segmentToSegmentDist() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Вычислить коэффициенты пересечения и расстояния между отрезками базовых диагоналей.
Параметры
[in]
base_indices
индексы базы B
[out]
ratio
коэффициенты пересечения диагоналей базовых точек
Возвращает
значение качества пересечения диагонали
Определение в строке 495 файла ia_fpcs.hpp .
selectBase() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Выбрать приблизительно копланарный набор из четырех точек из облака исходных точек.
Параметры
[out]
base_indices
выбранные индексы облака исходных точек, далее используемые в качестве базы (B)
[out]
ratio
два коэффициента пересечения диагоналей (r1,r2) базовых точек
Возвращает
< 0 не найдено копланарных наборов из четырёх точек с достаточным расстоянием между выборками = 0 выбран набор из четырёх совпадающих точек
Определение в строке 348 файла ia_fpcs.hpp .
selectBaseTriangle() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Случайным образом выбрать тройку точек с большими расстояниями между точками.
Минимальное расстояние между выборками точек рассчитывается на основе оценки перекрытия облаков точек во время инициализации.
Параметры
[out]
base_indices
индексы базового треугольника B
Возвращает
< 0 не удалось выбрать треугольник с достаточными расстояниями между сторонами = 0 базовый треугольник успешно выбран
Определение в строке 414 файла ia_fpcs.hpp .
setApproxOverlap() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
setDelta() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
setMaxComputationTime() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
setMaxNormalDifference() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
setNumberOfSamples() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
setNumberOfThreads() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
setScoreThreshold() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
setSourceNormals() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
setTargetIndices() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
setTargetNormals() template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
setupBase() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Настройка базовых (четырёх компланарных точек) путём упорядочения точек и вычисления отношений пересечения и расстояний между отрезками диагоналей основания.
Параметры
[in,out]
base_indices
индексы базовой точки B (будут переупорядочены)
[out]
ratio
отношения пересечения диагоналей базовых точек
Определение в строке 452 файла ia_fpcs.hpp .
validateMatch() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Проверка соответствия путём вычисления преобразования между облаками точек источника и целевой точки на основе четырёх сопоставленных точек и сравнением средней квадратической ошибки (MSE) с пороговым значением.
Предел MSE был рассчитан во время инициализации (max_mse_).
Параметры
[in]
base_indices
индексы базовой точки B
[in]
match_indices
индексы точки соответствия M
[in]
correspondences
соответствия между точками источника и целевой
[out]
transformation
результирующая матрица преобразования
Возвращает
< 0 MSE больше, чем max_mse_ = 0 MSE меньше, чем max_mse_
Определение в строке 831 файла ia_fpcs.hpp .
Ссылки на pcl::squaredEuclideanDistance() и pcl::transformPointCloud() .
validateTransformation() template<typename PointSource , typename PointTarget , typename NormalT , typename Scalar >
Проверка преобразования путём вычисления количества инлайнеров после преобразования облака точек источника.
Полученное значение оценочного показателя подгонки впоследствии используется в качестве критерия выбора лучшего соответствия.
Параметры
[out]
transformation
обновлённая матрица ориентации, использующая все инлайнеры
[out]
fitness_score
текущее наилучшее значение fitness_score
Примечание
Значение оценочного показателя подгонки обновляется только в том случае, если значение показателя для текущего преобразования превышает входное значение.
Возвращает
< 0 если предыдущий результат лучше, чем текущий (оценка остаётся) = 0 текущий результат лучше, чем предыдущий (оценка обновляется)
Реализовано в pcl::registration::KFPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar > .
Определение в строке 863 файла ia_fpcs.hpp .
Ссылки на pcl::transformPointCloud() .
approx_overlap_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
coincidation_limit_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
Максимальное расстояние между совпадающими точками пересечения для поиска допустимых соответствий.
Примечание
Внутренне вычисляется с использованием оценки плотности точек.
Определение в строке 542 файла ia_fpcs.h .
delta_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
diameter_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
Оценённый диаметр облака целевых точек.
Определение в строке 508 файла ia_fpcs.h .
fitness_score_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
max_base_diameter_sqr_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
Оценённая квадратичная метрика перекрытия между source и target.
Примечание
Внутренне вычисляется с использованием оценки перекрытия и границ облака source. Используется для определения минимального расстояния выборки базовых точек, а также для расчёта количества попыток для надёжного поиска правильного соответствия.
Определение в строке 515 файла ia_fpcs.h .
max_edge_diff_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
Максимальное различие между длиной базовых рёбер и рёбрами действительного соответствия.
Примечание
Внутренне вычисляется с использованием оценки плотности точек.
Определение в строке 537 файла ia_fpcs.h .
max_inlier_dist_sqr_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
Максимальное квадратичное расстояние между точками source и target, чтобы считаться внутренним элементом.
Примечание
Внутренне вычисляется с использованием оценки плотности точек.
Определение в строке 552 файла ia_fpcs.h .
max_mse_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
Максимальная среднеквадратическая ошибка преобразования, вычисленная из кандидата на соответствие.
Примечание
Внутренне вычисляется с использованием оценки плотности точек.
Определение в строке 547 файла ia_fpcs.h .
max_norm_diff_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
max_pair_diff_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
Максимальное различие между соответствующими парами точек в источнике и целевом облаках.
Примечание
Внутренне вычисляется с использованием оценки плотности точек.
Определение в строке 532 файла ia_fpcs.h .
max_runtime_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
normalize_delta_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
nr_samples_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
nr_threads_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
score_threshold_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
small_error_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
Определение малой погрешности.
Определение в строке 555 файла ia_fpcs.h .
source_indices_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
Указатель на вектор индексов точек источника для использования после выборки.
Определение в строке 524 файла ia_fpcs.h .
source_normals_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
target_indices_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
target_normals_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
use_normals_ template<typename PointSource , typename PointTarget , typename NormalT = pcl::Normal, typename Scalar = float>
Флаг использования нормалей.
Определение в строке 518 файла ia_fpcs.h .
Документация для данного класса была сгенерирована из следующих файлов: