Spec-Zone.ru › PointCloudLibrary
SHOTEstimation вычисляет дескриптор Signature of Histograms of OrienTations (SHOT) для заданного набора данных облака точек, содержащего точки и нормали. Подробнее...
#include <pcl/features/shot.h >
using
Ptr = shared_ptr< SHOTEstimationBase < PointInT, PointNT, PointOutT, PointRFT > >
using
ConstPtr = shared_ptr< const SHOTEstimationBase < PointInT, PointNT, PointOutT, PointRFT > >
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, PointOutT > >
using
ConstPtr = shared_ptr< const FeatureFromNormals < PointInT, PointNT, PointOutT > >
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
using
PointCloudLRF = pcl::PointCloud < pcl::ReferenceFrame >
using
PointCloudLRFPtr = typename PointCloudLRF::Ptr
~SHOTEstimationBase () override=default
Пустой деструктор. Подробнее...
virtual void
computePointSHOT (const int index, const pcl::Indices &indices, const std::vector< float > &sqr_dists, Eigen::VectorXf &shot)=0
Оценить дескриптор SHOT для заданной точки на основе её пространственного окружения, состоящего из 3D-точек с нормалями. Подробнее...
virtual void
setLRFRadius (float radius)
Задать радиус, используемый для оценки локальной системы координат, если пользователь не задал системы координат. Подробнее...
virtual float
getLRFRadius () const
Получить радиус, используемый для оценки локальной системы координат. Подробнее...
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 ()
Пустой конструктор. Подробнее...
SHOTEstimationBase (int nr_shape_bins=10)
Пустой конструктор. Подробнее...
bool
initCompute () override
Этот метод следует вызвать перед началом вычислений. Подробнее...
void
interpolateSingleChannel (const pcl::Indices &indices, const std::vector< float > &sqr_dists, const int index, std::vector< double > &binDistance, const int nr_bins, Eigen::VectorXf &shot)
Квадрилинейная интерполяция, используемая, когда описания цвета и формы НЕ активированы одновременно. Подробнее...
void
normalizeHistogram (Eigen::VectorXf &shot, int desc_length)
Нормализовать гистограмму SHOT. Подробнее...
void
createBinDistanceShape (int index, const pcl::Indices &indices, std::vector< double > &bin_distance_shape)
Создать гистограмму расстояний по интервалам. Подробнее...
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 ()
Этот метод следует вызвать после завершения вычислений. Подробнее...
virtual bool
initLocalReferenceFrames (const std::size_t &indices_size, const LRFEstimationPtr &lrf_estimation=LRFEstimationPtr ())
template<typename PointInT, typename PointNT, typename PointOutT, typename PointRFT = pcl::ReferenceFrame> class pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT > SHOTEstimation вычисляет дескриптор Signature of Histograms of OrienTations (SHOT) для заданного набора облака точек, содержащего точки и нормали.
Рекомендуемый тип PointOutT — pcl::SHOT352 .
Примечание
Если вы используете этот код в научной работе, пожалуйста, приведите следующие источники:
F. Tombari, S. Salti, L. Di Stefano. Уникальные гистограммные сигнатуры для описания локальной поверхности. В материалах 11-й Европейской конференции по компьютерному зрению (ECCV), Ираклион, Греция, 5–11 сентября 2010 г. F. Tombari, S. Salti, L. Di Stefano. Комбинированный текстурно-геометрический дескриптор для улучшенного сопоставления 3D-признаков . В материалах 18-й Международной конференции по обработке изображений (ICIP), Брюссель, Бельгия, 11–14 сентября 2011 г.
Автор
Samuele Salti, Federico Tombari
Определение в строке 69 файла shot.h .
ConstPtr template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
PointCloudIn template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
Ptr template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
SHOTEstimationBase() template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
~SHOTEstimationBase() template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
computePointSHOT() template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
virtual void pcl::SHOTEstimationBase < PointInT, PointNT, PointOutT, PointRFT >::computePointSHOT ( const int
index , const pcl::Indices &
indices , const std::vector< float > &
sqr_dists , Eigen::VectorXf &
shot )
pure virtual
Вычисляет дескриптор SHOT для заданной точки на основе её пространственного окружения, состоящего из 3D-точек с нормалями.
Параметры
[in]
index
индекс точки в indices_
[in]
indices
индексы точек k-окрестности в surface_
[in]
sqr_dists
расстояния до точек k-окрестности в surface_
[out]
shot
результирующий дескриптор SHOT, представляющий признак в точке запроса
Реализовано в pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT > , pcl::SHOTColorEstimation< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame > , pcl::SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT > и pcl::SHOTEstimation< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame > .
createBinDistanceShape() template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >
void pcl::SHOTEstimationBase < PointInT, PointNT, PointOutT, PointRFT >::createBinDistanceShape ( int
index , const pcl::Indices &
indices , std::vector< double > &
bin_distance_shape )
protected
Создаёт гистограмму формы с дискретизацией расстояния.
Параметры
[in]
index
индекс точки в indices_
[in]
indices
индексы точек k-окрестности в surface_
[out]
bin_distance_shape
итоговая гистограмма
Определение в строке 176 файла shot.hpp .
getLRFRadius() template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
initCompute() template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >
interpolateSingleChannel() template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >
void pcl::SHOTEstimationBase < PointInT, PointNT, PointOutT, PointRFT >::interpolateSingleChannel ( const pcl::Indices &
indices , const std::vector< float > &
sqr_dists , const int
index , std::vector< double > &
binDistance , const int
nr_bins , Eigen::VectorXf &
shot )
protected
Квадрилинейная интерполяция, используемая, когда описания цвета и формы НЕ активированы одновременно.
Параметры
[in]
indices
индексы точек окрестности
[in]
sqr_dists
расстояния до точек окрестности
[in]
index
индекс точки в indices_
[out]
binDistance
итоговая гистограмма формы с дискретизацией расстояния
[in]
nr_bins
количество интервалов в гистограмме формы
[out]
shot
итоговая гистограмма SHOT
Определение в строке 237 файла shot.hpp .
normalizeHistogram() template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >
void pcl::SHOTEstimationBase < PointInT, PointNT, PointOutT, PointRFT >::normalizeHistogram ( Eigen::VectorXf &
shot , int
desc_length )
protected
Нормализует гистограмму SHOT.
Параметры
[in,out]
shot
гистограмма SHOT
[in]
desc_length
длина гистограммы
Определение в строке 220 файла shot.hpp .
setLRFRadius() template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
descLength_ template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
Длина одного SHOT.
Определение в строке 189 файла shot.h .
lrf_radius_ template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
maxAngularSectors_ template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
nr_grid_sector_ template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
Количество азимутальных секторов.
Определение в строке 183 файла shot.h .
nr_shape_bins_ template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
Количество интервалов в каждой гистограмме формы.
Определение в строке 165 файла shot.h .
radius1_2_ template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
1/2 радиуса поиска.
Определение в строке 180 файла shot.h .
radius1_4_ template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
1/4 радиуса поиска.
Определение в строке 177 файла shot.h .
radius3_4_ template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
3/4 радиуса поиска.
Определение в строке 174 файла shot.h .
sqradius_ template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>
Квадрат радиуса поиска.
Определение в строке 171 файла shot.h .
Документация этого класса создана на основе следующих файлов: