Spec-Zone.ru › PointCloudLibrary

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

#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. Подробнее...
- Public Member Functions inherited from 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 оператор[] для сокращения кода. Подробнее...

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

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 реализует расширение RGB-D детектора SUSAN, включающее вариации направлений нормалей поверх вариаций интенсивности.

Он отличается от 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