Spec-Zone.ru › PointCloudLibrary

MovingLeastSquares представляет реализацию алгоритма MLS (Moving Least Squares) для сглаживания данных и улучшения оценки нормалей. Подробнее...

#include <pcl/surface/mls.h>

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

Вложенные классы

class MLSVoxelGrid
Минималистичная реализация воксельной сетки, необходимая для увеличения плотности облака точек. Подробнее...

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

enum UpsamplingMethod {
NONE , DISTINCT_CLOUD , SAMPLE_LOCAL_PLANE , RANDOM_UNIFORM_DENSITY ,
VOXEL_GRID_DILATION
}
using Ptr = shared_ptr< MovingLeastSquares< PointInT, PointOutT > >
using ConstPtr = shared_ptr< const MovingLeastSquares< PointInT, PointOutT > >
using KdTree = pcl::search::Search< PointInT >
using KdTreePtr = typename KdTree::Ptr
using NormalCloud = pcl::PointCloud< pcl::Normal >
using NormalCloudPtr = NormalCloud::Ptr
using PointCloudOut = pcl::PointCloud< PointOutT >
using PointCloudOutPtr = typename PointCloudOut::Ptr
using PointCloudOutConstPtr = typename PointCloudOut::ConstPtr
using PointCloudIn = pcl::PointCloud< PointInT >
using PointCloudInPtr = typename PointCloudIn::Ptr
using PointCloudInConstPtr = typename PointCloudIn::ConstPtr
using SearchMethod = std::function< int(pcl::index_t, double, pcl::Indices &, std::vector< float > &)>
- Общедоступные типы, унаследованные от pcl::CloudSurfaceProcessing< PointInT, PointOutT >
using Ptr = shared_ptr< CloudSurfaceProcessing< PointInT, PointOutT > >
using ConstPtr = shared_ptr< const CloudSurfaceProcessing< PointInT, PointOutT > >
- Общедоступные типы, унаследованные от pcl::PCLBase< PointInT >
using PointCloud = pcl::PointCloud< PointInT >
using PointCloudPtr = typename PointCloud::Ptr
using PointCloudConstPtr = typename PointCloud::ConstPtr
using PointIndicesPtr = PointIndices::Ptr
using PointIndicesConstPtr = PointIndices::ConstPtr

Открытые функции-члены

MovingLeastSquares ()
Пустой конструктор. Подробнее...
~MovingLeastSquares () override=default
Пустой деструктор. Подробнее...
void setComputeNormals (bool compute_normals)
Задать, должен ли алгоритм также сохранять вычисленные нормали. Подробнее...
void setSearchMethod (const KdTreePtr &tree)
Передать указатель на объект поиска. Подробнее...
KdTreePtr getSearchMethod () const
Получить указатель на используемый метод поиска. Подробнее...
void setPolynomialOrder (int order)
Задать порядок аппроксимирующего полинома. Подробнее...
int getPolynomialOrder () const
Получить порядок аппроксимирующего полинома. Подробнее...
void setSearchRadius (double radius)
Задать радиус сферы для определения k ближайших соседей, используемых при аппроксимации. Подробнее...
double getSearchRadius () const
Получить радиус сферы, используемый для определения k ближайших соседей. Подробнее...
void setSqrGaussParam (double sqr_gauss_param)
Задать параметр весовой функции, зависящей от расстояния до соседей (обычно лучше всего подходит квадрат радиуса поиска). Подробнее...
double getSqrGaussParam () const
Получить параметр весовой функции, зависящей от расстояния до соседей. Подробнее...
void setUpsamplingMethod (UpsamplingMethod method)
Задать метод увеличения плотности выборки. Подробнее...
void setDistinctCloud (PointCloudInConstPtr distinct_cloud)
Задать отдельное облако точек, используемое методом увеличения плотности выборки DISTINCT_CLOUD. Подробнее...
PointCloudInConstPtr getDistinctCloud () const
Получить отдельное облако точек, используемое методом увеличения плотности выборки DISTINCT_CLOUD. Подробнее...
void setUpsamplingRadius (double radius)
Задать радиус окружности в локальной плоскости точки, по которой будут располагаться точки выборки. Подробнее...
double getUpsamplingRadius () const
Получить радиус окружности в локальной плоскости точки, по которой будут располагаться точки выборки. Подробнее...
void setUpsamplingStepSize (double step_size)
Задать шаг дискретизации локальной плоскости. Подробнее...
double getUpsamplingStepSize () const
Получить шаг дискретизации локальной плоскости. Подробнее...
void setPointDensity (int desired_num_points_in_radius)
Задать желаемое количество точек в пределах радиуса поиска. Подробнее...
int getPointDensity () const
Получить параметр, задающий желаемое количество точек в пределах радиуса поиска. Подробнее...
void setDilationVoxelSize (float voxel_size)
Задать размер вокселя для воксельной сетки. Подробнее...
float getDilationVoxelSize () const
Получить размер вокселя для воксельной сетки. Подробнее...
void setDilationIterations (int iterations)
Задать количество шагов расширения воксельной сетки. Подробнее...
int getDilationIterations () const
Получить количество шагов расширения воксельной сетки. Подробнее...
void setCacheMLSResults (bool cache_mls_results)
Задать, следует ли сохранять результаты mls для каждой точки входного облака. Подробнее...
bool getCacheMLSResults () const
Получить значение cache_mls_results_ (True, если результаты mls следует сохранять, иначе false). Подробнее...
void setProjectionMethod (MLSResult::ProjectionMethod method)
Задать метод проецирования точки на поверхность MLS. Подробнее...
MLSResult::ProjectionMethod getProjectionMethod () const
Получить используемый в данный момент метод проецирования. Подробнее...
const std::vector< MLSResult > & getMLSResults () const
Получить результаты MLS для входного облака. Подробнее...
void setNumberOfThreads (unsigned int threads=1)
Задать максимальное количество используемых потоков. Подробнее...
void process (PointCloudOut &output) override
Базовый метод реконструкции поверхности для всех точек, заданных с помощью <setInputCloud (), setIndices ()> Подробнее...
PointIndicesPtr getCorrespondingIndices () const
Получить набор индексов, соответствующих точкам входного облака для каждой точки выходного облака. Подробнее...
- Открытые функции-члены, унаследованные от pcl::CloudSurfaceProcessing< PointInT, PointOutT >
CloudSurfaceProcessing ()
Конструктор. Подробнее...
~CloudSurfaceProcessing () override=default
Пустой деструктор. Подробнее...
- Открытые функции-члены, унаследованные от pcl::PCLBase< PointInT >
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 PointInT & operator[] (std::size_t pos) const
Переопределяет operator[] класса PointCloud для сокращения кода. Подробнее...

Защищённые функции-члены

int searchForNeighbors (pcl::index_t index, pcl::Indices &indices, std::vector< float > &sqr_distances) const
Выполняет поиск ближайших соседей заданной точки с использованием поиска в радиусе. Подробнее...
void computeMLSPointNormal (pcl::index_t index, const pcl::Indices &nn_indices, PointCloudOut &projected_points, NormalCloud &projected_points_normals, PointIndices &corresponding_input_indices, MLSResult &mls_result) const
Сглаживает заданную точку и её окрестность методом Moving Least Squares. Подробнее...
void addProjectedPointNormal (pcl::index_t index, const Eigen::Vector3d &point, const Eigen::Vector3d &normal, double curvature, PointCloudOut &projected_points, NormalCloud &projected_points_normals, PointIndices &corresponding_input_indices) const
Вспомогательная функция для добавления спроецированных точек. Подробнее...
void copyMissingFields (const PointInT &point_in, PointOutT &point_out) const
void performProcessing (PointCloudOut &output) override
Абстрактный метод реконструкции поверхности. Подробнее...
void performUpsampling (PointCloudOut &output)
Выполняет увеличение плотности для методов distinct-cloud и voxel-grid. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::PCLBase< PointInT >
bool initCompute ()
Этот метод следует вызывать перед началом фактических вычислений. Подробнее...
bool deinitCompute ()
Этот метод следует вызывать после завершения фактических вычислений. Подробнее...

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

NormalCloudPtr normals_ {nullptr}
Облако точек, в котором будут храниться вычисленные нормали, если оно задано. Подробнее...
PointCloudInConstPtr distinct_cloud_ {nullptr}
Отдельное облако точек, которое будет спроецировано на поверхность MLS. Подробнее...
SearchMethod search_method_
Шаблон метода поиска индексов. Подробнее...
KdTreePtr tree_ {nullptr}
Указатель на объект пространственного поиска. Подробнее...
int order_ {2}
Порядок аппроксимирующего полинома. Подробнее...
double search_radius_ {0.0}
Радиус поиска ближайших соседей для каждой точки. Подробнее...
double sqr_gauss_param_ {0.0}
Параметр взвешивания соседей по расстоянию (search_radius_ * search_radius_ обычно подходит). Подробнее...
bool compute_normals_ {false}
Параметр, указывающий, следует ли вычислять нормали для входного облака. Подробнее...
UpsamplingMethod upsample_method_
Параметр, задающий используемый метод увеличения плотности. Подробнее...
double upsampling_radius_ {0.0}
Радиус окружности в локальной плоскости точки, по которой будут размещаться точки. Подробнее...
double upsampling_step_ {0.0}
Шаг выборки локальной плоскости. Подробнее...
int desired_num_points_in_radius_ {0}
Параметр, задающий желаемое количество точек в радиусе поиска. Подробнее...
bool cache_mls_results_ {true}
Равно true, если результаты MLS для входного облака следует сохранять. Подробнее...
std::vector< MLSResult > mls_results_ {}
Хранит результат MLS для каждой точки входного облака. Подробнее...
MLSResult::ProjectionMethod projection_method_ {MLSResult::SIMPLE}
Параметр, задающий используемый метод проецирования. Подробнее...
unsigned int threads_ {1}
Максимальное количество потоков, которое должен использовать планировщик. Подробнее...
float voxel_size_ {1.0f}
Размер вокселя для метода увеличения плотности VOXEL_GRID_DILATION. Подробнее...
int dilation_iteration_num_ {0}
Количество шагов дилатации для метода увеличения плотности VOXEL_GRID_DILATION. Подробнее...
int nr_coeff_ {0}
Количество коэффициентов, вычисляемое на основе заданного порядка. Подробнее...
PointIndicesPtr corresponding_input_indices_ {nullptr}
Для каждой выходной точки сохраняет соответствующую ей точку входных данных. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::PCLBase< PointInT >
PointCloudConstPtr input_
Входной набор данных облака точек. Подробнее...
IndicesPtr indices_
Указатель на вектор используемых индексов точек. Подробнее...
bool use_indices_
Установите значение true, если используются индексы точек. Подробнее...
bool fake_indices_
Если набор индексов не задан, создаётся набор фиктивных индексов, соответствующий входному PointCloud. Подробнее...

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

template<typename PointInT, typename PointOutT>
class pcl::MovingLeastSquares< PointInT, PointOutT >

MovingLeastSquares представляет собой реализацию алгоритма MLS (Moving Least Squares) для сглаживания данных и повышения точности оценки нормалей.

Также содержит методы увеличения плотности результирующего облака на основе параметрической аппроксимации. Статья: «Вычисление и визуализация поверхностей, заданных наборами точек» Марка Алексы, Йоханнеса Бера, Дэниела Коэн-Ора, Шахара Флейшмана, Дэвида Левина и Клаудио Т. Силвы: www.sci.utah.edu/~shachar/Publications/crpss.pdf

Примечание
Версия этапа обработки поддерживает параллельное выполнение с использованием стандарта OpenMP. По сравнению со стандартной версией это увеличивает время выполнения и расход памяти. Методы увеличения плотности DISTINCT_CLOUD и VOXEL_GRID_DILATION не полностью распараллелены: некоторые части алгоритма выполняются только в одном потоке.
Автор
Zoltan Csaba Marton, Radu B. Rusu, Alexandru E. Ichim, Suat Gedikli, Robert Huitl

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

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

ConstPtr

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::ConstPtr = shared_ptr<const MovingLeastSquares<PointInT, PointOutT> >

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

KdTree

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::KdTree = pcl::search::Search<PointInT>

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

KdTreePtr

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::KdTreePtr = typename KdTree::Ptr

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

NormalCloud

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::NormalCloud = pcl::PointCloud<pcl::Normal>

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

NormalCloudPtr

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::NormalCloudPtr = NormalCloud::Ptr

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

PointCloudIn

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudIn = pcl::PointCloud<PointInT>

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

PointCloudInConstPtr

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudInConstPtr = typename PointCloudIn::ConstPtr

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

PointCloudInPtr

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudInPtr = typename PointCloudIn::Ptr

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

PointCloudOut

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudOut = pcl::PointCloud<PointOutT>

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

PointCloudOutConstPtr

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudOutConstPtr = typename PointCloudOut::ConstPtr

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

PointCloudOutPtr

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudOutPtr = typename PointCloudOut::Ptr

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

Ptr

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::Ptr = shared_ptr<MovingLeastSquares<PointInT, PointOutT> >

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

SearchMethod

template<typename PointInT , typename PointOutT >
using pcl::MovingLeastSquares< PointInT, PointOutT >::SearchMethod = std::function<int (pcl::index_t, double, pcl::Indices &, std::vector<float> &)>

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

Описание перечислений-членов

UpsamplingMethod

template<typename PointInT , typename PointOutT >
enum pcl::MovingLeastSquares::UpsamplingMethod
Элементы перечисления
NONE

Передискретизация не выполняется; только входные точки проецируются на собственные MLS-поверхности.

DISTINCT_CLOUD

Спроецировать точки отдельного облака на MLS-поверхность.

SAMPLE_LOCAL_PLANE

Локальная плоскость каждой входной точки будет дискретизирована по кругу с использованием параметров upsampling_radius_ и upsampling_step_.

RANDOM_UNIFORM_DENSITY

Локальная плоскость каждой входной точки будет дискретизирована с использованием равномерного случайного распределения, так что плотность точек будет постоянной по всему облаку; она задаётся параметром desired_num_points_in_radius_.

VOXEL_GRID_DILATION

Входное облако будет помещено в воксельную сетку с размером вокселей voxel_size_; эта воксельная сетка будет расширена dilation_iteration_num_ раз, а полученные точки будут спроецированы на MLS-поверхность ближайшей точки входного облака; в результате получится облако точек с заполненными отверстиями и постоянной плотностью точек.

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

Описание конструкторов и деструкторов

MovingLeastSquares()

template<typename PointInT , typename PointOutT >
pcl::MovingLeastSquares< PointInT, PointOutT >::MovingLeastSquares ( )
inline

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

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

~MovingLeastSquares()

template<typename PointInT , typename PointOutT >
pcl::MovingLeastSquares< PointInT, PointOutT >::~MovingLeastSquares ( )
overridedefault

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

Описание функций-членов

addProjectedPointNormal()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::addProjectedPointNormal ( pcl::index_t index,
const Eigen::Vector3d & point,
const Eigen::Vector3d & normal,
double curvature,
PointCloudOut & projected_points,
NormalCloud & projected_points_normals,
PointIndices & corresponding_input_indices
) const
protected

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

Параметры
[in] index индекс точки запроса во входном облаке
[in] point добавляемая спроецированная точка
[in] normal добавляемая нормаль спроецированной точки
[in] curvature кривизна спроецированной точки
[out] projected_points набор спроецированных точек вокруг точки запроса
[out] projected_points_normals нормали, соответствующие спроецированным точкам
[out] corresponding_input_indices набор индексов, связывающих каждую точку выходного набора с соответствующей точкой входного набора

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

Ссылки: pcl::_Normal::curvature, pcl::PointIndices::indices и pcl::PointCloud< PointT >::push_back().

computeMLSPointNormal()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal ( pcl::index_t index,
const pcl::Indices & nn_indices,
PointCloudOut & projected_points,
NormalCloud & projected_points_normals,
PointIndices & corresponding_input_indices,
MLSResult & mls_result
) const
protected

Сглаживает заданную точку и её окрестность методом Moving Least Squares.

Параметры
[in] index индекс точки запроса во входном облаке
[in] nn_indices набор индексов ближайших соседей точки pt
[out] projected_points набор спроецированных точек вокруг точки запроса (при методе передискретизации NONE возвращается только точка запроса, спроецированная на собственную аппроксимирующую поверхность; при использовании других методов передискретизации возвращается несколько точек)
[out] projected_points_normals нормали, соответствующие спроецированным точкам
[out] corresponding_input_indices набор индексов, связывающих каждую точку выходного набора с соответствующей точкой входного набора
[out] mls_result сохраняет результат MLS для каждой точки входного облака (используется только при передискретизации методами VOXEL_GRID_DILATION или DISTINCT_CLOUD)

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

Ссылки: pcl::MLSResult::computeMLSSurface(), pcl::MLSResult::curvature, pcl::MLSResult::MLSProjectionResults::normal, pcl::MLSResult::num_neighbors, pcl::MLSResult::MLSProjectionResults::point, pcl::MLSResult::projectPointSimpleToPolynomialSurface(), pcl::MLSResult::projectPointToMLSPlane() и pcl::MLSResult::projectQueryPoint().

copyMissingFields()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::copyMissingFields ( const PointInT & point_in,
PointOutT & point_out
) const
protected

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

Ссылка: pcl::copyPoint().

getCacheMLSResults()

template<typename PointInT , typename PointOutT >
bool pcl::MovingLeastSquares< PointInT, PointOutT >::getCacheMLSResults ( ) const
inline

Возвращает значение cache_mls_results_ (true, если результаты MLS следует сохранять, иначе false).

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

Ссылка: pcl::MovingLeastSquares< PointInT, PointOutT >::cache_mls_results_.

getCorrespondingIndices()

template<typename PointInT , typename PointOutT >
PointIndicesPtr pcl::MovingLeastSquares< PointInT, PointOutT >::getCorrespondingIndices ( ) const
inline

Возвращает набор индексов, связывающих каждую точку выходного набора с соответствующей точкой входного набора.

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

Ссылка: pcl::MovingLeastSquares< PointInT, PointOutT >::corresponding_input_indices_.

getDilationIterations()

template<typename PointInT , typename PointOutT >
int pcl::MovingLeastSquares< PointInT, PointOutT >::getDilationIterations ( ) const
inline

Возвращает число шагов расширения воксельной сетки.

Примечание
Используется только при методе передискретизации VOXEL_GRID_DILATION

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

Ссылка: pcl::MovingLeastSquares< PointInT, PointOutT >::dilation_iteration_num_.

getDilationVoxelSize()

template<typename PointInT , typename PointOutT >
float pcl::MovingLeastSquares< PointInT, PointOutT >::getDilationVoxelSize ( ) const
inline

Возвращает размер вокселя для воксельной сетки.

Примечание
Используется только при методе передискретизации VOXEL_GRID_DILATION

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

Ссылка: pcl::MovingLeastSquares< PointInT, PointOutT >::voxel_size_.

getDistinctCloud()

template<typename PointInT , typename PointOutT >
PointCloudInConstPtr pcl::MovingLeastSquares< PointInT, PointOutT >::getDistinctCloud ( ) const
inline

Возвращает отдельное облако, используемое методом передискретизации DISTINCT_CLOUD.

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

Ссылка: pcl::MovingLeastSquares< PointInT, PointOutT >::distinct_cloud_.

getMLSResults()

template<typename PointInT , typename PointOutT >
const std::vector<MLSResult>& pcl::MovingLeastSquares< PointInT, PointOutT >::getMLSResults ( ) const
inline

Возвращает результаты MLS для входного облака.

Примечание
Результаты сохраняются, только если был вызван setCacheMLSResults(true) или используется метод передискретизации DISTINCT_CLOUD либо VOXEL_GRID_DILATION.
Этот вектор соответствует индексам входного облака, поэтому при использовании индексов выходного облака для получения правильных результатов используйте getCorrespondingIndices.

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

Ссылка: pcl::MovingLeastSquares< PointInT, PointOutT >::mls_results_.

getPointDensity()

template<typename PointInT , typename PointOutT >
int pcl::MovingLeastSquares< PointInT, PointOutT >::getPointDensity ( ) const
inline

Получить параметр, задающий желаемое количество точек в пределах радиуса поиска.

Примечание
Используется только при передискретизации методом RANDOM_UNIFORM_DENSITY

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::desired_num_points_in_radius_.

getPolynomialOrder()

template<typename PointInT , typename PointOutT >
int pcl::MovingLeastSquares< PointInT, PointOutT >::getPolynomialOrder ( ) const
inline

Получить порядок аппроксимирующего полинома.

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::order_.

getProjectionMethod()

template<typename PointInT , typename PointOutT >
MLSResult::ProjectionMethod pcl::MovingLeastSquares< PointInT, PointOutT >::getProjectionMethod ( ) const
inline

Получить используемый метод проецирования.

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::projection_method_.

getSearchMethod()

template<typename PointInT , typename PointOutT >
KdTreePtr pcl::MovingLeastSquares< PointInT, PointOutT >::getSearchMethod ( ) const
inline

Получить указатель на используемый метод поиска.

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::tree_.

getSearchRadius()

template<typename PointInT , typename PointOutT >
double pcl::MovingLeastSquares< PointInT, PointOutT >::getSearchRadius ( ) const
inline

Получить радиус сферы, используемый для определения k ближайших соседей.

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::search_radius_.

getSqrGaussParam()

template<typename PointInT , typename PointOutT >
double pcl::MovingLeastSquares< PointInT, PointOutT >::getSqrGaussParam ( ) const
inline

Получить параметр взвешивания соседей на основе расстояния.

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::sqr_gauss_param_.

getUpsamplingRadius()

template<typename PointInT , typename PointOutT >
double pcl::MovingLeastSquares< PointInT, PointOutT >::getUpsamplingRadius ( ) const
inline

Получить радиус окружности в локальной плоскости точки, по которой будет выполняться выборка.

Примечание
Используется только при передискретизации методом SAMPLE_LOCAL_PLANE

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::upsampling_radius_.

getUpsamplingStepSize()

template<typename PointInT , typename PointOutT >
double pcl::MovingLeastSquares< PointInT, PointOutT >::getUpsamplingStepSize ( ) const
inline

Получить размер шага для выборки в локальной плоскости.

Примечание
Используется только при передискретизации методом SAMPLE_LOCAL_PLANE

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::upsampling_step_.

performProcessing()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::performProcessing ( PointCloudOut & output )
overrideprotectedvirtual

Абстрактный метод реконструкции поверхности.

Параметры
[out] output результат реконструкции

Реализует pcl::CloudSurfaceProcessing< PointInT, PointOutT >.

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

Ссылки на pcl::PointCloud< PointT >::begin(), pcl::PointCloud< PointT >::end(), pcl::PointCloud< PointT >::insert() и pcl::PointCloud< PointT >::size().

performUpsampling()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::performUpsampling ( PointCloudOut & output )
protected

Выполняет передискретизацию для методов distinct-cloud и voxel-grid.

Параметры
[out] output результат реконструкции

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::MLSVoxelGrid::dilate(), pcl::MovingLeastSquares< PointInT, PointOutT >::MLSVoxelGrid::getPosition(), pcl::MLSResult::MLSProjectionResults::normal, pcl::MLSResult::MLSProjectionResults::point и pcl::MovingLeastSquares< PointInT, PointOutT >::MLSVoxelGrid::voxel_grid_.

process()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::process ( PointCloudOut & output )
overridevirtual

Базовый метод реконструкции поверхности для всех точек, заданных в <setInputCloud (), setIndices ()>

Параметры
[out] output результирующая реконструированная модель поверхности

Переопределяет pcl::CloudSurfaceProcessing< PointInT, PointOutT >.

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

Ссылки на pcl::PointCloud< PointT >::clear(), pcl::PointCloud< PointT >::header, pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::size() и pcl::PointCloud< PointT >::width.

searchForNeighbors()

template<typename PointInT , typename PointOutT >
int pcl::MovingLeastSquares< PointInT, PointOutT >::searchForNeighbors ( pcl::index_t index,
pcl::Indices & indices,
std::vector< float > & sqr_distances
) const
inlineprotected

Найти ближайших соседей заданной точки с помощью поиска по радиусу.

Параметры
[in] index индекс точки запроса
[out] indices результирующий вектор индексов соседей в пределах search_radius_
[out] sqr_distances результирующие квадраты расстояний от точки запроса до соседей в пределах search_radius_

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::search_method_ и pcl::MovingLeastSquares< PointInT, PointOutT >::search_radius_.

setCacheMLSResults()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setCacheMLSResults ( bool cache_mls_results )
inline

Задать, следует ли сохранять результаты mls для каждой точки входного облака.

Параметры
[in] cache_mls_results True, если результаты mls следует сохранять, иначе false.
Примечание
Параметр cache_mls_results_ принудительно устанавливается в true при использовании метода передискретизации VOXEL_GRID_DILATION или DISTINCT_CLOUD.
Если расход памяти имеет значение, установите значение false, когда метод передискретизации VOXEL_GRID_DILATION или DISTINCT_CLOUD не используется.

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::cache_mls_results_.

setComputeNormals()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setComputeNormals ( bool compute_normals )
inline

Задать, должен ли алгоритм также сохранять вычисленные нормали.

Примечание
Это необязательно, но требует подходящего типа выходного облака

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::compute_normals_.

setDilationIterations()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setDilationIterations ( int iterations )
inline

Задать количество шагов дилатации воксельной сетки.

Примечание
Используется только для метода передискретизации VOXEL_GRID_DILATION
Параметры
[in] iterations количество итераций дилатации

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::dilation_iteration_num_.

setDilationVoxelSize()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setDilationVoxelSize ( float voxel_size )
inline

Задать размер вокселя для воксельной сетки.

Примечание
Используется только для метода передискретизации VOXEL_GRID_DILATION
Параметры
[in] voxel_size длина ребра кубического вокселя в воксельной сетке

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::voxel_size_.

setDistinctCloud()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setDistinctCloud ( PointCloudInConstPtr distinct_cloud )
inline

Задать отдельное облако, используемое методом передискретизации DISTINCT_CLOUD.

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::distinct_cloud_.

setNumberOfThreads()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setNumberOfThreads ( unsigned int threads = 1 )
inline

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

Параметры
threads максимальное количество используемых аппаратных потоков (значение 0 устанавливает количество равным 1)

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::threads_.

setPointDensity()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setPointDensity ( int desired_num_points_in_radius )
inline

Задать параметр, определяющий желаемое количество точек в пределах радиуса поиска.

Примечание
Используется только при передискретизации методом RANDOM_UNIFORM_DENSITY
Параметры
[in] desired_num_points_in_radius желаемое количество точек в выходном облаке внутри сферы радиуса search_radius_ вокруг каждой точки

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::desired_num_points_in_radius_.

setPolynomialOrder()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setPolynomialOrder ( int order )
inline

Задать порядок аппроксимирующего полинома.

Параметры
[in] order порядок полинома
Примечание
Значение order > 1 указывает на использование полиномиальной аппроксимации.

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::order_.

setProjectionMethod()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setProjectionMethod ( MLSResult::ProjectionMethod method )
inline

Задать метод проецирования точки на поверхность MLS.

Параметры
method
Примечание
Используется только при включенной полиномиальной аппроксимации.

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::projection_method_.

setSearchMethod()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setSearchMethod ( const KdTreePtr & tree )
inline

Передать указатель на объект поиска.

Параметры
[in] tree указатель на объект пространственного поиска.

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::search_method_ и pcl::MovingLeastSquares< PointInT, PointOutT >::tree_.

setSearchRadius()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setSearchRadius ( double radius )
inline

Задать радиус сферы, используемой для определения k ближайших соседей при аппроксимации.

Параметры
[in] radius радиус сферы, в которой должны находиться все k ближайших соседей
Примечание
Вызов этого метода сбрасывает параметр квадрата Гаусса до значения radius * radius!

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::search_radius_ и pcl::MovingLeastSquares< PointInT, PointOutT >::sqr_gauss_param_.

setSqrGaussParam()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setSqrGaussParam ( double sqr_gauss_param )
inline

Задать параметр для взвешивания соседей в зависимости от расстояния (как правило, лучше всего подходит квадрат радиуса поиска).

Параметры
[in] sqr_gauss_param параметр квадрата Гаусса

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::sqr_gauss_param_.

setUpsamplingMethod()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setUpsamplingMethod ( UpsamplingMethod method )
inline

Задать используемый метод передискретизации.

Параметры
method

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::upsample_method_.

setUpsamplingRadius()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setUpsamplingRadius ( double radius )
inline

Задать радиус окружности в локальной плоскости точек, которая будет дискретизирована.

Примечание
Используется только при передискретизации методом SAMPLE_LOCAL_PLANE
Параметры
[in] radius радиус окружности

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::upsampling_radius_.

setUpsamplingStepSize()

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::setUpsamplingStepSize ( double step_size )
inline

Задать шаг дискретизации локальной плоскости.

Примечание
Используется только при передискретизации методом SAMPLE_LOCAL_PLANE
Параметры
[in] step_size шаг дискретизации

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

Ссылки на pcl::MovingLeastSquares< PointInT, PointOutT >::upsampling_step_.

Описание данных-членов

cache_mls_results_

template<typename PointInT , typename PointOutT >
bool pcl::MovingLeastSquares< PointInT, PointOutT >::cache_mls_results_ {true}
protected

Значение true указывает, что результаты MLS для входного облака следует сохранять.

Примечание
При использовании методов передискретизации VOXEL_GRID_DILATION или DISTINCT_CLOUD для этого параметра принудительно устанавливается значение true.

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getCacheMLSResults() и pcl::MovingLeastSquares< PointInT, PointOutT >::setCacheMLSResults().

compute_normals_

template<typename PointInT , typename PointOutT >
bool pcl::MovingLeastSquares< PointInT, PointOutT >::compute_normals_ {false}
protected

Параметр, определяющий, следует ли вычислять нормали для входного облака.

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::setComputeNormals().

corresponding_input_indices_

template<typename PointInT , typename PointOutT >
PointIndicesPtr pcl::MovingLeastSquares< PointInT, PointOutT >::corresponding_input_indices_ {nullptr}
protected

Для каждой выходной точки хранит соответствующую ей точку входного облака.

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getCorrespondingIndices().

desired_num_points_in_radius_

template<typename PointInT , typename PointOutT >
int pcl::MovingLeastSquares< PointInT, PointOutT >::desired_num_points_in_radius_ {0}
protected

Параметр, задающий требуемое количество точек в радиусе поиска.

Примечание
Используется только при передискретизации методом RANDOM_UNIFORM_DENSITY

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getPointDensity() и pcl::MovingLeastSquares< PointInT, PointOutT >::setPointDensity().

dilation_iteration_num_

template<typename PointInT , typename PointOutT >
int pcl::MovingLeastSquares< PointInT, PointOutT >::dilation_iteration_num_ {0}
protected

Количество шагов расширения для метода передискретизации VOXEL_GRID_DILATION.

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getDilationIterations() и pcl::MovingLeastSquares< PointInT, PointOutT >::setDilationIterations().

distinct_cloud_

template<typename PointInT , typename PointOutT >
PointCloudInConstPtr pcl::MovingLeastSquares< PointInT, PointOutT >::distinct_cloud_ {nullptr}
protected

Отдельное облако точек, которое будет спроецировано на поверхность MLS.

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getDistinctCloud() и pcl::MovingLeastSquares< PointInT, PointOutT >::setDistinctCloud().

mls_results_

template<typename PointInT , typename PointOutT >
std::vector<MLSResult> pcl::MovingLeastSquares< PointInT, PointOutT >::mls_results_ {}
protected

Хранит результат MLS для каждой точки входного облака.

Примечание
Используется только при передискретизации методами VOXEL_GRID_DILATION или DISTINCT_CLOUD

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getMLSResults().

normals_

template<typename PointInT , typename PointOutT >
NormalCloudPtr pcl::MovingLeastSquares< PointInT, PointOutT >::normals_ {nullptr}
protected

Облако точек для хранения вычисленных нормалей, если оно задано.

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

nr_coeff_

template<typename PointInT , typename PointOutT >
int pcl::MovingLeastSquares< PointInT, PointOutT >::nr_coeff_ {0}
protected

Количество коэффициентов, вычисляемое на основе заданного порядка.

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

order_

template<typename PointInT , typename PointOutT >
int pcl::MovingLeastSquares< PointInT, PointOutT >::order_ {2}
protected

Порядок аппроксимирующего полинома.

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getPolynomialOrder() и pcl::MovingLeastSquares< PointInT, PointOutT >::setPolynomialOrder().

projection_method_

template<typename PointInT , typename PointOutT >
MLSResult::ProjectionMethod pcl::MovingLeastSquares< PointInT, PointOutT >::projection_method_ {MLSResult::SIMPLE}
protected

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

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getProjectionMethod() и pcl::MovingLeastSquares< PointInT, PointOutT >::setProjectionMethod().

search_method_

template<typename PointInT , typename PointOutT >
SearchMethod pcl::MovingLeastSquares< PointInT, PointOutT >::search_method_
protected

Шаблон метода поиска индексов.

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::searchForNeighbors() и pcl::MovingLeastSquares< PointInT, PointOutT >::setSearchMethod().

search_radius_

template<typename PointInT , typename PointOutT >
double pcl::MovingLeastSquares< PointInT, PointOutT >::search_radius_ {0.0}
protected

Радиус поиска ближайших соседей для каждой точки.

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getSearchRadius(), pcl::MovingLeastSquares< PointInT, PointOutT >::searchForNeighbors() и pcl::MovingLeastSquares< PointInT, PointOutT >::setSearchRadius().

sqr_gauss_param_

template<typename PointInT , typename PointOutT >
double pcl::MovingLeastSquares< PointInT, PointOutT >::sqr_gauss_param_ {0.0}
protected

Параметр для взвешивания соседей в зависимости от расстояния (search_radius_ * search_radius_ подходит).

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getSqrGaussParam(), pcl::MovingLeastSquares< PointInT, PointOutT >::setSearchRadius() и pcl::MovingLeastSquares< PointInT, PointOutT >::setSqrGaussParam().

threads_

template<typename PointInT , typename PointOutT >
unsigned int pcl::MovingLeastSquares< PointInT, PointOutT >::threads_ {1}
protected

Максимальное количество потоков, которое должен использовать планировщик.

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::setNumberOfThreads().

tree_

template<typename PointInT , typename PointOutT >
KdTreePtr pcl::MovingLeastSquares< PointInT, PointOutT >::tree_ {nullptr}
protected

Указатель на объект пространственного поиска.

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getSearchMethod() и pcl::MovingLeastSquares< PointInT, PointOutT >::setSearchMethod().

upsample_method_

template<typename PointInT , typename PointOutT >
UpsamplingMethod pcl::MovingLeastSquares< PointInT, PointOutT >::upsample_method_
protected

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

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::setUpsamplingMethod().

upsampling_radius_

template<typename PointInT , typename PointOutT >
double pcl::MovingLeastSquares< PointInT, PointOutT >::upsampling_radius_ {0.0}
protected

Радиус окружности в локальной плоскости точек, в которой выполняется выборка.

Примечание
Используется только при увеличении плотности выборки методом SAMPLE_LOCAL_PLANE

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getUpsamplingRadius() и pcl::MovingLeastSquares< PointInT, PointOutT >::setUpsamplingRadius().

upsampling_step_

template<typename PointInT , typename PointOutT >
double pcl::MovingLeastSquares< PointInT, PointOutT >::upsampling_step_ {0.0}
protected

Шаг выборки на локальной плоскости.

Примечание
Используется только при увеличении плотности выборки методом SAMPLE_LOCAL_PLANE

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getUpsamplingStepSize() и pcl::MovingLeastSquares< PointInT, PointOutT >::setUpsamplingStepSize().

voxel_size_

template<typename PointInT , typename PointOutT >
float pcl::MovingLeastSquares< PointInT, PointOutT >::voxel_size_ {1.0f}
protected

Размер вокселя для метода увеличения плотности выборки VOXEL_GRID_DILATION.

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

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::getDilationVoxelSize() и pcl::MovingLeastSquares< PointInT, PointOutT >::setDilationVoxelSize().


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

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_moving_least_squares.html

Spec-Zone.ru

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