OrganizedNeighbor — это класс для оптимизированного поиска ближайших соседей в организованных проецируемых облаках точек, например, полученных с камер времени пролёта или стереокамер. Подробнее...
#include <pcl/search/organized.h>
Классы | |
| 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 > > |
|
| |
| 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 |
Общедоступные функции-члены | |
| 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 |
| Проецирует точку на изображение Подробнее... |
|
|
| |
| 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 | tr>
|
Поиск 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 |
| Получает двумерную область поиска, соответствующую сфере с радиусом в трёхмерном пространстве. Подробнее... |
|
|
| |
| 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_ |
| маска, указывающая, присутствовала ли точка в списке индексов и является ли она конечной. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| IndicesConstPtr | indices_ |
| bool | sorted_results_ |
| std::string | name_ |
Подробное описание
template<typename PointT>
class pcl::search::OrganizedNeighbor< PointT >
OrganizedNeighbor — это класс для оптимизированного поиска ближайших соседей в организованных проецируемых облаках точек, например полученных с камер Time-Of-Flight или стереокамер.
Обратите внимание: вращающиеся лидары могут выдавать организованные облака, однако их нельзя проецировать в двумерное пространство с помощью модели камеры-обскуры, поэтому этот класс, как правило, с ними не работает.
Определение в строке 65 файла organized.h.
Документация по псевдонимам типов-членов
ConstPtr
| using pcl::search::OrganizedNeighbor< PointT >::ConstPtr = shared_ptr<const pcl::search::OrganizedNeighbor<PointT> > |
Определение в строке 76 файла organized.h.
PointCloud
| using pcl::search::OrganizedNeighbor< PointT >::PointCloud = pcl::PointCloud<PointT> |
Определение в строке 70 файла organized.h.
PointCloudConstPtr
| using pcl::search::OrganizedNeighbor< PointT >::PointCloudConstPtr = typename PointCloud::ConstPtr |
Определение в строке 73 файла organized.h.
PointCloudPtr
| using pcl::search::OrganizedNeighbor< PointT >::PointCloudPtr = typename PointCloud::Ptr |
Определение в строке 71 файла organized.h.
Ptr
| using pcl::search::OrganizedNeighbor< PointT >::Ptr = shared_ptr<pcl::search::OrganizedNeighbor<PointT> > |
Определение в строке 75 файла organized.h.
Документация по конструкторам и деструкторам
OrganizedNeighbor()
| inline |
Конструктор.
- Параметры
-
[in] sorted_results указывает, нужно ли возвращать результаты в порядке возрастания расстояния. Применяется только для поиска в радиусе, так как поиск knn всегда возвращает отсортированные результаты
[in] eps порог среднеквадратичной ошибки оценки матрицы проекции. Если СКО превышает это значение, облако точек считается полученным не с проективного устройства, поэтому для него нельзя применять поиск по организованному облаку. [in] pyramid_level уровень уменьшенного облака точек, используемого для оценки матрицы проекции
Определение в строке 90 файла organized.h.
~OrganizedNeighbor()
| overridedefault |
Пустой деструктор.
Документация по функциям-членам
clipRange()
| inlineprotected |
Определение в строке 277 файла organized.h.
computeCameraMatrix()
| void pcl::search::OrganizedNeighbor< PointT >::computeCameraMatrix | ( | Eigen::Matrix3f & | camera_matrix | ) | const |
Вычисляет матрицу камеры.
- Параметры
-
[out] camera_matrix вычисленная матрица камеры
Определение в строке 326 файла organized.hpp.
estimateProjectionMatrix()
| bool pcl::search::OrganizedNeighbor< PointT >::estimateProjectionMatrix |
Оценивает матрицу проекции по входному облаку.
- Возвращает
- true, если матрицу удалось оценить, и false в противном случае
Определение в строке 333 файла organized.hpp.
Используется в pcl::search::OrganizedNeighbor< PointT >::setInputCloud().
getProjectedRadiusSearchBox()
| protected |
Получает двумерную область поиска, соответствующую сфере с радиусом в трёхмерном пространстве.
- Параметры
-
[in] point точка запроса (центр сферы) [in] squared_radius квадрат радиуса сферы [out] minX минимальная координата X области [out] minY минимальная координата Y области [out] maxX максимальная координата X области [out] maxY максимальная координата Y области
Определение в строке 269 файла organized.hpp.
isValid()
| 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()
| 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()
| 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()
| 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()
| 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()
| 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()
| 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()
| bool pcl::search::OrganizedNeighbor< PointT >::testProjectionMatrix |
Быстрая проверка совместимости матрицы проекции и входного облака.
Определение в строке 379 файла organized.hpp.
Ссылки на pcl::projectPoint(), pcl::PointXY::x и pcl::PointXY::y.
Используется в pcl::search::OrganizedNeighbor< PointT >::setInputCloud().
Описание данных-членов
eps_
| protected |
значение эпсилон для среднеквадратичной ошибки оценки матрицы проекции
Определение в строке 306 файла organized.h.
Используется в pcl::search::OrganizedNeighbor< PointT >::setInputCloud() и pcl::search::OrganizedNeighbor< PointT >::setProjectionMatrix().
KR_
| protected |
обратная матрица левой матрицы проекции 3x3, равной K * R (где K — матрица камеры, а R — матрица вращения)
Определение в строке 300 файла organized.h.
Используется в pcl::search::OrganizedNeighbor< PointT >::isValid() и pcl::search::OrganizedNeighbor< PointT >::setProjectionMatrix().
KR_KRT_
| protected |
обратная матрица левой матрицы проекции 3x3, равной K * R (где K — матрица камеры, а R — матрица вращения)
Определение в строке 303 файла organized.h.
Используется в pcl::search::OrganizedNeighbor< PointT >::isValid() и pcl::search::OrganizedNeighbor< PointT >::setProjectionMatrix().
mask_
| protected |
маска, указывающая, содержалась ли точка в списке индексов и является ли она конечной.
Определение в строке 312 файла organized.h.
Используется в pcl::search::OrganizedNeighbor< PointT >::setInputCloud() и pcl::search::OrganizedNeighbor< PointT >::testPoint().
projection_matrix_
| protected |
матрица проекции.
Задаётся пользователем или вычисляется по первому / каждому входному облаку
Определение в строке 297 файла organized.h.
Используется в pcl::search::OrganizedNeighbor< PointT >::setProjectionMatrix().
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