Spec-Zone.ru › PointCloudLibrary

PFHEstimation вычисляет дескриптор гистограммы признаков точек (PFH) для заданного набора данных облака точек, содержащего точки и нормали. Подробнее...

#include <pcl/features/pfh.h>

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

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

using Ptr = shared_ptr< PFHEstimation< PointInT, PointNT, PointOutT > >
using ConstPtr = shared_ptr< const PFHEstimation< PointInT, PointNT, PointOutT > >
using PointCloudOut = typename Feature< PointInT, PointOutT >::PointCloudOut
using PointCloudIn = typename Feature< PointInT, PointOutT >::PointCloudIn
- Общедоступные типы, унаследованные от pcl::FeatureFromNormals< PointInT, PointNT, pcl::PFHSignature125 >
using PointCloudN = pcl::PointCloud< PointNT >
using PointCloudNPtr = typename PointCloudN::Ptr
using PointCloudNConstPtr = typename PointCloudN::ConstPtr
using Ptr = shared_ptr< FeatureFromNormals< PointInT, PointNT, pcl::PFHSignature125 > >
using ConstPtr = shared_ptr< const FeatureFromNormals< PointInT, PointNT, pcl::PFHSignature125 > >
- Общедоступные типы, унаследованные от pcl::Feature< PointInT, 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 > &)>
- Общедоступные типы, унаследованные от 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

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

PFHEstimation ()
Пустой конструктор. Подробнее...
void setMaximumCacheSize (unsigned int cache_size)
Задать максимальный размер внутреннего кэша. Подробнее...
unsigned int getMaximumCacheSize ()
Получить максимальный размер внутреннего кэша. Подробнее...
void setUseInternalCache (bool use_cache)
Задать, следует ли использовать внутренний механизм кэширования для исключения повторных вычислений. Подробнее...
bool getUseInternalCache ()
Получить сведения о том, используется ли внутренний кэш для вычисления признаков PFH. Подробнее...
bool computePairFeatures (const pcl::PointCloud< PointInT > &cloud, const pcl::PointCloud< PointNT > &normals, int p_idx, int q_idx, float &f1, float &f2, float &f3, float &f4)
Вычислить представление в виде четверки значений, содержащей три угла и расстояние между двумя точками, заданными декартовыми координатами и нормалями. Подробнее...
void computePointPFHSignature (const pcl::PointCloud< PointInT > &cloud, const pcl::PointCloud< PointNT > &normals, const pcl::Indices &indices, int nr_split, Eigen::VectorXf &pfh_histogram)
Оценить индивидуальные сигнатуры PFH (гистограмм признаков точек) для трех угловых признаков (f1, f2, f3) заданной точки на основе ее пространственного окружения из трехмерных точек с нормалями. Подробнее...
- Открытые функции-члены, унаследованные от pcl::FeatureFromNormals< PointInT, PointNT, pcl::PFHSignature125 >
FeatureFromNormals ()
Пустой конструктор. Подробнее...
void setInputNormals (const PointCloudNConstPtr &normals)
Передать указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее...
PointCloudNConstPtr getInputNormals () const
Получить указатель на нормали входного набора точек XYZ. Подробнее...
- Открытые функции-члены, унаследованные от pcl::Feature< PointInT, PointOutT >
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 (). Подробнее...
- Открытые функции-члены, унаследованные от 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 для сокращения кода. Подробнее...

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

void computeFeature (PointCloudOut &output) override
Вычисляет дескрипторы гистограммы признаков точек (PFH) для набора точек, заданного с помощью <setInputCloud (), setIndices ()>, используя поверхность из setSearchSurface () и пространственный локатор из setSearchMethod () Подробнее...
- Защищённые функции-члены, унаследованные от pcl::FeatureFromNormals< PointInT, PointNT, pcl::PFHSignature125 >
virtual bool initCompute ()
Этот метод следует вызывать перед началом фактических вычислений. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::Feature< PointInT, PointOutT >
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. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::PCLBase< PointInT >
bool initCompute ()
Этот метод следует вызывать перед началом фактических вычислений. Подробнее...
bool deinitCompute ()
Этот метод следует вызывать после завершения фактических вычислений. Подробнее...

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

int nr_subdiv_ {5}
Количество подразделений для каждого интервала углового признака. Подробнее...
Eigen::VectorXf pfh_histogram_
Буфер для сигнатуры PFH точки. Подробнее...
Eigen::Vector4f pfh_tuple_
Буфер для 4-элементового кортежа PFH. Подробнее...
int f_index_ [3]
Буфер для индекса гистограммы. Подробнее...
float d_pi_
Константа типа float = 1.0 / (2.0 * M_PI) Подробнее...
std::map< std::pair< int, int >, Eigen::Vector4f, std::less<>, Eigen::aligned_allocator< std::pair< const std::pair< int, int >, Eigen::Vector4f > > > feature_map_
Внутренняя хеш-таблица, используемая для оптимизации производительности при повторяющихся вычислениях. Подробнее...
std::queue< std::pair< int, int > > key_list_
Очередь сохранённых пар, используемая для ограничения потребления памяти. Подробнее...
unsigned int max_cache_size_
Максимальный размер внутреннего кэша. Подробнее...
bool use_cache_ {false}
Установите значение true, чтобы использовать внутренний кэш для устранения повторяющихся вычислений. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::FeatureFromNormals< PointInT, PointNT, pcl::PFHSignature125 >
PointCloudNConstPtr normals_
Указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::Feature< PointInT, PointOutT >
std::string feature_name_
Имя признака. Подробнее...
SearchMethodSurface search_method_surface_
Шаблон метода поиска точек. Подробнее...
PointCloudInConstPtr surface_
Входное облако точек, описывающее поверхность, используемую для поиска ближайших соседей. Подробнее...
KdTreePtr tree_
Указатель на объект пространственного поиска. Подробнее...
double search_parameter_
Фактический параметр поиска (из search_radius_ или k_). Подробнее...
double search_radius_
Радиус поиска ближайших соседей для каждой точки. Подробнее...
int k_
Количество K ближайших соседей для каждой точки. Подробнее...
bool fake_surface_
Если поверхность не задана, в качестве поверхности используется входное облако PointCloud. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::PCLBase< PointInT >
PointCloudConstPtr input_
Входной набор данных облака точек. Подробнее...
IndicesPtr indices_
Указатель на вектор индексов используемых точек. Подробнее...
bool use_indices_
Установите значение true, если используются индексы точек. Подробнее...
bool fake_indices_
Если набор индексов не задан, создаётся набор фиктивных индексов, соответствующий входному облаку PointCloud. Подробнее...

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

template<typename PointInT, typename PointNT, typename PointOutT = pcl::PFHSignature125>
class pcl::PFHEstimation< PointInT, PointNT, PointOutT >

PFHEstimation вычисляет дескриптор гистограммы признаков точек (PFH) для заданного набора данных облака точек, содержащего точки и нормали.

В качестве типа PointOutT часто используется pcl::PFHSignature125.

Примечание
Если вы используете этот код в научной работе, пожалуйста, укажите следующие источники:
  • R.B. Rusu, N. Blodow, Z.C. Marton, M. Beetz. Сопоставление видов облака точек с помощью устойчивых гистограмм признаков. В материалах 21-й международной конференции IEEE/RSJ по интеллектуальным роботам и системам (IROS), Ницца, Франция, 22–26 сентября 2008 г.
  • R.B. Rusu, Z.C. Marton, N. Blodow, M. Beetz. Изучение информативных классов точек для получения карт моделей объектов. В материалах 10-й международной конференции по управлению, автоматизации, робототехнике и машинному зрению (ICARCV), Ханой, Вьетнам, 17–20 декабря 2008 г.
Внимание
Для признаков PFH приняты следующие соглашения:
  • если не удаётся определить ближайших соседей точки запроса, признак PFH будет иметь значение NaN (не число)
  • невозможно вычислить дескриптор PFH для точки с неконечными трёхмерными координатами. Поэтому для любой точки, содержащей данные NaN в координатах x, y или z, свойству признака PFH будет присвоено значение NaN.
Примечание
Код является состоянием, поскольку этот класс не предназначен для параллельного выполнения на нескольких ядрах. Примеры параллельных реализаций FPFH (быстрой гистограммы признаков точек) см. в FPFHEstimationOMP.
Автор
Radu B. Rusu

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

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

ConstPtr

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
using pcl::PFHEstimation< PointInT, PointNT, PointOutT >::ConstPtr = shared_ptr<const PFHEstimation<PointInT, PointNT, PointOutT> >

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

PointCloudIn

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
using pcl::PFHEstimation< PointInT, PointNT, PointOutT >::PointCloudIn = typename Feature<PointInT, PointOutT>::PointCloudIn

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

PointCloudOut

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
using pcl::PFHEstimation< PointInT, PointNT, PointOutT >::PointCloudOut = typename Feature<PointInT, PointOutT>::PointCloudOut

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

Ptr

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
using pcl::PFHEstimation< PointInT, PointNT, PointOutT >::Ptr = shared_ptr<PFHEstimation<PointInT, PointNT, PointOutT> >

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

Документация по конструкторам и деструкторам

PFHEstimation()

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
pcl::PFHEstimation< PointInT, PointNT, PointOutT >::PFHEstimation ( )
inline

Конструктор без параметров.

Устанавливает use_cache_ в значение false, nr_subdiv_ — в 5, а внутренний максимальный размер кэша — в 1 ГБ.

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

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

Описание методов класса

computeFeature()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::PFHEstimation< PointInT, PointNT, PointOutT >::computeFeature ( PointCloudOut & output )
overrideprotectedvirtual

Вычисляет дескрипторы гистограмм признаков точек (PFH) для набора точек, заданного с помощью <setInputCloud (), setIndices ()>, используя поверхность из setSearchSurface () и пространственный локатор из setSearchMethod ()

Параметры
[out] output итоговый набор данных модели облака точек, содержащий оценки признаков PFH

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

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

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

computePairFeatures()

template<typename PointInT , typename PointNT , typename PointOutT >
bool pcl::PFHEstimation< PointInT, PointNT, PointOutT >::computePairFeatures ( const pcl::PointCloud< PointInT > & cloud,
const pcl::PointCloud< PointNT > & normals,
int p_idx,
int q_idx,
float & f1,
float & f2,
float & f3,
float & f4
)

Вычисляет представление в виде кортежа из 4 элементов, содержащего три угла и расстояние между двумя точками, заданными декартовыми координатами и нормалями.

Примечание
Объяснение признаков см. в упомянутой выше литературе (порядок признаков может отличаться).
Параметры
[in] cloud набор данных, содержащий декартовы координаты XYZ двух точек
[in] normals набор данных, содержащий нормали поверхности (предполагается, что векторы нормализованы) в каждой точке облака
[in] p_idx индекс первой точки (источника)
[in] q_idx индекс второй точки (цели)
[out] f1 первый угловой признак (угол между проекцией nq_idx и u)
[out] f2 второй угловой признак (угол между nq_idx и v)
[out] f3 третий угловой признак (угол между np_idx и |p_idx - q_idx|)
[out] f4 признак расстояния (p_idx - q_idx)
Примечание
Для повышения эффективности предполагается, что переданные методу данные точек являются конечными.

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

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

computePointPFHSignature()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::PFHEstimation< PointInT, PointNT, PointOutT >::computePointPFHSignature ( const pcl::PointCloud< PointInT > & cloud,
const pcl::PointCloud< PointNT > & normals,
const pcl::Indices & indices,
int nr_split,
Eigen::VectorXf & pfh_histogram
)

Вычисляет отдельные сигнатуры PFH (гистограмм признаков точек) для трех угловых признаков (f1, f2, f3) заданной точки на основе ее пространственного окружения из 3D-точек с нормалями.

Параметры
[in] cloud набор данных, содержащий декартовы координаты XYZ двух точек
[in] normals набор данных, содержащий нормали поверхности в каждой точке cloud
[in] indices индексы точек k-окрестности в наборе данных
[in] nr_split количество подобластей для каждого интервала углового признака
[out] pfh_histogram итоговая (комбинаторная) гистограмма PFH, представляющая признак в точке запроса

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

Ссылки на pcl::computePairFeatures(), pcl::isFinite() и M_PI.

getMaximumCacheSize()

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
unsigned int pcl::PFHEstimation< PointInT, PointNT, PointOutT >::getMaximumCacheSize ( )
inline

Возвращает максимальный размер внутреннего кэша.

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

Ссылки на pcl::PFHEstimation< PointInT, PointNT, PointOutT >::max_cache_size_.

getUseInternalCache()

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
bool pcl::PFHEstimation< PointInT, PointNT, PointOutT >::getUseInternalCache ( )
inline

Возвращает признак того, используется ли внутренний кэш при вычислении признаков PFH.

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

Ссылки на pcl::PFHEstimation< PointInT, PointNT, PointOutT >::use_cache_.

setMaximumCacheSize()

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
void pcl::PFHEstimation< PointInT, PointNT, PointOutT >::setMaximumCacheSize ( unsigned int cache_size )
inline

Задает максимальный размер внутреннего кэша.

По умолчанию — объем памяти, достаточный для хранения записей размером 2 ГБ.

Параметры
[in] cache_size максимальный размер кэша

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

Ссылки на pcl::PFHEstimation< PointInT, PointNT, PointOutT >::max_cache_size_.

setUseInternalCache()

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
void pcl::PFHEstimation< PointInT, PointNT, PointOutT >::setUseInternalCache ( bool use_cache )
inline

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

Примечание
В зависимости от порядка точек в облаке и способа определения ближайших соседей использование кэша может как повысить, так и снизить производительность. Проверьте работу с кэшем и без него на своих данных и выберите наиболее подходящий вариант!

Информацию о задании максимального размера кэша см. в setMaximumCacheSize.

Параметры
[in] use_cache установите значение true, чтобы использовать внутренний кэш, иначе — false

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

Ссылки на pcl::PFHEstimation< PointInT, PointNT, PointOutT >::use_cache_.

Описание данных класса

d_pi_

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
float pcl::PFHEstimation< PointInT, PointNT, PointOutT >::d_pi_
protected

Константа типа float = 1.0 / (2.0 * M_PI)

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

f_index_

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
int pcl::PFHEstimation< PointInT, PointNT, PointOutT >::f_index_[3]
protected

Вспомогательное поле для индекса гистограммы.

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

feature_map_

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
std::map<std::pair<int, int>, Eigen::Vector4f, std::less<>, Eigen::aligned_allocator<std::pair<const std::pair<int, int>, Eigen::Vector4f> > > pcl::PFHEstimation< PointInT, PointNT, PointOutT >::feature_map_
protected

Внутренняя хеш-таблица для повышения эффективности за счет исключения повторных вычислений.

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

key_list_

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
std::queue<std::pair<int, int> > pcl::PFHEstimation< PointInT, PointNT, PointOutT >::key_list_
protected

Очередь сохраненных пар, используемая для ограничения потребления памяти.

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

max_cache_size_

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
unsigned int pcl::PFHEstimation< PointInT, PointNT, PointOutT >::max_cache_size_
protected

Максимальный размер внутренней памяти кэша.

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

На это поле ссылаются pcl::PFHEstimation< PointInT, PointNT, PointOutT >::getMaximumCacheSize() и pcl::PFHEstimation< PointInT, PointNT, PointOutT >::setMaximumCacheSize().

nr_subdiv_

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
int pcl::PFHEstimation< PointInT, PointNT, PointOutT >::nr_subdiv_ {5}
protected

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

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

pfh_histogram_

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
Eigen::VectorXf pcl::PFHEstimation< PointInT, PointNT, PointOutT >::pfh_histogram_
protected

Вспомогательное поле для сигнатуры PFH точки.

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

pfh_tuple_

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
Eigen::Vector4f pcl::PFHEstimation< PointInT, PointNT, PointOutT >::pfh_tuple_
protected

Вспомогательное поле для кортежа PFH из 4 элементов.

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

use_cache_

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>
bool pcl::PFHEstimation< PointInT, PointNT, PointOutT >::use_cache_ {false}
protected

Установите значение true, чтобы использовать внутренний кэш для устранения повторных вычислений.

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

На это поле ссылаются pcl::PFHEstimation< PointInT, PointNT, PointOutT >::getUseInternalCache() и pcl::PFHEstimation< PointInT, PointNT, PointOutT >::setUseInternalCache().


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

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

Spec-Zone.ru

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