Spec-Zone.ru › PointCloudLibrary

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

Обзор

Библиотека pcl_filters содержит механизмы удаления выбросов и шума для приложений фильтрации данных облаков точек 3D.

Пример удаления шума представлен на рисунке ниже. Из-за ошибок измерения некоторые наборы данных содержат большое количество точек-теней. Это затрудняет оценку локальных 3D-признаков облака точек. Некоторые из этих выбросов можно отфильтровать, выполнив статистический анализ окрестностей каждой точки и удалив те, которые не удовлетворяют определенным критериям. Реализация удаления разреженных выбросов в PCL основана на вычислении распределения расстояний от точки до соседей в наборе данных. Для каждой точки вычисляется среднее расстояние от неё до всех её соседей. Предполагая, что полученное распределение является гауссовским со средним и стандартным отклонением, все точки, средние расстояния которых находятся вне интервала, определённого средним и стандартным отклонением глобальных расстояний, можно рассматривать как выбросы и удалять из набора данных.

Требования

  • common
  • sample_consensus
  • search
  • kdtree
  • octree

Классы

класс pcl::ApproximateVoxelGrid< PointT >
ApproximateVoxelGrid собирает локальную 3D сетку над заданным PointCloud и выполняет сэмплирование + фильтрацию данных. Подробнее...
класс pcl::BilateralFilter< PointT >
Реализация двустороннего фильтра для данных облаков точек. Подробнее...
класс pcl::BoxClipper3D< PointT >
Реализация обрезания по прямоугольному параллелепипеду в 3D. На самом деле, она позволяет использовать аффинные преобразования, таким образом, любой параллелепипед в общем положении. Аффинное преобразование используется для преобразования точки перед обрезанием её с помощью единичного куба, центрированного в начале координат, и с расширением от -1 до +1 по каждой оси. Подробнее...
класс pcl::Clipper3D< PointT >
Базовый класс для объектов обрезания в 3D. Подробнее...
класс pcl::ConditionalRemoval< PointT >
ConditionalRemoval фильтрует данные, удовлетворяющие определённым условиям. Подробнее...
класс pcl::filters::Convolution< PointIn, PointOut >
Convolution — математическая операция над двумя функциями f и g, порождающая третью функцию, которая обычно рассматривается как модифицированная версия одной из исходных функций. Подробнее...
класс pcl::filters::ConvolvingKernel< PointInT, PointOutT >
Класс ConvolvingKernel — базовый класс для всех свёрточных ядер. Подробнее...
класс pcl::filters::GaussianKernel< PointInT, PointOutT >
Интерфейс реализации ядра Гаусса Используйте этот интерфейс как эталон реализации. Подробнее...
класс pcl::filters::GaussianKernelRGB< PointInT, PointOutT >
Интерфейс реализации ядра Гаусса с обработкой канала RGB. Используйте этот интерфейс как эталон реализации. Подробнее...
класс pcl::CropBox< PointT >
CropBox — фильтр, позволяющий пользователю отфильтровать все данные внутри заданного параллелепипеда. Подробнее...
класс pcl::CropBox< pcl::PCLPointCloud2 >
CropBox — фильтр, позволяющий пользователю отфильтровать все данные внутри заданного параллелепипеда. Подробнее...
класс pcl::CropHull< PointT >
Фильтр точек, лежащих внутри или вне 3D замкнутой поверхности или 2D замкнутого многоугольника, сгенерированных классами ConvexHull или ConcaveHull. Подробнее...
класс pcl::experimental::advanced::FunctorFilter< PointT, FunctionObject >
Фильтр облаков точек и индексов на основе объекта функции, переданного в конструктор. Подробнее...
класс pcl::ExtractIndices< PointT >
ExtractIndices извлекает набор индексов из облака точек. Подробнее...
класс pcl::ExtractIndices< pcl::PCLPointCloud2 >
ExtractIndices извлекает набор индексов из облака точек. Подробнее...
класс pcl::FarthestPointSampling< PointT >
FarthestPointSampling выполняет сэмплирование наибольшего расстояния, используя евклидово расстояние, начиная с произвольной точки, используя наивный метод. Подробнее...
класс pcl::Filter< PointT >
Фильтр представляет собой базовый класс фильтра. Подробнее...
класс pcl::Filter< pcl::PCLPointCloud2 >
Фильтр представляет собой базовый класс фильтра. Подробнее...
class pcl::FilterIndices< PointT >
FilterIndices представляет базовый класс для фильтров, связанных с удалением точек по бинарному принципу. Подробнее...
class pcl::FilterIndices< pcl::PCLPointCloud2 >
FilterIndices представляет базовый класс для фильтров, связанных с удалением точек по бинарному принципу. Подробнее...
class pcl::FrustumCulling< PointT >
FrustumCulling фильтрует точки, находящиеся внутри усеченной пирамиды, заданной положением и полем зрения камеры. Подробнее...
class pcl::GridMinimum< PointT >
GridMinimum собирает локальную 2D сетку над заданным PointCloud и уменьшает объём данных. Подробнее...
class pcl::LocalMaximum< PointT >
LocalMaximum уменьшает объём облака, удаляя локально максимальные точки. Подробнее...
class pcl::MedianFilter< PointT >
Реализация медианного фильтра. Подробнее...
class pcl::NormalRefinement< NormalT >
Класс уточнения векторов нормалей Подробнее...
class pcl::NormalSpaceSampling< PointT, NormalT >
NormalSpaceSampling производит выборку входного облака точек в пространстве направлений нормалей, вычисленных для каждой точки. Подробнее...
class pcl::PassThrough< PointT >
PassThrough пропускает точки в облаке на основе ограничений для одного конкретного поля типа точки. Подробнее...
class pcl::PassThrough< pcl::PCLPointCloud2 >
PassThrough использует методы базового класса Filter для пропуска всех данных, соответствующих заданным пользователем ограничениям. Подробнее...
class pcl::PlaneClipper3D< PointT >
Реализация обрезателя плоскости в 3D. Подробнее...
class pcl::ProjectInliers< PointT >
ProjectInliers использует модель и набор индексов внутренних точек из PointCloud для проекции их в отдельное PointCloud. Подробнее...
class pcl::ProjectInliers< pcl::PCLPointCloud2 >
ProjectInliers использует модель и набор индексов внутренних точек из PointCloud для проекции их в отдельное PointCloud. Подробнее...
class pcl::RadiusOutlierRemoval< PointT >
RadiusOutlierRemoval фильтрует точки в облаке на основе количества соседей, которые они имеют. Подробнее...
class pcl::RadiusOutlierRemoval< pcl::PCLPointCloud2 >
RadiusOutlierRemoval — простой фильтр, который удаляет выбросы, если количество соседей в определённом радиусе меньше заданного K. Подробнее...
class pcl::RandomSample< PointT >
RandomSample применяет случайную выборку с равномерной вероятностью. Подробнее...
class pcl::RandomSample< pcl::PCLPointCloud2 >
RandomSample применяет случайную выборку с равномерной вероятностью. Подробнее...
class pcl::SamplingSurfaceNormal< PointT >
SamplingSurfaceNormal делит входное пространство на сетки до тех пор, пока каждая сетка не будет содержать максимального количества N точек, и случайным образом выбирает точки внутри каждой сетки. Подробнее...
class pcl::ShadowPoints< PointT, NormalT >
ShadowPoints удаляет точки-призраки, появляющиеся на границах разрывов. Подробнее...
class pcl::StatisticalOutlierRemoval< PointT >
StatisticalOutlierRemoval использует статистику соседних точек для фильтрации выбросов. Подробнее...
class pcl::StatisticalOutlierRemoval< pcl::PCLPointCloud2 >
StatisticalOutlierRemoval использует статистику соседних точек для фильтрации выбросов. Подробнее...
class pcl::UniformSampling< PointT >
UniformSampling собирает локальную 3D сетку над заданным PointCloud и производит выборку + фильтрацию данных. Подробнее...
class pcl::VoxelGrid< PointT >
VoxelGrid собирает локальную 3D сетку над заданным PointCloud и производит выборку + фильтрацию данных. Подробнее...
class pcl::VoxelGrid< pcl::PCLPointCloud2 >
VoxelGrid собирает локальную 3D сетку над заданным PointCloud и производит выборку + фильтрацию данных. Подробнее...
class pcl::VoxelGridOcclusionEstimation< PointT >
VoxelGrid для оценки скрытых областей в сцене. Подробнее...

Функции

шаблон<typename PointT >
void pcl::removeNaNFromPointCloud (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, Indices &index)
Удаляет точки с x, y или z, равными NaN. Подробнее...
шаблон<typename PointT >
void pcl::removeNaNNormalsFromPointCloud (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, Indices &index)
Удаляет точки, у которых нормали недействительны (т.е., равны NaN) Подробнее...
шаблон<typename PointT >
void pcl::removeNaNFromPointCloud (const pcl::PointCloud< PointT > &cloud_in, Indices &index)
Удаляет точки с x, y или z, равными NaN (проверка). Подробнее...
шаблон<typename PointT >
PCL_EXPORTS void pcl::applyMorphologicalOperator (const typename pcl::PointCloud< PointT >::ConstPtr &cloud_in, float resolution, const int morphological_operator, pcl::PointCloud< PointT > &cloud_out)
Применить морфологическую операцию к z-измерению входного облака точек. Подробнее...
шаблон<typename NormalT >
std::vector< float > pcl::assignNormalWeights (const PointCloud< NormalT > &cloud, index_t index, const Indices &k_indices, const std::vector< float > &k_sqr_distances)
Назначает веса соседних нормалей, используемых для уточнения. Подробнее...
шаблон<typename NormalT >
bool pcl::refineNormal (const PointCloud< NormalT > &cloud, int index, const Indices &k_indices, const std::vector< float > &k_sqr_distances, NormalT &point)
Уточнить индексированную точку на основе ее соседей, эта функция записывает только в поля normal_*. Подробнее...
Eigen::MatrixXi pcl::getHalfNeighborCellIndices ()
Получить индексы ячеек "верхней половины" 13 соседей. Подробнее...
Eigen::MatrixXi pcl::getAllNeighborCellIndices ()
Получить индексы ячеек всех 26 соседей. Подробнее...
шаблон<typename PointT >
void pcl::getMinMax3D (const typename pcl::PointCloud< PointT >::ConstPtr &cloud, const std::string &distance_field_name, float min_distance, float max_distance, Eigen::Vector4f &min_pt, Eigen::Vector4f &max_pt, bool limit_negative=false)
Получить минимальное и максимальное значения по каждой из 3-х (x-y-z) осей в заданном облаке точек, не учитывая точки, находящиеся вне порога расстояния от начала координат лазера. Подробнее...
шаблон<typename PointT >
void pcl::getMinMax3D (const typename pcl::PointCloud< PointT >::ConstPtr &cloud, const Indices &indices, const std::string &distance_field_name, float min_distance, float max_distance, Eigen::Vector4f &min_pt, Eigen::Vector4f &max_pt, bool limit_negative=false)
Получить минимальное и максимальное значения по каждой из 3-х (x-y-z) осей в заданном облаке точек, не учитывая точки, находящиеся вне порога расстояния от начала координат лазера. Подробнее...

Документация функций

applyMorphologicalOperator()

template<typename PointT >
PCL_EXPORTS void pcl::applyMorphologicalOperator ( const typename pcl::PointCloud< PointT >::ConstPtr & cloud_in,
float resolution,
const int morphological_operator,
pcl::PointCloud< PointT > & cloud_out
)

#include <pcl/filters/morphological_filter.h>

Применение морфологического оператора к размерности z входного облака точек.

Параметры
[вход] cloud_in набор входных данных облака точек
[вход] resolution размер окна, используемого для морфологической операции
[вход] morphological_operator применяемый морфологический оператор (открытие, закрытие, расширение, сужение)
[выход] cloud_out результирующий набор данных выходного облака точек

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

Ссылки на pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointsFromInputCloud(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::boxSearch(), pcl::copyPointCloud(), pcl::PointCloud< PointT >::empty(), pcl::MORPH_CLOSE, pcl::MORPH_DILATE, pcl::MORPH_ERODE, pcl::MORPH_OPEN, pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setInputCloud(), pcl::PointCloud< PointT >::size(), и pcl::PointCloud< PointT >::swap().

assignNormalWeights()

template<typename NormalT >
std::vector<float> pcl::assignNormalWeights ( const PointCloud< NormalT > & cloud,
index_t index,
const Indices & k_indices,
const std::vector< float > & k_sqr_distances
)
inline

#include <pcl/filters/normal_refinement.h>

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

Todo:
В настоящее время эта функция выравнивает все веса до 1
Параметры
cloud данные облака точек
index валидный индекс в cloud, представляющий валидную (т.е., конечную) точку запроса
k_indices индексы соседних точек
k_sqr_distances квадраты расстояний до соседних точек
Возвращает
веса

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

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

Обращается к pcl::refineNormal().

getAllNeighborCellIndices()

Eigen::MatrixXi pcl::getAllNeighborCellIndices ( )
inline

#include <pcl/filters/voxel_grid.h>

Получение относительных индексов ячеек всех 26 соседей.

Примечание
Полезно в сочетании с getNeighborCentroidIndices() из VoxelGrid

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

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

Обращается к pcl::VoxelGridCovariance< PointT >::getAllNeighborsAtPoint() и pcl::VoxelGridCovariance< PointT >::getNeighborhoodAtPoint().

getHalfNeighborCellIndices()

Eigen::MatrixXi pcl::getHalfNeighborCellIndices ( )
inline

#include <pcl/filters/voxel_grid.h>

Получение относительных индексов ячеек 13 соседей "верхней половины".

Примечание
Полезно в сочетании с getNeighborCentroidIndices() из VoxelGrid

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

Обращается к pcl::getAllNeighborCellIndices().

getMinMax3D() [1/2]

template<typename PointT >
void pcl::getMinMax3D ( const typename pcl::PointCloud< PointT >::ConstPtr & облако,
const Indices & индексы,
const std::string & название_поля_расстояния,
float мин_расстояние,
float макс_расстояние,
Eigen::Vector4f & мин_точка,
Eigen::Vector4f & макс_точка,
bool ограничить_отрицательные = false
)

#include <pcl/filters/voxel_grid.h>

Получить минимальные и максимальные значения по каждой из 3 (x-y-z) осей в заданном облаке точек, не учитывая точки, находящиеся за пределами порогового расстояния от начала координат лазера.

Parameters
[in] облако данные облака точек
[in] индексы вектор индексов для использования
[in] название_поля_расстояния имя поля, содержащего значения расстояния
[in] мин_расстояние минимальное расстояние, с которого точка будет рассматриваться
[in] макс_расстояние максимальное расстояние, до которого точка будет рассматриваться
[out] мин_точка результирующие минимальные границы
[out] макс_точка результирующие максимальные границы
[in] ограничить_отрицательные если установлено в true, то все точки вне интервала (мин_расстояние;макс_расстояние) рассматриваются

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

Ссылки на pcl::PointCloud< PointT >::is_dense.

getMinMax3D() [2/2]

template<typename PointT >
void pcl::getMinMax3D ( const typename pcl::PointCloud< PointT >::ConstPtr & облако,
const std::string & название_поля_расстояния,
float мин_расстояние,
float макс_расстояние,
Eigen::Vector4f & мин_точка,
Eigen::Vector4f & макс_точка,
bool ограничить_отрицательные = false
)

#include <pcl/filters/voxel_grid.h>

Получить минимальные и максимальные значения по каждой из 3 (x-y-z) осей в заданном облаке точек, не учитывая точки, находящиеся за пределами порогового расстояния от начала координат лазера.

Parameters
[in] облако данные облака точек
[in] название_поля_расстояния имя поля, содержащего значения расстояния
[in] мин_расстояние минимальное расстояние, с которого точка будет рассматриваться
[in] макс_расстояние максимальное расстояние, до которого точка будет рассматриваться
[out] мин_точка результирующие минимальные границы
[out] макс_точка результирующие максимальные границы
[in] ограничить_отрицательные если установлено в true, то все точки вне интервала (мин_расстояние;макс_расстояние) рассматриваются

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

Ссылки на pcl::PointCloud< PointT >::is_dense и pcl::isXYZFinite().

уточнитьНормаль()

template<typename NormalT >
bool pcl::refineNormal ( const PointCloud< NormalT > & облако,
int индекс,
const Indices & k_индексы,
const std::vector< float > & k_квадраты_расстояний,
NormalT & точка
)
inline

#include <pcl/filters/normal_refinement.h>

Уточнить нормаль для индексированной точки, основываясь на её соседях. Эта функция записывает данные только в поля нормаль_*.

Примечание
Если у индексированной точки в окрестности только значения NaN, результирующая нормаль будет нулевой.
Parameters
облако данные облака точек
индекс корректный индекс в облаке, представляющий корректную (т.е., конечную) точку запроса
k_индексы индексы соседних точек
k_квадраты_расстояний квадраты расстояний до соседних точек
точка выходная точка, записываются только поля нормаль_*
Возвращает
false, если произошла ошибка (норма суммарных нормалей равна нулю или все соседи NaN)

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

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

Используется в pcl::NormalRefinement< NormalT >::applyFilter().

удалитьNaNИзОблака() [1/2]

template<typename PointT >
void pcl::removeNaNFromPointCloud ( const pcl::PointCloud< PointT > & cloud_in,
Indices & index
)

#include <pcl/filters/filter_indices.h>

Удаляет точки с x, y или z, равными NaN (сухое выполнение).

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

Примечание
Эта функция не изменяет входное облако точек!
Параметры
cloud_in облако входных точек
index отображение (упорядоченное): filtered_cloud[i] = cloud_in[index[i]]
См. также
removeNaNFromPointCloud

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

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

removeNaNFromPointCloud() [2/2]

template<typename PointT >
void pcl::removeNaNFromPointCloud ( const pcl::PointCloud< PointT > & cloud_in,
pcl::PointCloud< PointT > & cloud_out,
Indices & index
)

#include <pcl/filters/filter.h>

Удаляет точки с x, y или z, равными NaN.

Параметры
[in] cloud_in облако входных точек
[out] cloud_out облако выходных точек
[out] index отображение (упорядоченное): cloud_out[i] = cloud_in[index[i]]
Примечание
Плотность облака точек теряется.
Может быть вызвана с cloud_in == cloud_out

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

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

Ссылка на pcl::kinfuLS::WorldModel< PointT >::cleanWorldFromNans(), и pcl::kinfuLS::WorldModel< PointT >::getWorldAsCubes().

removeNaNNormalsFromPointCloud()

template<typename PointT >
void pcl::removeNaNNormalsFromPointCloud ( const pcl::PointCloud< PointT > & cloud_in,
pcl::PointCloud< PointT > & cloud_out,
Indices & index
)

#include <pcl/filters/filter.h>

Удаляет точки, у которых нормали недействительны (т.е. равны NaN)

Параметры
[in] cloud_in облако входных точек
[out] cloud_out облако выходных точек
[out] index отображение (упорядоченное): cloud_out[i] = cloud_in[index[i]]
Примечание
Плотность облака точек теряется.
Может быть вызвана с cloud_in == cloud_out

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

Ссылки на pcl::PointCloud< PointT >::header, pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::is_dense, pcl::isFinite(), pcl::PointCloud< PointT >::resize(), pcl::PointCloud< PointT >::sensor_orientation_, pcl::PointCloud< PointT >::sensor_origin_, pcl::PointCloud< PointT >::size(), и pcl::PointCloud< PointT >::width.

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

Spec-Zone.ru

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