SUSANKeypoint реализует расширение детектора SUSAN для RGB-D, учитывающее изменение направлений нормалей наряду с изменением интенсивности. Подробнее...
#include <pcl/keypoints/susan.h>
Общедоступные типы | |
| using | Ptr = shared_ptr< SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT > > |
| using | ConstPtr = shared_ptr< const SUSANKeypoint< PointInT, PointOutT, NormalT, Intensity > > |
| using | PointCloudIn = typename Keypoint< PointInT, PointOutT >::PointCloudIn |
| using | PointCloudOut = typename Keypoint< PointInT, PointOutT >::PointCloudOut |
| using | KdTree = typename Keypoint< PointInT, PointOutT >::KdTree |
| using | PointCloudInConstPtr = typename PointCloudIn::ConstPtr |
| using | PointCloudN = pcl::PointCloud< NormalT > |
| using | PointCloudNPtr = typename PointCloudN::Ptr |
| using | PointCloudNConstPtr = typename PointCloudN::ConstPtr |
|
| |
| using | Ptr = shared_ptr< Keypoint< PointInT, PointOutT > > |
| using | ConstPtr = shared_ptr< const Keypoint< PointInT, PointOutT > > |
| using | BaseClass = PCLBase< PointInT > |
| 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(pcl::index_t, double, pcl::Indices &, std::vector< float > &)> |
| using | SearchMethodSurface = std::function< int(const PointCloudIn &cloud, pcl::index_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 |
Открытые функции-члены | |
| SUSANKeypoint (float radius=0.01f, float distance_threshold=0.001f, float angular_threshold=0.0001f, float intensity_threshold=7.0f) | |
| Конструктор. Подробнее... |
|
| ~SUSANKeypoint () override=default | |
| Пустой деструктор. Подробнее... |
|
| void | setRadius (float radius) |
| Задать радиус для оценки нормалей и подавления немаксимумов. Подробнее... |
|
| void | setDistanceThreshold (float distance_threshold) |
| void | setAngularThreshold (float angular_threshold) |
| Задать значение angular_threshold для обнаружения углов. Подробнее... |
|
| void | setIntensityThreshold (float intensity_threshold) |
| Задать значение intensity_threshold для обнаружения углов. Подробнее... |
|
| void | setNormals (const PointCloudNConstPtr &normals) |
| Задать нормали, если доступны предварительно вычисленные нормали. Подробнее... |
|
| void | setSearchSurface (const PointCloudInConstPtr &cloud) override |
| void | setNumberOfThreads (unsigned int nr_threads) |
| Инициализировать планировщик и задать количество используемых потоков. Подробнее... |
|
| void | setNonMaxSupression (bool nonmax) |
| Применить подавление немаксимумов к откликам, чтобы оставить наиболее выраженные углы. Подробнее... |
|
| void | setGeometricValidation (bool validate) |
| Отфильтровать ложные срабатывания с помощью геометрических критериев. Подробнее... |
|
|
| |
| Keypoint ()=default | |
| Keypoint () | |
| Пустой конструктор. Подробнее... |
|
| void | harrisCorner (PointInT &output, PointInT &input, const float sigma_d, const float sigma_i, const float alpha, const float thresh) |
| void | hessianBlob (PointInT &output, PointInT &input, const float sigma, bool SCALE) |
| void | hessianBlob (PointInT &output, PointInT &input, const float start_scale, const float scaling_factor, const int num_scales) |
| void | imageElementMultiply (PointInT &output, PointInT &input1, PointInT &input2) |
| ~Keypoint () override=default | |
| Пустой деструктор. Подробнее... |
|
| virtual void | setSearchSurface (const PointCloudInConstPtr &cloud) |
| Передать указатель на входной набор данных, для каждой точки которого необходимо оценить признаки. Подробнее... |
|
| PointCloudInConstPtr | getSearchSurface () |
| Получить указатель на набор данных облака точек поверхности. Подробнее... |
|
| void | setSearchMethod (const KdTreePtr &tree) |
| Передать указатель на объект поиска. Подробнее... |
|
| KdTreePtr | getSearchMethod () |
| Получить указатель на используемый метод поиска. Подробнее... |
|
| double | getSearchParameter () |
| Получить внутренний параметр поиска. Подробнее... |
|
| void | setKSearch (int k) |
| Задать количество k ближайших соседей, используемых для оценки признаков. Подробнее... |
|
| int | getKSearch () |
| Получить количество k ближайших соседей, использованных для оценки признаков. Подробнее... |
|
| void | setRadiusSearch (double radius) |
| Задать радиус сферы, используемый для определения ближайших соседей при обнаружении ключевых точек. Подробнее... |
|
| double | getRadiusSearch () |
| Получить радиус сферы, используемый для определения соседей. Подробнее... |
|
| pcl::PointIndicesConstPtr | getKeypointsIndices () |
| void | compute (PointCloudOut &output) |
| Базовый метод обнаружения ключевых точек для всех точек, заданных в <setInputCloud (), setIndices ()>, с использованием поверхности из setSearchSurface () и пространственного локатора из setSearchMethod () Подробнее... |
|
| int | searchForNeighbors (pcl::index_t index, double parameter, pcl::Indices &indices, std::vector< float > &distances) const |
| Найти k ближайших соседей с помощью пространственного локатора, заданного в setSearchmethod, и указанной поверхности из setSearchSurface. Подробнее... |
|
|
| |
| 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 |
| Переопределить оператор PointCloud operator[] для сокращения кода. Подробнее... |
|
Защищённые функции-члены | |
| bool | initCompute () override |
| void | detectKeypoints (PointCloudOut &output) override |
| bool | isWithinNucleusCentroid (const Eigen::Vector3f &nucleus, const Eigen::Vector3f ¢roid, const Eigen::Vector3f &nc, const PointInT &point) const |
| возвращает true, если точка лежит на отрезке между ядром и центроидом Подробнее... |
|
|
| |
| const std::string & | getClassName () const |
| Получить строковое представление имени этого класса. Подробнее... |
|
| virtual void | detectKeypoints (PointCloudOut &output)=0 |
| Абстрактный метод обнаружения ключевых точек. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод следует вызывать перед началом фактических вычислений. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод следует вызывать после завершения фактических вычислений. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| std::string | name_ |
| Имя метода обнаружения ключевых точек. Подробнее... |
|
| SearchMethod | search_method_ |
| Шаблон метода поиска индексов. Подробнее... |
|
| SearchMethodSurface | search_method_surface_ |
| Шаблон метода поиска точек. Подробнее... |
|
| PointCloudInConstPtr | surface_ |
| Входное облако точек, описывающее поверхность, используемую для оценки ближайших соседей. Подробнее... |
|
| KdTreePtr | tree_ |
| Указатель на объект пространственного поиска. Подробнее... |
|
| double | search_parameter_ |
| Фактический параметр поиска (приведённый к типу из search_radius_ или k_). Подробнее... |
|
| double | search_radius_ |
| Радиус поиска ближайших соседей для каждой точки. Подробнее... |
|
| int | k_ |
| Количество ближайших соседей из K, используемых для каждой точки. Подробнее... |
|
| pcl::PointIndicesPtr | keypoints_indices_ |
| Индексы ключевых точек во входном облаке. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| Набор входных данных — облако точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор используемых индексов точек. Подробнее... |
|
| bool | use_indices_ |
| Установите значение true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, создаётся набор фиктивных индексов, соответствующий входному облаку точек. Подробнее... |
|
Подробное описание
template<typename PointInT, typename PointOutT, typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
class pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >
SUSANKeypoint реализует расширение детектора SUSAN для RGB-D, учитывающее вариации направлений нормалей наряду с вариациями интенсивности.
В отличие от Harris, этот метод напрямую использует нормали и поэтому работает быстрее.
Оригинальная статья «SUSAN — A New Approach to Low Level Image Processing», Smith, Stephen M. и Brady, J. Michael
Документация псевдонимов типов-членов
ConstPtr
| using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::ConstPtr = shared_ptr<const SUSANKeypoint<PointInT, PointOutT, NormalT, Intensity> > |
KdTree
| using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::KdTree = typename Keypoint<PointInT, PointOutT>::KdTree |
PointCloudIn
| using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudIn = typename Keypoint<PointInT, PointOutT>::PointCloudIn |
PointCloudInConstPtr
| using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudInConstPtr = typename PointCloudIn::ConstPtr |
PointCloudN
| using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudN = pcl::PointCloud<NormalT> |
PointCloudNConstPtr
| using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudNConstPtr = typename PointCloudN::ConstPtr |
PointCloudNPtr
| using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudNPtr = typename PointCloudN::Ptr |
PointCloudOut
| using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudOut = typename Keypoint<PointInT, PointOutT>::PointCloudOut |
Ptr
| using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::Ptr = shared_ptr<SUSANKeypoint<PointInT, PointOutT, NormalT, IntensityT> > |
Документация конструктора и деструктора
SUSANKeypoint()
| inline |
Конструктор.
- Параметры
-
[in] radius радиус для оценки нормалей и подавления немаксимумов [in] distance_threshold порог для проверки того, достаточно ли далеко ядро от центроида [in] angular_threshold порог для проверки параллельности нормалей [in] intensity_threshold порог для проверки того, имеют ли точки одинаковый цвет
Определение в строке 88 файла susan.h.
Ссылки: pcl::Keypoint< PointInT, PointOutT >::name_ и pcl::Keypoint< PointInT, PointOutT >::search_radius_.
~SUSANKeypoint()
| overridedefault |
Пустой деструктор.
Документация функций-членов
detectKeypoints()
| overrideprotected |
Определение находится в строке 304 файла susan.hpp.
Ссылки: pcl::PointCloud< PointT >::height, pcl::isFinite(), pcl::PointCloud< PointT >::points, pcl::PointCloud< PointT >::push_back(), pcl::PointCloud< PointT >::reserve(), pcl::PointCloud< PointT >::size() и pcl::PointCloud< PointT >::width.
initCompute()
| overrideprotectedvirtual |
Переопределяет метод класса pcl::Keypoint< PointInT, PointOutT >.
Определение находится в строке 216 файла susan.hpp.
Ссылки: pcl::Feature< PointInT, PointOutT >::compute(), pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud(), pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setInputCloud(), pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setNormalEstimationMethod(), pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setNormalSmoothingSize() и pcl::Feature< PointInT, PointOutT >::setRadiusSearch().
isWithinNucleusCentroid()
| protected |
Возвращает true, если точка лежит на отрезке между ядром и центроидом.
- Параметры
-
[in] nucleus координаты ядра [in] centroid центроид SUSAN [in] nc вектор до центроида (используется для ускорения, поскольку он постоянен для данной окрестности) [in] point проверяемая точка запроса
- Возвращает
- true, если точка лежит на отрезке [ядро, центроид]
setAngularThreshold()
| void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setAngularThreshold | ( | float | angular_threshold | ) |
setDistanceThreshold()
| void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setDistanceThreshold | ( | float | distance_threshold | ) |
setGeometricValidation()
| void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setGeometricValidation | ( | bool | validate | ) |
Отфильтровывает ложные срабатывания с помощью геометрических критериев.
Ядро и центроид должны находиться друг от друга на расстоянии не менее distance_threshold_, И все точки, принадлежащие USAN, должны лежать на отрезке [ядро, центроид].
- Параметры
-
[in] validate
setIntensityThreshold()
| void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setIntensityThreshold | ( | float | intensity_threshold | ) |
setNonMaxSupression()
| void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setNonMaxSupression | ( | bool | nonmax | ) |
setNormals()
| void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setNormals | ( | const PointCloudNConstPtr & | normals | ) |
setNumberOfThreads()
| void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setNumberOfThreads | ( | unsigned int | nr_threads | ) |
setRadius()
| void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setRadius | ( | float | radius | ) |
setSearchSurface()
| override |
Документация этого класса была сгенерирована на основе следующих файлов:
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_s_u_s_a_n_keypoint.html