Spec-Zone.ru › PointCloudLibrary

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

#include <pcl/surface/mls.h>

Классы

struct MLSProjectionResults
Структура данных для хранения результатов проецирования MLS. Подробнее...
struct PolynomialPartialDerivative
Структура данных для хранения частных производных полинома MLS. Подробнее...

Открытые типы

enum ProjectionMethod { NONE , SIMPLE , ORTHOGONAL }

Открытые функции-члены

MLSResult ()
MLSResult (const Eigen::Vector3d &a_query_point, const Eigen::Vector3d &a_mean, const Eigen::Vector3d &a_plane_normal, const Eigen::Vector3d &a_u, const Eigen::Vector3d &a_v, const Eigen::VectorXd &a_c_vec, const int a_num_neighbors, const float a_curvature, const int a_order)
void getMLSCoordinates (const Eigen::Vector3d &pt, double &u, double &v, double &w) const
Вычисляет трехмерные координаты точки в системе координат MLS. Подробнее...
void getMLSCoordinates (const Eigen::Vector3d &pt, double &u, double &v) const
Вычисляет двумерные координаты точки в системе координат MLS. Подробнее...
double getPolynomialValue (const double u, const double v) const
Вычисляет значение полинома. Подробнее...
PolynomialPartialDerivative getPolynomialPartialDerivative (const double u, const double v) const
Вычисляет первые и вторые частные производные полинома. Подробнее...
Eigen::Vector2f calculatePrincipalCurvatures (const double u, const double v) const
Вычисляет главные кривизны с использованием полиномиальной поверхности. Подробнее...
MLSProjectionResults projectPointOrthogonalToPolynomialSurface (const double u, const double v, const double w) const
Проецирует точку по нормали к полиномиальной поверхности. Подробнее...
MLSProjectionResults projectPointToMLSPlane (const double u, const double v) const
Проецирует точку на плоскость MLS. Подробнее...
MLSProjectionResults projectPointSimpleToPolynomialSurface (const double u, const double v) const
Проецирует точку на полиномиальную поверхность вдоль нормали к плоскости MLS. Подробнее...
MLSProjectionResults projectPoint (const Eigen::Vector3d &pt, ProjectionMethod method, int required_neighbors=0) const
Проецирует точку указанным методом. Подробнее...
MLSProjectionResults projectQueryPoint (ProjectionMethod method, int required_neighbors=0) const
Проецирует точку запроса, относительно которой была построена поверхность MLS, указанным методом. Подробнее...
template<typename PointT >
void computeMLSSurface (const pcl::PointCloud< PointT > &cloud, pcl::index_t index, const pcl::Indices &nn_indices, double search_radius, int polynomial_order=2, std::function< double(const double)> weight_func={})
Сглаживает заданную точку и ее окрестность методом наименьших квадратов с движущимся окном (MLS). Подробнее...

Открытые атрибуты

Eigen::Vector3d query_point
Точка запроса, относительно которой была построена поверхность MLS. Подробнее...
Eigen::Vector3d mean
Средняя точка всех соседей. Подробнее...
Eigen::Vector3d plane_normal
Нормаль к локальной плоскости точки запроса. Подробнее...
Eigen::Vector3d u_axis
Ось, соответствующая координатам u локальной плоскости точки запроса. Подробнее...
Eigen::Vector3d v_axis
Ось, соответствующая координатам v локальной плоскости точки запроса. Подробнее...
Eigen::VectorXd c_vec
Коэффициенты полинома. Пример: z = c_vec[0] + c_vec[1]*v + c_vec[2]*v^2 + c_vec[3]*u + c_vec[4]*u*v + c_vec[5]*u^2. Подробнее...
int num_neighbors
Количество соседей, использованных для создания поверхности MLS. Подробнее...
float curvature
Кривизна в точке запроса. Подробнее...
int order
Порядок полинома. Подробнее...
bool valid
Если значение равно True, данные результатов MLS корректны; в противном случае оно равно False. Подробнее...

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

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

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

Описание перечисления-члена

ProjectionMethod

enum pcl::MLSResult::ProjectionMethod
Элемент перечисления
NONE

Проецирование на плоскость MLS.

SIMPLE

Проецирование на полиномиальную поверхность вдоль нормали к плоскости MLS.

ORTHOGONAL

Проецирование в ближайшую точку полиномиальной поверхности.

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

Описание конструкторов и деструктора

MLSResult() [1/2]

pcl::MLSResult::MLSResult ( )
inline

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

MLSResult() [2/2]

pcl::MLSResult::MLSResult ( const Eigen::Vector3d & a_query_point,
const Eigen::Vector3d & a_mean,
const Eigen::Vector3d & a_plane_normal,
const Eigen::Vector3d & a_u,
const Eigen::Vector3d & a_v,
const Eigen::VectorXd & a_c_vec,
const int a_num_neighbors,
const float a_curvature,
const int a_order
)
inline

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

Описание функций-членов

calculatePrincipalCurvatures()

Eigen::Vector2f pcl::MLSResult::calculatePrincipalCurvatures ( const double u,
const double v
) const

Вычисляет главные кривизны с использованием полиномиальной поверхности.

Параметры
[in] u Координата u точки в локальной системе координат MLS.
[in] v Координата v точки в локальной системе координат MLS.
Возвращает
Главные кривизны [k1, k2] в заданных координатах uv.
Примечание
При возникновении ошибки возвращается значение 1e-5.

computeMLSSurface()

template<typename PointT >
void pcl::MLSResult::computeMLSSurface ( const pcl::PointCloud< PointT > & cloud,
pcl::index_t index,
const pcl::Indices & nn_indices,
double search_radius,
int polynomial_order = 2,
std::function< double(const double)> weight_func = {}
)

Сглаживает заданную точку и ее окрестность методом наименьших квадратов с движущимся окном (MLS).

Параметры
[in] cloud Входное облако точек, используемое совместно с параметрами index и nn_indices.
[in] index Индекс точки запроса во входном облаке точек.
[in] nn_indices Набор индексов ближайших соседей точки pt.
[in] search_radius Радиус поиска, использованный для нахождения ближайших соседей точки pt.
[in] polynomial_order Порядок полинома, аппроксимирующего ближайших соседей.
[in] weight_func Задает весовую функцию для полиномиальной аппроксимации.

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

Ссылки: pcl::compute3DCentroid(), pcl::computeCovarianceMatrix(), pcl::geometry::distance() и pcl::eigen33().

Используется в pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().

getMLSCoordinates() [1/2]

void pcl::MLSResult::getMLSCoordinates ( const Eigen::Vector3d & pt,
double & u,
double & v
) const
inline

Вычисляет двумерные координаты заданной точки в системе координат MLS.

Параметры
[in] pt Точка.
[out] u Координата u точки в локальной системе координат MLS.
[out] v Координата v точки в локальной системе координат MLS.

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

getMLSCoordinates() [2/2]

void pcl::MLSResult::getMLSCoordinates ( const Eigen::Vector3d & pt,
double & u,
double & v,
double & w
) const
inline

Вычисляет трехмерные координаты заданной точки в системе координат MLS.

Параметры
[in] pt Точка.
[out] u Координата u точки в локальной системе координат MLS.
[out] v Координата v точки в локальной системе координат MLS.
[out] w Координата w точки в локальной системе координат MLS.

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

getPolynomialPartialDerivative()

pcl::MLSResult::PolynomialPartialDerivative pcl::MLSResult::getPolynomialPartialDerivative ( const double u,
const double v
) const
inline

Вычислить первые и вторые частные производные полинома.

Параметры
[in] u Координата u точки в локальной системе координат MLS.
[in] v Координата v точки в локальной системе координат MLS.
Возвращает
Частные производные полинома в заданных координатах uv.

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

getPolynomialValue()

double pcl::MLSResult::getPolynomialValue ( const double u,
const double v
) const
inline

Вычислить значение полинома.

Параметры
[in] u Координата u точки в локальной системе координат MLS.
[in] v Координата v точки в локальной системе координат MLS.
Возвращает
Значение полинома в заданных координатах uv.

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

projectPoint()

pcl::MLSResult::MLSProjectionResults pcl::MLSResult::projectPoint ( const Eigen::Vector3d & pt,
ProjectionMethod method,
int required_neighbors = 0
) const
inline

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

Параметры
[in] pt Проецируемая точка.
[in] method Используемый метод проецирования.
[in] required_neighbors Минимальное требуемое количество соседей.
Примечание
Если required_neighbors равен 0, допускается любое количество соседей.
Если требуемое значение required_neighbors не достигнуто, точка проецируется на плоскость mls.
Возвращает
MLSProjectionResults для входных данных.

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

projectPointOrthogonalToPolynomialSurface()

pcl::MLSResult::MLSProjectionResults pcl::MLSResult::projectPointOrthogonalToPolynomialSurface ( const double u,
const double v,
const double w
) const
inline

Спроецировать точку по нормали к полиномиальной поверхности.

Параметры
[in] u Координата u точки в локальной системе координат MLS.
[in] v Координата v точки в локальной системе координат MLS.
[in] w Координата w точки в локальной системе координат MLS.
Возвращает
MLSProjectionResults для входных данных.
Примечание
Если MLSResults не содержит данных полинома, точка проецируется на плоскость mls.
Если оптимизация расходится, выполняется простое проецирование на полиномиальную поверхность.
Реализация основана на этом источнике: https://math.stackexchange.com/questions/1497093/shortest-distance-between-point-and-surface

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

Ссылки: pcl::MLSResult::MLSProjectionResults::normal, pcl::MLSResult::MLSProjectionResults::point, pcl::MLSResult::MLSProjectionResults::u, pcl::MLSResult::MLSProjectionResults::v, pcl::MLSResult::PolynomialPartialDerivative::z, pcl::MLSResult::PolynomialPartialDerivative::z_u, pcl::MLSResult::PolynomialPartialDerivative::z_uu, pcl::MLSResult::PolynomialPartialDerivative::z_uv, pcl::MLSResult::PolynomialPartialDerivative::z_v и pcl::MLSResult::PolynomialPartialDerivative::z_vv.

projectPointSimpleToPolynomialSurface()

pcl::MLSResult::MLSProjectionResults pcl::MLSResult::projectPointSimpleToPolynomialSurface ( const double u,
const double v
) const
inline

Спроецировать точку вдоль нормали плоскости MLS на полиномиальную поверхность.

Параметры
[in] u Координата u точки в локальной системе координат MLS.
[in] v Координата v точки в локальной системе координат MLS.
Возвращает
MLSProjectionResults для входных данных.
Примечание
Если MLSResults не содержит данных полинома, точка проецируется на плоскость mls.

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

Ссылки: pcl::MLSResult::MLSProjectionResults::normal, pcl::MLSResult::MLSProjectionResults::point, pcl::MLSResult::MLSProjectionResults::u, pcl::MLSResult::MLSProjectionResults::v, pcl::MLSResult::PolynomialPartialDerivative::z, pcl::MLSResult::PolynomialPartialDerivative::z_u и pcl::MLSResult::PolynomialPartialDerivative::z_v.

Используется в: pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().

projectPointToMLSPlane()

pcl::MLSResult::MLSProjectionResults pcl::MLSResult::projectPointToMLSPlane ( const double u,
const double v
) const
inline

Спроецировать точку на плоскость MLS.

Параметры
[in] u Координата u точки в локальной системе координат MLS.
[in] v Координата v точки в локальной системе координат MLS.
Возвращает
MLSProjectionResults для входных данных.

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

Ссылки: pcl::MLSResult::MLSProjectionResults::normal, pcl::MLSResult::MLSProjectionResults::point, pcl::MLSResult::MLSProjectionResults::u и pcl::MLSResult::MLSProjectionResults::v.

Используется в: pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().

projectQueryPoint()

pcl::MLSResult::MLSProjectionResults pcl::MLSResult::projectQueryPoint ( ProjectionMethod method,
int required_neighbors = 0
) const
inline

Спроецировать точку запроса, вокруг которой была построена поверхность mls, указанным способом.

Параметры
[in] method Используемый метод проецирования.
[in] required_neighbors Минимальное требуемое количество соседей.
Примечание
Если required_neighbors равен 0, допускается любое количество соседей.
Если требуемое значение required_neighbors не достигнуто, точка проецируется на плоскость mls.
Возвращает
MLSProjectionResults для входных данных.

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

Ссылки: pcl::MLSResult::MLSProjectionResults::normal и pcl::MLSResult::MLSProjectionResults::point.

Используется в: pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().

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

c_vec

Eigen::VectorXd pcl::MLSResult::c_vec

Коэффициенты полинома. Пример: z = c_vec[0] + c_vec[1]*v + c_vec[2]*v^2 + c_vec[3]*u + c_vec[4]*u*v + c_vec[5]*u^2.

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

curvature

float pcl::MLSResult::curvature

Кривизна в точке запроса.

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

Используется в: pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().

mean

Eigen::Vector3d pcl::MLSResult::mean

Средняя точка всех соседей.

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

num_neighbors

int pcl::MLSResult::num_neighbors

Количество соседей, использованных для создания поверхности mls.

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

Используется в: pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().

order

int pcl::MLSResult::order

Порядок полинома.

Если order > 1, используется аппроксимация полиномом.

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

plane_normal

Eigen::Vector3d pcl::MLSResult::plane_normal

Нормаль локальной плоскости точки запроса.

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

query_point

Eigen::Vector3d pcl::MLSResult::query_point

Точка запроса, вокруг которой была построена поверхность mls.

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

u_axis

Eigen::Vector3d pcl::MLSResult::u_axis

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

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

v_axis

Eigen::Vector3d pcl::MLSResult::v_axis

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

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

valid

bool pcl::MLSResult::valid

Если значение равно True, данные результата mls действительны; в противном случае — False.

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


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

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

Spec-Zone.ru

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