Spec-Zone.ru › PointCloudLibrary

OrganizedNeighbor — это класс для оптимизированного поиска ближайших соседей в организованных проецируемых облаках точек, например, полученных с камер времени пролёта или стереокамер. Подробнее...

#include <pcl/search/organized.h>

Inheritance graph
[обозначения]
Collaboration graph
[обозначения]

Классы

struct Entry

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

using PointCloud = pcl::PointCloud< PointT >
using PointCloudPtr = typename PointCloud::Ptr
using PointCloudConstPtr = typename PointCloud::ConstPtr
using Ptr = shared_ptr< pcl::search::OrganizedNeighbor< PointT > >
using ConstPtr = shared_ptr< const pcl::search::OrganizedNeighbor< PointT > >
- Общедоступные типы, наследуемые от pcl::search::Search< PointT >
using PointCloud = pcl::PointCloud< PointT >
using PointCloudPtr = typename PointCloud::Ptr
using PointCloudConstPtr = typename PointCloud::ConstPtr
using Ptr = shared_ptr< pcl::search::Search< PointT > >
using ConstPtr = shared_ptr< const pcl::search::Search< PointT > >
using IndicesPtr = pcl::IndicesPtr
using IndicesConstPtr = pcl::IndicesConstPtr
tr>

Общедоступные функции-члены

OrganizedNeighbor (bool sorted_results=false, float eps=1e-4f, unsigned pyramid_level=5)
Конструктор. Подробнее...
~OrganizedNeighbor () override=default
Пустой деструктор. Подробнее...
bool isValid () const
Проверяет, является ли этот объект поиска допустимым (входные данные организованы И получены с проективного устройства). Пользователь должен вызвать этот метод после задания входного облака, поскольку setInput лишь выводит сообщение об ошибке, если входные данные не организованы или матрицу проекции не удалось определить. Подробнее...
void computeCameraMatrix (Eigen::Matrix3f &camera_matrix) const
Вычисляет матрицу камеры. Подробнее...
bool setInputCloud (const PointCloudConstPtr &cloud, const IndicesConstPtr &indices=IndicesConstPtr()) override
Задаёт указатель на входной набор данных. Если пользователю известно фокусное расстояние, его необходимо задать перед вызовом этого метода. Подробнее...
int radiusSearch (const PointT &p_q, double radius, Indices &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const override
Поиск всех соседей точки запроса, находящихся в заданном радиусе. Подробнее...
bool estimateProjectionMatrix ()
Оценивает матрицу проекции по входному облаку. Подробнее...
bool testProjectionMatrix () const
Быстро проверяет, совместимы ли матрица проекции и входное облако. Подробнее...
void setProjectionMatrix (const Eigen::Matrix< float, 3, 4 > &projection_matrix)
Задаёт матрицу проекции вручную. Подробнее...
int nearestKSearch (const PointT &p_q, int k, Indices &k_indices, std::vector< float > &k_sqr_distances) const override
Поиск k ближайших соседей для заданной точки запроса. Подробнее...
bool projectPoint (const PointT &p, pcl::PointXY &q) const
Проецирует точку на изображение Подробнее...
- Общедоступные функции-члены, унаследованные от pcl::search::Search< PointT >
Search (const std::string &name="", bool sorted=false)
Конструктор. Подробнее...
virtual ~Search ()=default
Деструктор. Подробнее...
virtual const std::string & getName () const
Возвращает название метода поиска. Подробнее...
virtual void setSortedResults (bool sorted)
Задаёт, следует ли сортировать результаты (по возрастанию расстояния). Подробнее...
virtual bool getSortedResults ()
Возвращает признак того, следует ли сортировать результаты (по возрастанию расстояния). В противном случае результаты могут возвращаться в любом порядке. Подробнее...
virtual PointCloudConstPtr getInputCloud () const
Возвращает указатель на входной набор точек. Подробнее...
virtual IndicesConstPtr getIndices () const
Возвращает указатель на используемый вектор индексов. Подробнее...
template<typename PointTDiff >
int nearestKSearchT (const PointTDiff &point, int k, Indices &k_indices, std::vector< float > &k_sqr_distances) const
Поиск k ближайших соседей для заданной точки запроса. Подробнее...
virtual int nearestKSearch (const PointCloud &cloud, index_t index, int k, Indices &k_indices, std::vector< float > &k_sqr_distances) const
Поиск k ближайших соседей для заданной точки запроса. Подробнее...
virtual int nearestKSearch (index_t index, int k, Indices &k_indices, std::vector< float > &k_sqr_distances) const
Поиск k ближайших соседей для заданной точки запроса (без копирования). Подробнее...
virtual void nearestKSearch (const PointCloud &cloud, const Indices &indices, int k, std::vector< Indices > &k_indices, std::vector< std::vector< float > > &k_sqr_distances) const
Поиск k ближайших соседей для заданной точки запроса. Подробнее...
template<typename PointTDiff >
void nearestKSearchT (const pcl::PointCloud< PointTDiff > &cloud, const Indices &indices, int k, std::vector< Indices > &k_indices, std::vector< std::vector< float > > &k_sqr_distances) const
Поиск k ближайших соседей для заданной точки запроса. Подробнее...
template<typename PointTDiff >
int radiusSearchT (const PointTDiff &point, double radius, Indices &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const
Поиск всех ближайших соседей точки запроса в заданном радиусе. Подробнее...
virtual int radiusSearch (const PointCloud &cloud, index_t index, double radius, Indices &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const
Поиск всех ближайших соседей точки запроса в заданном радиусе. Подробнее...
virtual int radiusSearch (index_t index, double radius, Indices &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const
Поиск всех ближайших соседей точки запроса в заданном радиусе (без копирования). Подробнее...
virtual void radiusSearch (const PointCloud &cloud, const Indices &indices, double radius, std::vector< Indices > &k_indices, std::vector< std::vector< float > > &k_sqr_distances, unsigned int max_nn=0) const
Поиск всех ближайших соседей точки запроса в заданном радиусе. Подробнее...
template<typename PointTDiff >
void radiusSearchT (const pcl::PointCloud< PointTDiff > &cloud, const Indices &indices, double radius, std::vector< Indices > &k_indices, std::vector< std::vector< float > > &k_sqr_distances, unsigned int max_nn=0) const
Поиск всех ближайших соседей точек запроса в заданном радиусе. Подробнее...

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

bool testPoint (const PointT &query, unsigned k, std::vector< Entry > &queue, index_t index) const
проверяет, входит ли точка с заданным индексом в число k ближайших соседей для точки запроса. Подробнее...
void clipRange (int &begin, int &end, int min, int max) const
void getProjectedRadiusSearchBox (const PointT &point, float squared_radius, unsigned &minX, unsigned &minY, unsigned &maxX, unsigned &maxY) const
Получает двумерную область поиска, соответствующую сфере с радиусом в трёхмерном пространстве. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::search::Search< PointT >
void sortResults (Indices &indices, std::vector< float > &distances) const

Защищённые атрибуты

Eigen::Matrix< float, 3, 4, Eigen::RowMajor > projection_matrix_
матрица проекции. Подробнее...
Eigen::Matrix< float, 3, 3, Eigen::RowMajor > KR_
обратная матрица левой верхней матрицы проекции 3x3, равной K * R (где K — матрица камеры, а R — матрица вращения) Подробнее...
Eigen::Matrix< float, 3, 3, Eigen::RowMajor > KR_KRT_
обратная матрица левой верхней матрицы проекции 3x3, равной K * R (где K — матрица камеры, а R — матрица вращения) Подробнее...
float eps_
значение эпсилон для среднеквадратичной ошибки оценки матрицы проекции Подробнее...
const unsigned pyramid_level_
для вычисления матрицы проекции используется только подвыборка точек. Подробнее...
std::vector< unsigned char > mask_
маска, указывающая, присутствовала ли точка в списке индексов и является ли она конечной. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::search::Search< PointT >
PointCloudConstPtr input_
IndicesConstPtr indices_
bool sorted_results_
std::string name_

Подробное описание

template<typename PointT>
class pcl::search::OrganizedNeighbor< PointT >

OrganizedNeighbor — это класс для оптимизированного поиска ближайших соседей в организованных проецируемых облаках точек, например полученных с камер Time-Of-Flight или стереокамер.

Обратите внимание: вращающиеся лидары могут выдавать организованные облака, однако их нельзя проецировать в двумерное пространство с помощью модели камеры-обскуры, поэтому этот класс, как правило, с ними не работает.

Автор
Radu B. Rusu, Julius Kammerl, Suat Gedikli, Koen Buys

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

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

ConstPtr

template<typename PointT >
using pcl::search::OrganizedNeighbor< PointT >::ConstPtr = shared_ptr<const pcl::search::OrganizedNeighbor<PointT> >

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

PointCloud

template<typename PointT >
using pcl::search::OrganizedNeighbor< PointT >::PointCloud = pcl::PointCloud<PointT>

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

PointCloudConstPtr

template<typename PointT >
using pcl::search::OrganizedNeighbor< PointT >::PointCloudConstPtr = typename PointCloud::ConstPtr

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

PointCloudPtr

template<typename PointT >
using pcl::search::OrganizedNeighbor< PointT >::PointCloudPtr = typename PointCloud::Ptr

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

Ptr

template<typename PointT >
using pcl::search::OrganizedNeighbor< PointT >::Ptr = shared_ptr<pcl::search::OrganizedNeighbor<PointT> >

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

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

OrganizedNeighbor()

template<typename PointT >
pcl::search::OrganizedNeighbor< PointT >::OrganizedNeighbor ( bool sorted_results = false,
float eps = 1e-4f,
unsigned pyramid_level = 5
)
inline

Конструктор.

Параметры
[in] sorted_results указывает, нужно ли возвращать результаты в порядке возрастания расстояния. Применяется только для поиска в радиусе, так как поиск knn всегда возвращает отсортированные результаты
[in] eps порог среднеквадратичной ошибки оценки матрицы проекции. Если СКО превышает это значение, облако точек считается полученным не с проективного устройства, поэтому для него нельзя применять поиск по организованному облаку.
[in] pyramid_level уровень уменьшенного облака точек, используемого для оценки матрицы проекции

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

~OrganizedNeighbor()

template<typename PointT >
pcl::search::OrganizedNeighbor< PointT >::~OrganizedNeighbor ( )
overridedefault

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

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

clipRange()

template<typename PointT >
void pcl::search::OrganizedNeighbor< PointT >::clipRange ( int & begin,
int & end,
int min,
int max
) const
inlineprotected

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

computeCameraMatrix()

template<typename PointT >
void pcl::search::OrganizedNeighbor< PointT >::computeCameraMatrix ( Eigen::Matrix3f & camera_matrix ) const

Вычисляет матрицу камеры.

Параметры
[out] camera_matrix вычисленная матрица камеры

Определение в строке 326 файла organized.hpp.

См. pcl::getCameraMatrixFromProjectionMatrix().

estimateProjectionMatrix()

template<typename PointT >
bool pcl::search::OrganizedNeighbor< PointT >::estimateProjectionMatrix

Оценивает матрицу проекции по входному облаку.

Возвращает
true, если матрицу удалось оценить, и false в противном случае

Определение в строке 333 файла organized.hpp.

Используется в pcl::search::OrganizedNeighbor< PointT >::setInputCloud().

getProjectedRadiusSearchBox()

template<typename PointT >
void pcl::search::OrganizedNeighbor< PointT >::getProjectedRadiusSearchBox ( const PointT & point,
float squared_radius,
unsigned & minX,
unsigned & minY,
unsigned & maxX,
unsigned & maxY
) const
protected

Получает двумерную область поиска, соответствующую сфере с радиусом в трёхмерном пространстве.

Параметры
[in] point точка запроса (центр сферы)
[in] squared_radius квадрат радиуса сферы
[out] minX минимальная координата X области
[out] minY минимальная координата Y области
[out] maxX максимальная координата X области
[out] maxY максимальная координата Y области

Определение в строке 269 файла organized.hpp.

isValid()

template<typename PointT >
bool pcl::search::OrganizedNeighbor< PointT >::isValid ( ) const
inline

Проверяет, является ли этот объект поиска допустимым (входные данные организованы И получены с проективного устройства). Этот метод следует вызывать после задания входного облака, поскольку setInput только выводит сообщение об ошибке, если данные не организованы или не удалось определить матрицу проекции.

Возвращает
true, если входные данные организованы и получены с проективного устройства, и false в противном случае

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

Ссылки: pcl::search::Search< PointT >::input_, pcl::search::OrganizedNeighbor< PointT >::KR_ и pcl::search::OrganizedNeighbor< PointT >::KR_KRT_.

Используется в pcl::search::OrganizedNeighbor< PointT >::setInputCloud().

nearestKSearch()

template<typename PointT >
int pcl::search::OrganizedNeighbor< PointT >::nearestKSearch ( const PointT & p_q,
int k,
Indices & k_indices,
std::vector< float > & k_sqr_distances
) const
overridevirtual

Поиск k ближайших соседей для заданной точки запроса.

Примечание
ограничение максимального радиуса поиска (с помощью setMaxDistance) может значительно повысить скорость поиска
Параметры
[in] p_q заданная точка запроса (необходимо предварительно вызвать setInputCloud!)
[in] k количество соседей для поиска (используется, только если горизонтальное и вертикальное окна ещё не заданы!)
[out] k_indices индексы найденных точек (заранее измените размер до k!)
[out] k_sqr_distances
Примечание
эта функция не возвращает расстояния
Возвращает
количество найденных соседей
Задача:
эту функциональность ещё необходимо реализовать

Реализует pcl::search::Search< PointT >.

Определение в строке 114 файла organized.hpp.

Ссылки на pcl::isFinite().

projectPoint()

template<typename PointT >
bool pcl::search::OrganizedNeighbor< PointT >::projectPoint ( const PointT & p,
pcl::PointXY & q
) const

проецирует точку на изображение

Параметры
[in] p точка в мировой системе координат 3D, которую нужно спроецировать на плоскость изображения
[out] q спроецированная 2D-точка в пиксельных координатах (u,v)
Возвращает
true, если проекция корректна, иначе false

Определение в строке 399 файла organized.hpp.

Ссылки на pcl::PointXY::x и pcl::PointXY::y.

Используется в pcl::visualization::ImageViewer::addMask(), pcl::visualization::ImageViewer::addPlanarPolygon() и pcl::visualization::ImageViewer::addRectangle().

radiusSearch()

template<typename PointT >
int pcl::search::OrganizedNeighbor< PointT >::radiusSearch ( const PointT & p_q,
double radius,
Indices & k_indices,
std::vector< float > & k_sqr_distances,
unsigned int max_nn = 0
) const
overridevirtual

Поиск всех соседей точки запроса, находящихся в пределах заданного радиуса.

Параметры
[in] p_q заданная точка запроса
[in] radius радиус сферы, содержащей всех соседей p_q
[out] k_indices индексы найденных соседних точек
[out] k_sqr_distances квадраты расстояний до найденных соседних точек
[in] max_nn если задано, ограничивает максимальное количество возвращаемых соседей этим значением. Если max_nn равно 0 или превышает количество точек во входном облаке, будут возвращены все соседи в пределах radius.
Возвращает
количество найденных в радиусе соседей

Реализует pcl::search::Search< PointT >.

Определение в строке 49 файла organized.hpp.

Ссылки на pcl::isFinite().

setInputCloud()

template<typename PointT >
bool pcl::search::OrganizedNeighbor< PointT >::setInputCloud ( const PointCloudConstPtr & cloud,
const IndicesConstPtr & indices = IndicesConstPtr ()
)
inlineoverridevirtual

Задаёт указатель на входной набор данных. Если пользователю известно фокусное расстояние, его необходимо задать до вызова этой функции.

Параметры
[in] cloud константный общий указатель boost на сообщение PointCloud
[in] indices константный общий указатель boost на PointIndices

Переопределяет реализацию из pcl::search::Search< PointT >.

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

Ссылки на pcl::search::OrganizedNeighbor< PointT >::eps_, pcl::search::OrganizedNeighbor< PointT >::estimateProjectionMatrix(), pcl::search::Search< PointT >::indices_, pcl::search::Search< PointT >::input_, pcl::isFinite(), pcl::search::OrganizedNeighbor< PointT >::isValid(), pcl::search::OrganizedNeighbor< PointT >::mask_ и pcl::search::OrganizedNeighbor< PointT >::testProjectionMatrix().

Используется в pcl::visualization::ImageViewer::addMask(), pcl::visualization::ImageViewer::addPlanarPolygon() и pcl::visualization::ImageViewer::addRectangle().

setProjectionMatrix()

template<typename PointT >
void pcl::search::OrganizedNeighbor< PointT >::setProjectionMatrix ( const Eigen::Matrix< float, 3, 4 > & projection_matrix )
inline

Задаёт матрицу проекции вручную.

Матрица проекции больше не будет оцениваться автоматически. Чтобы использовать этот метод, вызовите его до setInputCloud.

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

Ссылки на pcl::search::OrganizedNeighbor< PointT >::eps_, pcl::search::OrganizedNeighbor< PointT >::KR_, pcl::search::OrganizedNeighbor< PointT >::KR_KRT_ и pcl::search::OrganizedNeighbor< PointT >::projection_matrix_.

testPoint()

template<typename PointT >
bool pcl::search::OrganizedNeighbor< PointT >::testPoint ( const PointT & query,
unsigned k,
std::vector< Entry > & queue,
index_t index
) const
inlineprotected

проверяет, входит ли точка с заданным индексом в число k ближайших соседей точки запроса.

Параметры
[in] query точка запроса
[in] k максимальное интересующее количество ближайших соседей
[in,out] queue очередь с приоритетами, содержащая k ближайших соседей
[in] index индекс проверяемой точки
Возвращает
изменился ли верхний элемент.

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

Ссылки на pcl::search::Search< PointT >::input_ и pcl::search::OrganizedNeighbor< PointT >::mask_.

testProjectionMatrix()

template<typename PointT >
bool pcl::search::OrganizedNeighbor< PointT >::testProjectionMatrix

Быстрая проверка совместимости матрицы проекции и входного облака.

Определение в строке 379 файла organized.hpp.

Ссылки на pcl::projectPoint(), pcl::PointXY::x и pcl::PointXY::y.

Используется в pcl::search::OrganizedNeighbor< PointT >::setInputCloud().

Описание данных-членов

eps_

template<typename PointT >
float pcl::search::OrganizedNeighbor< PointT >::eps_
protected

значение эпсилон для среднеквадратичной ошибки оценки матрицы проекции

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

Используется в pcl::search::OrganizedNeighbor< PointT >::setInputCloud() и pcl::search::OrganizedNeighbor< PointT >::setProjectionMatrix().

KR_

template<typename PointT >
Eigen::Matrix<float, 3, 3, Eigen::RowMajor> pcl::search::OrganizedNeighbor< PointT >::KR_
protected

обратная матрица левой матрицы проекции 3x3, равной K * R (где K — матрица камеры, а R — матрица вращения)

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

Используется в pcl::search::OrganizedNeighbor< PointT >::isValid() и pcl::search::OrganizedNeighbor< PointT >::setProjectionMatrix().

KR_KRT_

template<typename PointT >
Eigen::Matrix<float, 3, 3, Eigen::RowMajor> pcl::search::OrganizedNeighbor< PointT >::KR_KRT_
protected

обратная матрица левой матрицы проекции 3x3, равной K * R (где K — матрица камеры, а R — матрица вращения)

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

Используется в pcl::search::OrganizedNeighbor< PointT >::isValid() и pcl::search::OrganizedNeighbor< PointT >::setProjectionMatrix().

mask_

template<typename PointT >
std::vector<unsigned char> pcl::search::OrganizedNeighbor< PointT >::mask_
protected

маска, указывающая, содержалась ли точка в списке индексов и является ли она конечной.

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

Используется в pcl::search::OrganizedNeighbor< PointT >::setInputCloud() и pcl::search::OrganizedNeighbor< PointT >::testPoint().

projection_matrix_

template<typename PointT >
Eigen::Matrix<float, 3, 4, Eigen::RowMajor> pcl::search::OrganizedNeighbor< PointT >::projection_matrix_
protected

матрица проекции.

Задаётся пользователем или вычисляется по первому / каждому входному облаку

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

Используется в pcl::search::OrganizedNeighbor< PointT >::setProjectionMatrix().

pyramid_level_

template<typename PointT >
const unsigned pcl::search::OrganizedNeighbor< PointT >::pyramid_level_
protected

для вычисления матрицы проекции используется только подвыборка точек.

pyramid_level_ = использовать облако с уменьшенным разрешением, заданным pyramid_level_

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


Документация этого класса создана на основе следующих файлов:
  • pcl/search/organized.h
  • pcl/search/impl/organized.hpp

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1search_1_1_organized_neighbor.html

Spec-Zone.ru

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