PFHEstimation вычисляет дескриптор гистограммы признаков точек (PFH) для заданного набора данных облака точек, содержащего точки и нормали. Подробнее...
#include <pcl/features/pfh.h>
Общедоступные типы | |
| 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 |
|
| |
| 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 > > |
|
| |
| 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 |
Открытые функции-члены | |
| 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) заданной точки на основе ее пространственного окружения из трехмерных точек с нормалями. Подробнее... |
|
|
| |
| 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 () | |
| Пустой конструктор. Подробнее... |
|
| 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 () Подробнее... |
|
|
| |
| 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 () |
| Этот метод следует вызывать после завершения фактических вычислений. Подробнее... |
|
Защищённые атрибуты | |
| 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, чтобы использовать внутренний кэш для устранения повторяющихся вычислений. Подробнее... |
|
|
| |
| PointCloudNConstPtr | normals_ |
| Указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее... |
|
|
| |
| 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. Подробнее... |
|
|
| |
| 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.
Документация по псевдонимам типов-членов
ConstPtr
| using pcl::PFHEstimation< PointInT, PointNT, PointOutT >::ConstPtr = shared_ptr<const PFHEstimation<PointInT, PointNT, PointOutT> > |
PointCloudIn
| using pcl::PFHEstimation< PointInT, PointNT, PointOutT >::PointCloudIn = typename Feature<PointInT, PointOutT>::PointCloudIn |
PointCloudOut
| using pcl::PFHEstimation< PointInT, PointNT, PointOutT >::PointCloudOut = typename Feature<PointInT, PointOutT>::PointCloudOut |
Ptr
| using pcl::PFHEstimation< PointInT, PointNT, PointOutT >::Ptr = shared_ptr<PFHEstimation<PointInT, PointNT, PointOutT> > |
Документация по конструкторам и деструкторам
PFHEstimation()
| inline |
Конструктор без параметров.
Устанавливает use_cache_ в значение false, nr_subdiv_ — в 5, а внутренний максимальный размер кэша — в 1 ГБ.
Определение в строке 101 файла pfh.h.
Ссылки на pcl::Feature< PointInT, PointOutT >::feature_name_.
Описание методов класса
computeFeature()
| overrideprotectedvirtual |
Вычисляет дескрипторы гистограмм признаков точек (PFH) для набора точек, заданного с помощью <setInputCloud (), setIndices ()>, используя поверхность из setSearchSurface () и пространственный локатор из setSearchMethod ()
- Параметры
-
[out] output итоговый набор данных модели облака точек, содержащий оценки признаков PFH
Реализует pcl::Feature< PointInT, PointOutT >.
Определение в строке 167 файла pfh.hpp.
Ссылки на pcl::PointCloud< PointT >::is_dense и pcl::isFinite().
computePairFeatures()
| 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()
| 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()
| inline |
Возвращает максимальный размер внутреннего кэша.
Определение в строке 122 файла pfh.h.
Ссылки на pcl::PFHEstimation< PointInT, PointNT, PointOutT >::max_cache_size_.
getUseInternalCache()
| inline |
Возвращает признак того, используется ли внутренний кэш при вычислении признаков PFH.
Определение в строке 146 файла pfh.h.
Ссылки на pcl::PFHEstimation< PointInT, PointNT, PointOutT >::use_cache_.
setMaximumCacheSize()
| inline |
Задает максимальный размер внутреннего кэша.
По умолчанию — объем памяти, достаточный для хранения записей размером 2 ГБ.
- Параметры
-
[in] cache_size максимальный размер кэша
Определение в строке 115 файла pfh.h.
Ссылки на pcl::PFHEstimation< PointInT, PointNT, PointOutT >::max_cache_size_.
setUseInternalCache()
| inline |
Задает, следует ли использовать внутренний механизм кэширования для устранения избыточных вычислений.
- Примечание
- В зависимости от порядка точек в облаке и способа определения ближайших соседей использование кэша может как повысить, так и снизить производительность. Проверьте работу с кэшем и без него на своих данных и выберите наиболее подходящий вариант!
Информацию о задании максимального размера кэша см. в setMaximumCacheSize.
- Параметры
-
[in] use_cache установите значение true, чтобы использовать внутренний кэш, иначе — false
Определение в строке 139 файла pfh.h.
Ссылки на pcl::PFHEstimation< PointInT, PointNT, PointOutT >::use_cache_.
Описание данных класса
d_pi_
| protected |
f_index_
| protected |
feature_map_
| protected |
key_list_
| protected |
max_cache_size_
| protected |
Максимальный размер внутренней памяти кэша.
Определение в строке 212 файла pfh.h.
На это поле ссылаются pcl::PFHEstimation< PointInT, PointNT, PointOutT >::getMaximumCacheSize() и pcl::PFHEstimation< PointInT, PointNT, PointOutT >::setMaximumCacheSize().
nr_subdiv_
| protected |
pfh_histogram_
| protected |
pfh_tuple_
| protected |
use_cache_
| protected |
Установите значение true, чтобы использовать внутренний кэш для устранения повторных вычислений.
Определение в строке 215 файла pfh.h.
На это поле ссылаются pcl::PFHEstimation< PointInT, PointNT, PointOutT >::getUseInternalCache() и pcl::PFHEstimation< PointInT, PointNT, PointOutT >::setUseInternalCache().
Документация этого класса создана на основе следующих файлов:
© 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