VFHEstimation вычисляет дескриптор признака гистограммы точки обзора (VFH) для заданного набора данных облака точек, содержащего точки и нормали. Подробнее...
#include <pcl/features/vfh.h>
Общедоступные типы | |
| using | PointCloudOut = typename Feature< PointInT, PointOutT >::PointCloudOut |
| using | Ptr = shared_ptr< VFHEstimation< PointInT, PointNT, PointOutT > > |
| using | ConstPtr = shared_ptr< const VFHEstimation< PointInT, PointNT, PointOutT > > |
|
| |
| using | PointCloudN = pcl::PointCloud< PointNT > |
| using | PointCloudNPtr = typename PointCloudN::Ptr |
| using | PointCloudNConstPtr = typename PointCloudN::ConstPtr |
| using | Ptr = shared_ptr< FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 > > |
| using | ConstPtr = shared_ptr< const FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 > > |
|
| |
| 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 |
Открытые функции-члены | |
| VFHEstimation () | |
| Конструктор без параметров. Подробнее... |
|
| void | computePointSPFHSignature (const Eigen::Vector4f ¢roid_p, const Eigen::Vector4f ¢roid_n, const pcl::PointCloud< PointInT > &cloud, const pcl::PointCloud< PointNT > &normals, const pcl::Indices &indices) |
| Вычислить сигнатуры SPFH (простые гистограммы признаков точки) для угловых признаков (f1, f2, f3) и признака расстояния (f4) заданной точки на основе её окрестности. Подробнее... |
|
| void | setViewPoint (float vpx, float vpy, float vpz) |
| Задать точку обзора. Подробнее... |
|
| void | getViewPoint (float &vpx, float &vpy, float &vpz) |
| Получить точку обзора. Подробнее... |
|
| void | setUseGivenNormal (bool use) |
| Задать use_given_normal_. Подробнее... |
|
| void | setNormalToUse (const Eigen::Vector3f &normal) |
| Задать используемую нормаль. Подробнее... |
|
| void | setUseGivenCentroid (bool use) |
| Задать use_given_centroid_. Подробнее... |
|
| void | setCentroidToUse (const Eigen::Vector3f ¢roid) |
| Задать centroid_to_use_. Подробнее... |
|
| void | setNormalizeBins (bool normalize) |
| Задать normalize_bins_ Подробнее... |
|
| void | setNormalizeDistance (bool normalize) |
| Задать normalize_distances_ Подробнее... |
|
| void | setFillSizeComponent (bool fill_size) |
| Задать size_component_ Подробнее... |
|
| void | compute (PointCloudOut &output) |
| Перегруженный метод вычисления из pcl::Feature. Подробнее... |
|
|
| |
| 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 для сокращения кода. Подробнее... |
|
Защищённые функции-члены | |
| bool | initCompute () override |
| Этот метод следует вызывать перед началом фактических вычислений. Подробнее... |
|
|
| |
| 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::array< Eigen::VectorXf, 4 > | hist_f_ |
| Буфер для гистограммы f1. Подробнее... |
|
| Eigen::VectorXf | hist_vp_ |
| Буфер для гистограммы vp. Подробнее... |
|
| Eigen::Vector4f | normal_to_use_ |
|
Нормаль, используемая для вычисления VFH. Подробнее... |
|
| Eigen::Vector4f | centroid_to_use_ |
| Центроид, используемый для вычисления VFH. Подробнее... |
|
| bool | use_given_normal_ {false} |
| Использовать normal_to_use_. Подробнее... |
|
| bool | use_given_centroid_ {false} |
| Использовать centroid_to_use_. Подробнее... |
|
| bool | normalize_bins_ {true} |
| Нормализовать интервалы по общему количеству точек. Подробнее... |
|
| bool | normalize_distances_ {false} |
| Нормализовать компонент распределения формы VFH. Подробнее... |
|
| bool | size_component_ {false} |
| Включить или отключить компонент размера VFH. Подробнее... |
|
|
| |
| 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::VFHSignature308>
class pcl::VFHEstimation< PointInT, PointNT, PointOutT >
VFHEstimation вычисляет дескриптор гистограммы признаков точки обзора (VFH) для заданного набора данных облака точек, содержащего точки и нормали.
Реализация VFH по умолчанию использует 45 интервалов для каждого из трёх расширенных значений FPFH, ещё 45 интервалов для расстояний между каждой точкой и центроидом, а также 128 интервалов для компонента точки обзора. В результате получается массив из 308 значений типа float. Они хранятся в типе точки pcl::VFHSignature308. Основное отличие дескрипторов PFH/FPFH от VFH состоит в том, что для заданного набора данных облака точек вычисляется только один дескриптор VFH (vfhs->size() должно быть равно 1), тогда как результирующие данные PFH/FPFH содержат столько же элементов, сколько точек в облаке.
- Примечание
- Если вы используете этот код в научной работе, пожалуйста, укажите следующую ссылку:
- R.B. Rusu, G. Bradski, R. Thibaux, J. Hsu. Fast 3D Recognition and Pose Using the Viewpoint Feature Histogram. В сборнике трудов Международной конференции по интеллектуальным роботам и системам (IROS), Тайбэй, Тайвань, 18–22 октября 2010 г.
- Примечание
- Код сохраняет состояние, поскольку предполагается, что этот класс не будет распараллелен на несколько ядер. Пример параллельной реализации FPFH (Fast Point Feature Histogram) см. в FPFHEstimationOMP.
Описание псевдонимов типов-членов
ConstPtr
| using pcl::VFHEstimation< PointInT, PointNT, PointOutT >::ConstPtr = shared_ptr<const VFHEstimation<PointInT, PointNT, PointOutT> > |
PointCloudOut
| using pcl::VFHEstimation< PointInT, PointNT, PointOutT >::PointCloudOut = typename Feature<PointInT, PointOutT>::PointCloudOut |
Ptr
| using pcl::VFHEstimation< PointInT, PointNT, PointOutT >::Ptr = shared_ptr<VFHEstimation<PointInT, PointNT, PointOutT> > |
Описание конструктора и деструктора
VFHEstimation()
| inline |
Описание функций-членов
compute()
| void pcl::VFHEstimation< PointInT, PointNT, PointOutT >::compute | ( | PointCloudOut & | output | ) |
Перегруженный метод вычисления из pcl::Feature.
- Параметры
-
[out] output итоговый набор данных облака точек, содержащий оценённые признаки
Определение в строке 65 файла vfh.hpp.
Ссылки: pcl::PointCloud< PointT >::clear(), pcl::PointCloud< PointT >::header, pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::is_dense, pcl::PointCloud< PointT >::resize() и pcl::PointCloud< PointT >::width.
computePointSPFHSignature()
| void pcl::VFHEstimation< PointInT, PointNT, PointOutT >::computePointSPFHSignature | ( | const Eigen::Vector4f & | centroid_p, |
| const Eigen::Vector4f & | centroid_n, | ||
| const pcl::PointCloud< PointInT > & | cloud, | ||
| const pcl::PointCloud< PointNT > & | normals, | ||
| const pcl::Indices & | indices | ||
| ) |
Оценивает сигнатуры SPFH (простые гистограммы признаков точек) угловых признаков (f1, f2, f3) и признака расстояния (f4) для заданной точки по её окрестности.
- Параметры
-
[in] centroid_p центроидная точка [in] centroid_n нормаль в центроиде [in] cloud набор данных, содержащий декартовы координаты XYZ двух точек [in] normals набор данных, содержащий нормали поверхности в каждой точке из cloud [in] indices индексы точек k-окрестности в наборе данных
Определение в строке 92 файла vfh.hpp.
Ссылки: pcl::computePairFeatures(), pcl::getMaxDistance(), M_PI и pcl_round().
getViewPoint()
| inline |
initCompute()
| overrideprotectedvirtual |
Этот метод следует вызвать перед началом фактического вычисления.
Переопределён из pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >.
setCentroidToUse()
| inline |
Задаёт centroid_to_use_.
- Параметры
-
[in] centroid Центроид, используемый при вычислении VFH. Он используется для вычисления расстояний от всех точек до этого центроида.
Определение в строке 171 файла vfh.h.
Ссылки: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::centroid_to_use_.
setFillSizeComponent()
| inline |
Задаёт size_component_.
- Параметры
-
[in] fill_size Значение true указывает, что 4-й компонент VFH (компонент распределения формы) необходимо заполнить. В противном случае ему присваивается ноль.
Определение в строке 200 файла vfh.h.
Ссылки: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::size_component_.
setNormalizeBins()
| inline |
Задаёт normalize_bins_.
- Параметры
-
[in] normalize Если значение true, бины VFH нормализуются с использованием общего количества точек
Определение в строке 180 файла vfh.h.
Ссылки: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::normalize_bins_.
setNormalizeDistance()
| inline |
Задаёт normalize_distances_.
- Параметры
-
[in] normalize Если значение true, 4-й компонент VFH (компонент распределения формы) нормализуется по максимальному размеру между центроидом и облаком точек
Определение в строке 190 файла vfh.h.
Ссылки: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::normalize_distances_.
setNormalToUse()
| inline |
Задаёт используемую нормаль.
- Параметры
-
[in] normal Задаёт нормаль, используемую при вычислении VFH. Она используется для построения системы координат Дарбу.
Определение в строке 152 файла vfh.h.
Ссылки: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::normal_to_use_.
setUseGivenCentroid()
| inline |
Задаёт use_given_centroid_.
- Параметры
-
[in] use Установите значение true, если хотите использовать центроид, переданный через setCentroidToUse(centroid)
Определение в строке 161 файла vfh.h.
Ссылки: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::use_given_centroid_.
setUseGivenNormal()
| inline |
Задаёт use_given_normal_.
- Параметры
-
[in] use Установите значение true, если хотите использовать нормаль, переданную в setNormalUse(normal)
Определение в строке 142 файла vfh.h.
Ссылки: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::use_given_normal_.
setViewPoint()
| inline |
Описание данных-членов
centroid_to_use_
| protected |
Центроид, используемый для вычисления VFH.
По умолчанию — центроид всего облака точек
Определение в строке 243 файла vfh.h.
Используется в: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setCentroidToUse().
hist_f_
| protected |
hist_vp_
| protected |
normal_to_use_
| protected |
Нормаль, используемая для вычисления VFH.
По умолчанию — средняя нормаль всего облака точек
Определение в строке 241 файла vfh.h.
Используется в: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setNormalToUse().
normalize_bins_
| protected |
Нормализует бины по общему количеству точек.
Определение в строке 252 файла vfh.h.
Используется в: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setNormalizeBins().
normalize_distances_
| protected |
Нормализует компонент распределения формы VFH.
Определение в строке 254 файла vfh.h.
Используется в: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setNormalizeDistance().
size_component_
| protected |
Включает или отключает компонент размера VFH.
Определение в строке 256 файла vfh.h.
Используется в: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setFillSizeComponent().
use_given_centroid_
| protected |
Использует centroid_to_use_.
Определение в строке 250 файла vfh.h.
Используется в: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setUseGivenCentroid().
use_given_normal_
| protected |
Использует normal_to_use_.
Определение в строке 248 файла vfh.h.
Используется в: pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setUseGivenNormal().
Документация этого класса сгенерирована по следующим файлам:
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_v_f_h_estimation.html