Spec-Zone.ru › PointCloudLibrary
Реализация фильтра масштаба разности нормалей (DoN) для данных облака точек. Подробнее...
#include <pcl/features/don.h >
using
Ptr = shared_ptr< DifferenceOfNormalsEstimation < PointInT, PointNT, PointOutT > >
using
ConstPtr = shared_ptr< const DifferenceOfNormalsEstimation < PointInT, PointNT, PointOutT > >
using
BaseClass = PCLBase < PointInT >
using
Ptr = shared_ptr< Feature < PointInT, PointOutT > >
using
ConstPtr = shared_ptr< const Feature < PointInT, PointOutT > >
using
KdTree = pcl::search::Search < PointInT >
using
KdTreePtr = typename KdTree::Ptr
using
PointCloudIn = pcl::PointCloud < PointInT >
using
PointCloudInPtr = typename PointCloudIn::Ptr
using
PointCloudInConstPtr = typename PointCloudIn::ConstPtr
using
PointCloudOut = pcl::PointCloud < PointOutT >
using
SearchMethod = std::function< int(std::size_t, double, pcl::Indices &, std::vector< float > &)>
using
SearchMethodSurface = std::function< int(const PointCloudIn &cloud, std::size_t index, double, pcl::Indices &, std::vector< float > &)>
using
PointCloud = pcl::PointCloud < PointInT >
using
PointCloudPtr = typename PointCloud::Ptr
using
PointCloudConstPtr = typename PointCloud::ConstPtr
using
PointIndicesPtr = PointIndices::Ptr
using
PointIndicesConstPtr = PointIndices::ConstPtr
DifferenceOfNormalsEstimation ()
Создаёт новый фильтр разности нормалей. Подробнее...
~DifferenceOfNormalsEstimation () override=default
void
setNormalScaleSmall (const PointCloudNConstPtr &normals)
Задаёт нормали, вычисленные с использованием меньшего радиуса поиска (масштаба) для оператора DoN. Подробнее...
void
setNormalScaleLarge (const PointCloudNConstPtr &normals)
Задаёт нормали, вычисленные с использованием большего радиуса поиска (масштаба) для оператора DoN. Подробнее...
void
computeFeature (PointCloudOut &output) override
Вычисляет вектор DoN для каждой точки входного облака точек и записывает облако векторов в заданный выходной параметр. Подробнее...
bool
initCompute () override
Инициализирует вычисление признаков. Подробнее...
Feature ()
Конструктор без параметров. Подробнее...
void
setSearchSurface (const PointCloudInConstPtr &cloud)
Передаёт указатель на набор данных с дополнительной информацией для оценки признаков каждой точки входного набора данных. Подробнее...
PointCloudInConstPtr
getSearchSurface () const
Возвращает указатель на набор данных облака точек поверхности. Подробнее...
void
setSearchMethod (const KdTreePtr &tree)
Передаёт указатель на объект поиска. Подробнее...
KdTreePtr
getSearchMethod () const
Возвращает указатель на используемый метод поиска. Подробнее...
double
getSearchParameter () const
Возвращает внутренний параметр поиска. Подробнее...
void
setKSearch (int k)
Задаёт количество k ближайших соседей, используемых для оценки признаков. Подробнее...
int
getKSearch () const
Возвращает количество k ближайших соседей, используемых для оценки признаков. Подробнее...
void
setRadiusSearch (double radius)
Задаёт радиус сферы, используемый для определения ближайших соседей при оценке признаков. Подробнее...
double
getRadiusSearch () const
Возвращает радиус сферы, используемый для определения соседей. Подробнее...
void
compute (PointCloudOut &output)
Базовый метод оценки признаков для всех точек, заданных в <setInputCloud (), setIndices ()>, с использованием поверхности из setSearchSurface () и пространственного локатора из setSearchMethod () Подробнее...
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 для сокращения кода. Подробнее...
const std::string &
getClassName () const
Получить строковое представление имени этого класса. Подробнее...
virtual bool
deinitCompute ()
Этот метод следует вызывать после завершения вычислений. Подробнее...
int
searchForNeighbors (std::size_t index, double parameter, pcl::Indices &indices, std::vector< float > &distances) const
Найти k ближайших соседей с помощью пространственного индекса, заданного методом setSearchmethod , и указанной поверхности, заданной методом setSearchSurface . Подробнее...
int
searchForNeighbors (const PointCloudIn &cloud, std::size_t index, double parameter, pcl::Indices &indices, std::vector< float > &distances) const
Найти k ближайших соседей с помощью пространственного индекса, заданного методом setSearchmethod , и указанной поверхности, заданной методом setSearchSurface . Подробнее...
bool
initCompute ()
Этот метод следует вызывать перед началом вычислений. Подробнее...
bool
deinitCompute ()
Этот метод следует вызывать после завершения вычислений. Подробнее...
std::string
feature_name_
Имя признака. Подробнее...
SearchMethodSurface
search_method_surface_
Шаблон метода поиска точек. Подробнее...
PointCloudInConstPtr
surface_
Входное облако точек, описывающее поверхность, используемую для оценки ближайших соседей. Подробнее...
KdTreePtr
tree_
Указатель на объект пространственного поиска. Подробнее...
double
search_parameter_
Фактический параметр поиска (из search_radius_ или k_ ). Подробнее...
double
search_radius_
Радиус поиска ближайших соседей для каждой точки. Подробнее...
int
k_
Количество ближайших соседей, используемых для каждой точки. Подробнее...
bool
fake_surface_
Если поверхность не задана, в качестве поверхности используется входное облако PointCloud . Подробнее...
PointCloudConstPtr
input_
Входной набор данных — облако точек. Подробнее...
IndicesPtr
indices_
Указатель на вектор используемых индексов точек. Подробнее...
bool
use_indices_
Установите значение true, если используются индексы точек. Подробнее...
bool
fake_indices_
Если набор индексов не задан, создаётся набор фиктивных индексов, соответствующий входному облаку PointCloud. Подробнее...
template<typename PointInT, typename PointNT, typename PointOutT> class pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT > Реализация масштабного фильтра Difference of Normals (DoN) для данных облака точек.
Для каждой точки облака вычисляются две нормали с разными радиусами поиска (sigma_s, sigma_l), после чего одна нормаль вычитается из другой. Разность этих нормалей даёт признак, зависящий от масштаба, который можно использовать для фильтрации облака точек. Метод похож на Difference of Gaussians в обработке изображений, но применяется к поверхностям. Наилучшие результаты достигаются, когда радиусы поиска соотносятся как sigma_l=10*sigma_s; число октав между радиусами поиска можно рассматривать как полосу пропускания фильтра. При подходящих значениях и порогах этот метод можно использовать для выделения границ поверхности.
Внимание
Входные нормали, передаваемые методами setInputNormalsSmall и setInputNormalsLarge, должны соответствовать входному облаку точек, передаваемому методом setInputCloud. Это поведение отличается от методов оценки признаков, наследующих FeatureFromNormals , которые сопоставляют нормали с поисковой поверхностью.
Примечание
Дополнительную информацию см. в работе: Yani Ioannou. Automatic Urban Modelling using Mobile Urban LIDAR Data. Thesis (Master, Computing), Queen's University, March, 2010.
Автор
Yani Ioannou.
Определение в строке 68 файла don.h .
ConstPtr template<typename PointInT , typename PointNT , typename PointOutT >
Определение в строке 79 файла don.h .
Ptr template<typename PointInT , typename PointNT , typename PointOutT >
Определение в строке 78 файла don.h .
DifferenceOfNormalsEstimation() template<typename PointInT , typename PointNT , typename PointOutT >
~DifferenceOfNormalsEstimation() template<typename PointInT , typename PointNT , typename PointOutT >
computeFeature() template<typename PointInT , typename PointNT , typename PointOutT >
override virtual
Вычисляет вектор DoN для каждой точки входного облака и записывает облако векторов в указанный выходной параметр.
Параметры
output
облако, в которое записывается облако векторов DoN.
Реализует pcl::Feature< PointInT, PointOutT > .
Определение в строке 85 файла don.hpp .
initCompute() template<typename PointInT , typename PointNT , typename PointOutT >
Инициализация вычисления признаков.
Возвращает
true, если параметры (входные нормали, входные данные) достаточны для выполнения вычислений.
Переопределяет метод из pcl::Feature< PointInT, PointOutT > .
Определение в строке 44 файла don.hpp .
setNormalScaleLarge() template<typename PointInT , typename PointNT , typename PointOutT >
inline
Задать нормали, вычисленные с большим радиусом (масштабом) поиска для оператора DoN.
Параметры
normals
нормали, вычисленные с большим радиусом (масштабом) для фильтра DoN.
Определение в строке 106 файла don.h .
setNormalScaleSmall() template<typename PointInT , typename PointNT , typename PointOutT >
inline
Задать нормали, вычисленные с меньшим радиусом (масштабом) поиска для оператора DoN.
Параметры
normals
нормали, вычисленные с меньшим радиусом (масштабом) для фильтра DoN.
Определение в строке 96 файла don.h .
Документация для этого класса создана на основе следующих файлов: