Spec-Zone.ru › PointCloudLibrary

SUSANKeypoint реализует расширение детектора SUSAN для RGB-D, учитывающее изменение направлений нормалей наряду с изменением интенсивности. Подробнее...

#include <pcl/keypoints/susan.h>

Inheritance graph
[условные обозначения]
Collaboration graph
[условные обозначения]

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

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
- Общедоступные типы, унаследованные от pcl::Keypoint< PointInT, PointOutT >
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 > &)>
- Общедоступные типы, унаследованные от 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

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

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)
Отфильтровать ложные срабатывания с помощью геометрических критериев. Подробнее...
- Открытые функции-члены, унаследованные от pcl::Keypoint< PointInT, PointOutT >
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. Подробнее...
- Открытые функции-члены, унаследованные от 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
Переопределить оператор PointCloud operator[] для сокращения кода. Подробнее...

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

bool initCompute () override
void detectKeypoints (PointCloudOut &output) override
bool isWithinNucleusCentroid (const Eigen::Vector3f &nucleus, const Eigen::Vector3f &centroid, const Eigen::Vector3f &nc, const PointInT &point) const
возвращает true, если точка лежит на отрезке между ядром и центроидом Подробнее...
- Защищённые функции-члены, унаследованные от pcl::Keypoint< PointInT, PointOutT >
const std::string & getClassName () const
Получить строковое представление имени этого класса. Подробнее...
virtual void detectKeypoints (PointCloudOut &output)=0
Абстрактный метод обнаружения ключевых точек. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::PCLBase< PointInT >
bool initCompute ()
Этот метод следует вызывать перед началом фактических вычислений. Подробнее...
bool deinitCompute ()
Этот метод следует вызывать после завершения фактических вычислений. Подробнее...

Дополнительные унаследованные члены

- Защищённые атрибуты, унаследованные от pcl::Keypoint< PointInT, PointOutT >
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_
Индексы ключевых точек во входном облаке. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::PCLBase< PointInT >
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

Автор
Nizar Sallem

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

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

ConstPtr

template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::ConstPtr = shared_ptr<const SUSANKeypoint<PointInT, PointOutT, NormalT, Intensity> >

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

KdTree

template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::KdTree = typename Keypoint<PointInT, PointOutT>::KdTree

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

PointCloudIn

template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudIn = typename Keypoint<PointInT, PointOutT>::PointCloudIn

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

PointCloudInConstPtr

template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudInConstPtr = typename PointCloudIn::ConstPtr

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

PointCloudN

template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudN = pcl::PointCloud<NormalT>

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

PointCloudNConstPtr

template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudNConstPtr = typename PointCloudN::ConstPtr

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

PointCloudNPtr

template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudNPtr = typename PointCloudN::Ptr

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

PointCloudOut

template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::PointCloudOut = typename Keypoint<PointInT, PointOutT>::PointCloudOut

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

Ptr

template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
using pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::Ptr = shared_ptr<SUSANKeypoint<PointInT, PointOutT, NormalT, IntensityT> >

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

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

SUSANKeypoint()

template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::SUSANKeypoint ( float radius = 0.01f,
float distance_threshold = 0.001f,
float angular_threshold = 0.0001f,
float intensity_threshold = 7.0f
)
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()

template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>
pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::~SUSANKeypoint ( )
overridedefault

Пустой деструктор.

Документация функций-членов

detectKeypoints()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::detectKeypoints ( PointCloudOut & output )
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()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
bool pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::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()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
bool pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::isWithinNucleusCentroid ( const Eigen::Vector3f & nucleus,
const Eigen::Vector3f & centroid,
const Eigen::Vector3f & nc,
const PointInT & point
) const
protected

Возвращает true, если точка лежит на отрезке между ядром и центроидом.

Параметры
[in] nucleus координаты ядра
[in] centroid центроид SUSAN
[in] nc вектор до центроида (используется для ускорения, поскольку он постоянен для данной окрестности)
[in] point проверяемая точка запроса
Возвращает
true, если точка лежит на отрезке [ядро, центроид]

Определение находится в строке 256 файла susan.hpp.

setAngularThreshold()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setAngularThreshold ( float angular_threshold )

Задаёт значение angular_threshold для обнаружения углов.

Считается, что нормали параллельны, если 1 - angular_threshold <= (Ni.Nj) <= 1

Параметры
[in] angular_threshold

Определение находится в строке 76 файла susan.hpp.

setDistanceThreshold()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setDistanceThreshold ( float distance_threshold )

Определение находится в строке 69 файла susan.hpp.

setGeometricValidation()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setGeometricValidation ( bool validate )

Отфильтровывает ложные срабатывания с помощью геометрических критериев.

Ядро и центроид должны находиться друг от друга на расстоянии не менее distance_threshold_, И все точки, принадлежащие USAN, должны лежать на отрезке [ядро, центроид].

Параметры
[in] validate

Определение находится в строке 55 файла susan.hpp.

setIntensityThreshold()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setIntensityThreshold ( float intensity_threshold )

Задаёт значение intensity_threshold для обнаружения углов.

Параметры
[in] intensity_threshold

Определение находится в строке 83 файла susan.hpp.

setNonMaxSupression()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setNonMaxSupression ( bool nonmax )

Применяет подавление немаксимумов к откликам, чтобы оставить наиболее выраженные углы.

Примечание
в SUSAN точки с меньшим откликом или более выраженные углы

Определение находится в строке 48 файла susan.hpp.

setNormals()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setNormals ( const PointCloudNConstPtr & normals )

Задаёт нормали, если предварительно вычисленные нормали доступны.

Параметры
normals

Определение находится в строке 90 файла susan.hpp.

setNumberOfThreads()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setNumberOfThreads ( unsigned int nr_threads )

Инициализирует планировщик и задаёт количество используемых потоков.

Параметры
nr_threads количество используемых аппаратных потоков (0 возвращает значение в автоматический режим)

Определение находится в строке 105 файла susan.hpp.

setRadius()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setRadius ( float radius )

Задаёт радиус для оценки нормалей и подавления немаксимумов.

Параметры
[in] radius

Определение находится в строке 62 файла susan.hpp.

setSearchSurface()

template<typename PointInT , typename PointOutT , typename NormalT , typename IntensityT >
void pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::setSearchSurface ( const PointCloudInConstPtr & cloud )
override

Определение находится в строке 97 файла susan.hpp.


Документация этого класса была сгенерирована на основе следующих файлов:
  • pcl/keypoints/susan.h
  • pcl/keypoints/impl/susan.hpp

© 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

Spec-Zone.ru

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