Spec-Zone.ru › PointCloudLibrary
GRSDEstimation вычисляет дескриптор поверхности на основе глобального радиуса (GRSD) для заданного набора данных облака точек, содержащего точки и нормали. Подробнее...
#include <pcl/features/grsd.h >
using
PointCloudOut = typename Feature < PointInT, PointOutT >::PointCloudOut
using
PointCloudIn = typename Feature < PointInT, PointOutT >::PointCloudIn
using
PointCloudInPtr = typename Feature < PointInT, PointOutT >::PointCloudInPtr
using
PointCloudN = pcl::PointCloud < PointNT >
using
PointCloudNPtr = typename PointCloudN::Ptr
using
PointCloudNConstPtr = typename PointCloudN::ConstPtr
using
Ptr = shared_ptr< FeatureFromNormals < PointInT, PointNT, PointOutT > >
using
ConstPtr = shared_ptr< const FeatureFromNormals < 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
GRSDEstimation ()
Конструктор. Подробнее...
void
setRadiusSearch (double radius)
Задать радиус сферы, используемый для определения ближайших соседей при оценке признака. Подробнее...
double
getRadiusSearch () const
Получить радиус сферы, используемый для определения соседей. Подробнее...
void
setNrSubdivisions (int nr_subdiv)
Задать количество подразделений для рассматриваемого интервала расстояний. Подробнее...
void
setPlaneRadius (double plane_radius)
Задать максимальный радиус, выше которого всё можно считать плоским. Подробнее...
FeatureFromNormals ()
Пустой конструктор. Подробнее...
void
setInputNormals (const PointCloudNConstPtr &normals)
Передать указатель на входной набор данных, содержащий нормали точек набора XYZ. Подробнее...
PointCloudNConstPtr
getInputNormals () const
Получить указатель на нормали входного облака точек XYZ. Подробнее...
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 ()
Пустой конструктор. Подробнее...
static int
getSimpleType (float min_radius, float max_radius, double min_radius_plane=0.100, double max_radius_noise=0.015, double min_radius_cylinder=0.175, double max_min_radius_diff=0.050)
Определить тип локальной поверхности на основе вычисленных минимального и максимального радиусов. Подробнее...
void
computeFeature (PointCloudOut &output) override
Оценить глобальный дескриптор поверхности на основе радиусов (GRSD) для набора точек, заданного с помощью <setInputCloud (), setIndices ()>, используя поверхность из setSearchSurface () и пространственный локатор из setSearchMethod () Подробнее...
virtual bool
initCompute ()
Этот метод следует вызвать перед началом фактических вычислений. Подробнее...
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 ()
Этот метод следует вызвать после завершения фактических вычислений. Подробнее...
template<typename PointInT, typename PointNT, typename PointOutT> class pcl::GRSDEstimation< PointInT, PointNT, PointOutT > GRSDEstimation вычисляет глобальный дескриптор поверхности на основе радиуса (GRSD) для заданного набора данных облака точек, содержащего точки и нормали.
Примечание
Если вы используете этот код в научной работе, пожалуйста, приведите следующие ссылки (первая — для трассировки лучей, вторая — для аддитивной версии):
Z.C. Marton, D. Pangercic, N. Blodow, Michael Beetz. Combined 2D-3D Categorization and Classification for Multimodal Perception Systems. In The International Journal of Robotics Research, Sage Publications pages 1378–1402, Volume 30, Number 11, September 2011. A. Kanezaki, Z.C. Marton, D. Pangercic, T. Harada, Y. Kuniyoshi, M. Beetz. Voxelized Shape and Color Histograms for RGB-D In the Workshop on Active Semantic Perception and Объект Search in the Real World, in conjunction with the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) San Francisco, California, September 25-30, 2011.
Примечание
Код является состоянием, поскольку предполагается, что этот класс не будет выполняться параллельно на нескольких ядрах. Примеры параллельных реализаций FPFH (Fast Point Feature Histogram ) см. в FPFHEstimationOMP .
Автор
Zoltan Csaba Marton
Параметры шаблона
Определение в строке 72 файла grsd.h .
PointCloudIn template<typename PointInT , typename PointNT , typename PointOutT >
PointCloudInPtr template<typename PointInT , typename PointNT , typename PointOutT >
PointCloudOut template<typename PointInT , typename PointNT , typename PointOutT >
GRSDEstimation() template<typename PointInT , typename PointNT , typename PointOutT >
computeFeature() template<typename PointInT , typename PointNT , typename PointOutT >
Вычисляет глобальный дескриптор поверхности на основе радиуса (GRSD) для набора точек, заданного с помощью <setInputCloud (), setIndices ()>, используя поверхность, заданную в setSearchSurface (), и пространственный локатор, заданный в setSearchMethod ().
Параметры
output
результирующее облако точек, содержащее признак GRSD
Реализует pcl::Feature< PointInT, PointOutT > .
Определение в строке 65 файла grsd.hpp .
Ссылки: pcl::PointCloud< PointT >::clear() , pcl::Feature< PointInT, PointOutT >::compute() , pcl::Filter< PointT >::filter() , pcl::VoxelGrid< PointT >::getNeighborCentroidIndices() , pcl::PointCloud< PointT >::height , pcl::PointCloud< PointT >::points , pcl::PointCloud< PointT >::resize() , pcl::PCLBase< PointT >::setInputCloud() , pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >::setInputNormals() , pcl::VoxelGrid< PointT >::setLeafSize() , pcl::RSDEstimation< PointInT, PointNT, PointOutT >::setNrSubdivisions() , pcl::RSDEstimation< PointInT, PointNT, PointOutT >::setPlaneRadius() , pcl::Feature< PointInT, PointOutT >::setRadiusSearch() , pcl::VoxelGrid< PointT >::setSaveLeafLayout() , pcl::Feature< PointInT, PointOutT >::setSearchSurface() , pcl::PointCloud< PointT >::size() , и pcl::PointCloud< PointT >::width .
getRadiusSearch() template<typename PointInT , typename PointNT , typename PointOutT >
getSimpleType() template<typename PointInT , typename PointNT , typename PointOutT >
int pcl::GRSDEstimation < PointInT, PointNT, PointOutT >::getSimpleType ( float
min_radius , float
max_radius , double
min_radius_plane = 0.100, double
max_radius_noise = 0.015, double
min_radius_cylinder = 0.175, double
max_min_radius_diff = 0.050 )
inline static
Возвращает тип локальной поверхности на основе вычисленных минимального и максимального радиусов.
Возвращает
целое число, представляющее тип локальной поверхности: плоскость (1), цилиндр (2), шум или угол (0), сфера (3) и ребро (4)
Определение в строке 46 файла grsd.hpp .
setNrSubdivisions() template<typename PointInT , typename PointNT , typename PointOutT >
Задает количество подразделений для рассматриваемого интервала расстояний.
Эта функция настраивает лежащий в основе RSDEstimation . Дополнительную информацию см. в документации к нему. Если эта функция не вызывается, используется значение по умолчанию из RSDEstimation .
Параметры
[in]
nr_subdiv
количество подразделений
Определение в строке 115 файла grsd.h .
setPlaneRadius() template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::GRSDEstimation < PointInT, PointNT, PointOutT >::setPlaneRadius ( double plane_radius
)
inline
Задает максимальный радиус, выше которого поверхность можно считать плоской.
Эта функция настраивает лежащий в основе RSDEstimation . Дополнительную информацию см. в документации к нему. Если эта функция не вызывается, используется значение по умолчанию из RSDEstimation .
Параметры
[in]
plane_radius
новый радиус плоскости
Определение в строке 123 файла grsd.h .
setRadiusSearch() template<typename PointInT , typename PointNT , typename PointOutT >
Задает радиус сферы, используемый для определения ближайших соседей при вычислении признака.
То же значение будет использоваться в качестве размера ячейки внутренней воксельной сетки.
Параметры
[in]
radius
радиус сферы, используемый в качестве максимального расстояния, на котором точка считается соседом
Определение в строке 101 файла grsd.h .
Ссылки: pcl::Feature< PointInT, PointOutT >::search_radius_ .
Документация для этого класса создана на основе следующих файлов: