Класс уточнения нормали Подробнее...
#include <pcl/filters/normal_refinement.h>
Общедоступные члены-функции | |
| NormalRefinement () | |
| Пустой конструктор, устанавливает параметры сходимости по умолчанию. Подробнее... |
|
| NormalRefinement (const std::vector< Indices > &k_indices, const std::vector< std::vector< float > > &k_sqr_distances) | |
| Конструктор для установки соответствий, устанавливает параметры сходимости по умолчанию. Подробнее... |
|
| void | setCorrespondences (const std::vector< Indices > &k_indices, const std::vector< std::vector< float > > &k_sqr_distances) |
| Установить соответствия, вычисленные с помощью поиска ближайших соседей. Подробнее... |
|
| void | getCorrespondences (std::vector< Indices > &k_indices, std::vector< std::vector< float > > &k_sqr_distances) |
| Получить соответствия (копировать) Подробнее... |
|
| void | setMaxIterations (unsigned int max_iterations) |
| Установить максимальное количество итераций. Подробнее... |
|
| unsigned int | getMaxIterations () |
| Получить максимальное количество итераций. Подробнее... |
|
| void | setConvergenceThreshold (float convergence_threshold) |
| Установить порог сходимости. Подробнее... |
|
| float | getConvergenceThreshold () |
| Получить порог сходимости. Подробнее... |
|
|
| |
| Filter (bool extract_removed_indices=false) | |
| Пустой конструктор. Подробнее... |
|
| IndicesConstPtr const | getRemovedIndices () const |
| Получить индексы точек, которые удаляются. Подробнее... |
|
| void | getRemovedIndices (PointIndices &pi) |
| Получить индексы точек, которые удаляются. Подробнее... |
|
| void | filter (PointCloud &output) |
| Вызывает метод фильтрации и возвращает отфильтрованный набор данных в output. Подробнее... |
|
|
| |
| 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 PointT & | operator[] (std::size_t pos) const |
| Переопределить PointCloud operator[] для сокращения кода. Подробнее... |
|
Защищенные члены функций | |
| void | applyFilter (PointCloud &output) override |
|
Фильтр облака точек. Подробнее... |
|
|
| |
| const std::string & | getClassName () const |
| Получить строковое представление имени этого класса. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод должен вызываться перед запуском фактического вычисления. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод должен вызываться после завершения фактического вычисления. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| using | Ptr = shared_ptr< Filter< NormalT > > |
| using | ConstPtr = shared_ptr< const Filter< NormalT > > |
| using | PointCloud = pcl::PointCloud< NormalT > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
|
| |
| using | PointCloud = pcl::PointCloud< PointT > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | PointIndicesPtr = PointIndices::Ptr |
| using | PointIndicesConstPtr = PointIndices::ConstPtr |
|
| |
| IndicesPtr | removed_indices_ |
| Индексы точек, которые были удалены. Подробнее... |
|
| std::string | filter_name_ |
| Имя фильтра. Подробнее... |
|
| bool | extract_removed_indices_ |
| Установить в значение true, если нужно вернуть индексы удалённых точек. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| Входной набор точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор индексов точек для использования. Подробнее... |
|
| bool | use_indices_ |
| Установлено в true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, мы создаём набор фиктивных индексов, имитирующих входной PointCloud. Подробнее... |
|
Подробное описание
шаблон<typename NormalT>
класс pcl::NormalRefinement< NormalT >
Класс уточнения векторов нормалей
Этот класс уточняет набор уже оценённых нормалей, итеративно обновляя каждую нормаль до (взвешенного) среднего значения всех нормалей в её окрестности. Цель — повторное использование тех же соответствий точек, что и при оценке исходных нормалей, чтобы избежать повторного поиска ближайших соседей.
- Примечание
- Этот класс игнорирует точки, для которых в окрестности встречается NaN. В особых случаях, когда у точки только NaN в окрестности, результирующая уточнённая нормаль устанавливается в ноль, т. е. этот класс генерирует только конечные нормали.
Пример использования:
// Input point cloud
pcl::PointCloud<PointT> cloud;
// Fill cloud...
// Estimated and refined normals
pcl::PointCloud<NormalT> normals;
pcl::PointCloud<NormalT> normals_refined;
// Search parameters
const int k = 5;
std::vector<Indices > k_indices;
std::vector<std::vector<float> > k_sqr_distances;
// Run search
pcl::search::KdTree<pcl::PointXYZRGB> search;
search.setInputCloud (cloud.makeShared ());
search.nearestKSearch (cloud, Indices (), k, k_indices, k_sqr_distances);
// Use search results for normal estimation
pcl::NormalEstimation<PointT, NormalT> ne;
for (unsigned int i = 0; i < cloud.size (); ++i)
{
NormalT normal;
ne.computePointNormal (cloud, k_indices[i]
normal.normal_x, normal.normal_y, normal.normal_z, normal.curvature);
pcl::flipNormalTowardsViewpoint (cloud[i], cloud.sensor_origin_[0], cloud.sensor_origin_[1], cloud.sensor_origin_[2],
normal.normal_x, normal.normal_y, normal.normal_z);
normals.push_back (normal);
}
// Run refinement using search results
pcl::NormalRefinement<NormalT> nr (k_indices, k_sqr_distances);
nr.setInputCloud (normals.makeShared ());
nr.filter (normals_refined);
pcl::NormalEstimationNormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point.Definition: normal_3d.h:244
pcl::NormalEstimation
NormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point.
Definition: normal_3d.h:244
pcl::NormalEstimation::computePointNormalbool computePointNormal(const pcl::PointCloud< PointInT > &cloud, const pcl::Indices &indices, Eigen::Vector4f &plane_parameters, float &curvature)Compute the Least-Squares plane fit for a given set of points, using their indices,...Definition: normal_3d.h:284
pcl::NormalEstimation::computePointNormal
bool computePointNormal(const pcl::PointCloud< PointInT > &cloud, const pcl::Indices &indices, Eigen::Vector4f &plane_parameters, float &curvature)
Compute the Least-Squares plane fit for a given set of points, using their indices,...
Definition: normal_3d.h:284
pcl::NormalRefinementNormal vector refinement classDefinition: normal_refinement.h:191
pcl::NormalRefinement
Normal vector refinement class
Definition: normal_refinement.h:191
pcl::PointCloudPointCloud represents the base class in PCL for storing collections of 3D points.Definition: point_cloud.h:173
pcl::PointCloud
PointCloud represents the base class in PCL for storing collections of 3D points.
Definition: point_cloud.h:173
pcl::PointCloud::push_backvoid push_back(const PointT &pt)Insert a new point in the cloud, at the end of the container.Definition: point_cloud.h:663
pcl::PointCloud::push_back
void push_back(const PointT &pt)
Insert a new point in the cloud, at the end of the container.
Definition: point_cloud.h:663
pcl::PointCloud::sizestd::size_t size() constDefinition: point_cloud.h:443
pcl::PointCloud::size
std::size_t size() const
Definition: point_cloud.h:443
pcl::PointCloud::sensor_origin_Eigen::Vector4f sensor_origin_Sensor acquisition pose (origin/translation).Definition: point_cloud.h:406
pcl::PointCloud::sensor_origin_
Eigen::Vector4f sensor_origin_
Sensor acquisition pose (origin/translation).
Definition: point_cloud.h:406
pcl::PointCloud::makeSharedPtr makeShared() constCopy the cloud to the heap and return a smart pointer Note that deep copy is performed,...Definition: point_cloud.h:898
pcl::PointCloud::makeShared
Ptr makeShared() const
Copy the cloud to the heap and return a smart pointer Note that deep copy is performed,...
Definition: point_cloud.h:898
pcl::search::KdTree< pcl::PointXYZRGB >
pcl::search::KdTree< pcl::PointXYZRGB >
pcl::search::KdTree::nearestKSearchint nearestKSearch(const PointT &point, int k, Indices &k_indices, std::vector< float > &k_sqr_distances) const overrideSearch for the k-nearest neighbors for the given query point.Definition: kdtree.hpp:87
pcl::search::KdTree::nearestKSearch
int nearestKSearch(const PointT &point, int k, Indices &k_indices, std::vector< float > &k_sqr_distances) const override
Search for the k-nearest neighbors for the given query point.
Definition: kdtree.hpp:87
pcl::search::KdTree::setInputCloudvoid setInputCloud(const PointCloudConstPtr &cloud, const IndicesConstPtr &indices=IndicesConstPtr()) overrideProvide a pointer to the input dataset.Definition: kdtree.hpp:76
pcl::search::KdTree::setInputCloud
void setInputCloud(const PointCloudConstPtr &cloud, const IndicesConstPtr &indices=IndicesConstPtr()) override
Provide a pointer to the input dataset.
Definition: kdtree.hpp:76
pcl::flipNormalTowardsViewpointvoid flipNormalTowardsViewpoint(const PointT &point, float vp_x, float vp_y, float vp_z, Eigen::Matrix< Scalar, 4, 1 > &normal)Flip (in place) the estimated normal of a point towards a given viewpoint.Definition: normal_3d.h:122
pcl::flipNormalTowardsViewpoint
void flipNormalTowardsViewpoint(const PointT &point, float vp_x, float vp_y, float vp_z, Eigen::Matrix< Scalar, 4, 1 > &normal)
Flip (in place) the estimated normal of a point towards a given viewpoint.
Definition: normal_3d.h:122
pcl::IndicesIndicesAllocator<> IndicesType used for indices in PCL.Definition: types.h:133
pcl::Indices
IndicesAllocator<> Indices
Type used for indices in PCL.
Definition: types.h:133
pcl::_Normal::curvaturefloat curvatureDefinition: point_types.hpp:809
pcl::_Normal::curvature
float curvature
Definition: point_types.hpp:809
pcl::NormalA point structure representing normal coordinates and the surface curvature estimate.Definition: point_types.hpp:821
pcl::Normal
A point structure representing normal coordinates and the surface curvature estimate.
Definition: point_types.hpp:821
Определение в строке 190 файла normal_refinement.h.
Документация конструкторов и деструкторов
NormalRefinement() [1/2]
| inline |
Пустой конструктор, устанавливает параметры сходимости по умолчанию.
Определение в строке 203 файла normal_refinement.h.
Ссылки на pcl::Filter< NormalT >::filter_name_, pcl::NormalRefinement< NormalT >::setConvergenceThreshold(), и pcl::NormalRefinement< NormalT >::setMaxIterations().
NormalRefinement() [2/2]
| inline |
Конструктор для установки соответствий, устанавливает параметры сходимости по умолчанию.
- Параметры
-
k_indices индексы соседних точек k_sqr_distances квадраты расстояний до соседних точек
Определение в строке 215 файла normal_refinement.h.
Ссылки на pcl::Filter< NormalT >::filter_name_, pcl::NormalRefinement< NormalT >::setConvergenceThreshold(), pcl::NormalRefinement< NormalT >::setCorrespondences(), и pcl::NormalRefinement< NormalT >::setMaxIterations().
Документация по функциям-членам
applyFilter()
| overrideprotectedvirtual |
Фильтр облака точек.
- Параметры
-
output сообщение результирующего облака точек
Реализует pcl::Filter< NormalT >.
Определение в строке 48 файла normal_refinement.hpp.
Ссылки на pcl::refineNormal().
getConvergenceThreshold()
| inline |
Получить порог сходимости.
- Возвращает
- порог сходимости
Определение в строке 277 файла normal_refinement.h.
getCorrespondences()
| inline |
Получить соответствия (копию)
- Параметры
-
k_indices индексы соседних точек k_sqr_distances квадраты расстояний до соседних точек
Определение в строке 240 файла normal_refinement.h.
getMaxIterations()
| inline |
Получить максимальное количество итераций.
- Возвращает
- максимальное количество итераций
Определение в строке 259 файла normal_refinement.h.
setConvergenceThreshold()
| inline |
Установить порог сходимости.
- Параметры
-
convergence_threshold порог сходимости
Определение в строке 268 файла normal_refinement.h.
Используется в pcl::NormalRefinement< NormalT >::NormalRefinement().
setCorrespondences()
| inline |
Установить соответствия, рассчитанные с помощью поиска ближайших соседей.
- Параметры
-
k_indices индексы соседних точек k_sqr_distances квадраты расстояний до соседних точек
Определение в строке 229 файла normal_refinement.h.
Используется в pcl::NormalRefinement< NormalT >::NormalRefinement().
setMaxIterations()
| inline |
Установить максимальное количество итераций.
- Параметры
-
max_iterations максимальное количество итераций
Определение в строке 250 файла normal_refinement.h.
Используется в pcl::NormalRefinement< NormalT >::NormalRefinement().
The documentation for this class was generated from the following files:
- pcl/filters/normal_refinement.h
- pcl/filters/impl/normal_refinement.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_normal_refinement.html