Spec-Zone.ru › PointCloudLibrary

RangeImage является производным от pcl/PointCloud и предоставляет функциональность, ориентированную на ситуации, когда 3D-сцена была снята с определённой точки обзора. Подробнее...

#include <pcl/range_image/range_image.h>

Inheritance graph
[легенда]
Collaboration graph
[легенда]

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

enum CoordinateFrame { CAMERA_FRAME = 0 , LASER_FRAME = 1 }
using BaseClass = pcl::PointCloud< PointWithRange >
using VectorOfEigenVector3f = std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > >
using Ptr = shared_ptr< RangeImage >
using ConstPtr = shared_ptr< const RangeImage >
-Открытые типы, унаследованные от pcl::PointCloud< PointWithRange >
using PointType = PointWithRange
using VectorType = std::vector< PointWithRange, Eigen::aligned_allocator< PointWithRange > >
using CloudVectorType = std::vector< PointCloud< PointWithRange >, Eigen::aligned_allocator< PointCloud< PointWithRange > > >
using Ptr = shared_ptr< PointCloud< PointWithRange > >
using ConstPtr = shared_ptr< const PointCloud< PointWithRange > >
using value_type = PointWithRange
using reference = PointWithRange &
using const_reference = const PointWithRange &
using difference_type = typename VectorType::difference_type
using size_type = typename VectorType::size_type
using iterator = typename VectorType::iterator
using const_iterator = typename VectorType::const_iterator
using reverse_iterator = typename VectorType::reverse_iterator
using const_reverse_iterator = typename VectorType::const_reverse_iterator

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

PCL_EXPORTS RangeImage ()
Конструктор. Подробнее...
virtual PCL_EXPORTS ~RangeImage ()
Деструктор. Подробнее...
Ptr makeShared ()
Получить boost-указатель совместного владения на копию этого объекта. Подробнее...
PCL_EXPORTS void reset ()
Сбросить все значения, создав пустое изображение дальности. Подробнее...
template<typename PointCloudType >
void createFromPointCloud (const PointCloudType &point_cloud, float angular_resolution=pcl::deg2rad(0.5f), float max_angle_width=pcl::deg2rad(360.0f), float max_angle_height=pcl::deg2rad(180.0f), const Eigen::Affine3f &sensor_pose=Eigen::Affine3f::Identity(), CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)
Создать изображение глубины на основе облака точек. Подробнее...
template<typename PointCloudType >
void createFromPointCloud (const PointCloudType &point_cloud, float angular_resolution_x=pcl::deg2rad(0.5f), float angular_resolution_y=pcl::deg2rad(0.5f), float max_angle_width=pcl::deg2rad(360.0f), float max_angle_height=pcl::deg2rad(180.0f), const Eigen::Affine3f &sensor_pose=Eigen::Affine3f::Identity(), CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)
Создать изображение глубины на основе облака точек. Подробнее...
template<typename PointCloudType >
void createFromPointCloudWithKnownSize (const PointCloudType &point_cloud, float angular_resolution, const Eigen::Vector3f &point_cloud_center, float point_cloud_radius, const Eigen::Affine3f &sensor_pose=Eigen::Affine3f::Identity(), CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)
Создать изображение глубины на основе облака точек, задав примерный размер сцены для ускорения вычислений. Подробнее...
template<typename PointCloudType >
void createFromPointCloudWithKnownSize (const PointCloudType &point_cloud, float angular_resolution_x, float angular_resolution_y, const Eigen::Vector3f &point_cloud_center, float point_cloud_radius, const Eigen::Affine3f &sensor_pose=Eigen::Affine3f::Identity(), CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)
Создать изображение глубины на основе облака точек, задав примерный размер сцены для ускорения вычислений. Подробнее...
template<typename PointCloudTypeWithViewpoints >
void createFromPointCloudWithViewpoints (const PointCloudTypeWithViewpoints &point_cloud, float angular_resolution, float max_angle_width, float max_angle_height, CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)
Создать изображение глубины на основе облака точек, используя среднюю точку обзора точек (vp_x,vp_y,vp_z в типе точки) облака точек в качестве положения датчика (предполагая поворот (0,0,0)). Подробнее...
template<typename PointCloudTypeWithViewpoints >
void createFromPointCloudWithViewpoints (const PointCloudTypeWithViewpoints &point_cloud, float angular_resolution_x, float angular_resolution_y, float max_angle_width, float max_angle_height, CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)
Создать изображение глубины на основе облака точек, используя среднюю точку обзора точек (vp_x,vp_y,vp_z в типе точки) облака точек в качестве положения датчика (предполагая поворот (0,0,0)). Подробнее...
void createEmpty (float angular_resolution, const Eigen::Affine3f &sensor_pose=Eigen::Affine3f::Identity(), RangeImage::CoordinateFrame coordinate_frame=CAMERA_FRAME, float angle_width=pcl::deg2rad(360.0f), float angle_height=pcl::deg2rad(180.0f))
Создать пустое изображение глубины (заполненное ненаблюдавшимися точками) Подробнее...
void createEmpty (float angular_resolution_x, float angular_resolution_y, const Eigen::Affine3f &sensor_pose=Eigen::Affine3f::Identity(), RangeImage::CoordinateFrame coordinate_frame=CAMERA_FRAME, float angle_width=pcl::deg2rad(360.0f), float angle_height=pcl::deg2rad(180.0f))
Создать пустое изображение глубины (заполненное ненаблюдавшимися точками) Подробнее...
template<typename PointCloudType >
void doZBuffer (const PointCloudType &point_cloud, float noise_level, float min_range, int &top, int &right, int &bottom, int &left)
Интегрировать указанное облако точек в текущее изображение дальности с помощью z-буфера. Подробнее...
template<typename PointCloudType >
void integrateFarRanges (const PointCloudType &far_ranges)
Интегрировать указанные измерения дальности на больших расстояниях в изображение дальности. Подробнее...
PCL_EXPORTS void cropImage (int border_size=0, int top=-1, int right=-1, int bottom=-1, int left=-1)
Обрезать изображение дальности до минимального размера, при котором оно по-прежнему содержит все фактические измерения дальности. Подробнее...
PCL_EXPORTS float * getRangesArray () const
Получить все значения дальности в одном массиве float размером width*height. Подробнее...
const Eigen::Affine3f & getTransformationToRangeImageSystem () const
Получить преобразование из мировой системы координат в систему координат изображения дальности (систему координат датчика). Подробнее...
void setTransformationToRangeImageSystem (const Eigen::Affine3f &to_range_image_system)
Задать преобразование из системы координат изображения дальности (системы координат датчика) в мировую систему координат. Подробнее...
const Eigen::Affine3f & getTransformationToWorldSystem () const
Получить преобразование из системы координат изображения дальности (системы координат датчика) в мировую систему координат. Подробнее...
float getAngularResolution () const
Получить угловое разрешение изображения дальности по оси x в радианах на пиксель. Подробнее...
float getAngularResolutionX () const
Получить угловое разрешение изображения дальности по оси x в радианах на пиксель. Подробнее...
float getAngularResolutionY () const
Получить угловое разрешение изображения дальности по оси y в радианах на пиксель. Подробнее...
void getAngularResolution (float &angular_resolution_x, float &angular_resolution_y) const
Получить угловое разрешение изображения дальности по осям x и y (в радианах). Подробнее...
void setAngularResolution (float angular_resolution)
Задать угловое разрешение изображения дальности. Подробнее...
void setAngularResolution (float angular_resolution_x, float angular_resolution_y)
Задать угловое разрешение изображения дальности. Подробнее...
const PointWithRange & getPoint (int image_x, int image_y) const
Вернуть 3D-точку с дальностью в указанной позиции изображения. Подробнее...
PointWithRange & getPoint (int image_x, int image_y)
Неконстантная версия getPoint. Подробнее...
const PointWithRange & getPoint (float image_x, float image_y) const
Вернуть 3D-точку с дальностью в указанной позиции изображения. Подробнее...
PointWithRange & getPoint (float image_x, float image_y)
Неконстантная версия метода, описанного выше. Подробнее...
const PointWithRange & getPointNoCheck (int image_x, int image_y) const
Вернуть 3D-точку с дальностью в указанной позиции изображения. Подробнее...
PointWithRange & getPointNoCheck (int image_x, int image_y)
Неконстантная версия getPointNoCheck. Подробнее...
void getPoint (int image_x, int image_y, Eigen::Vector3f &point) const
То же, что и выше. Подробнее...
void getPoint (int index, Eigen::Vector3f &point) const
То же, что и выше. Подробнее...
const Eigen::Map< const Eigen::Vector3f > getEigenVector3f (int x, int y) const
То же, что и выше. Подробнее...
const Eigen::Map< const Eigen::Vector3f > getEigenVector3f (int index) const
То же, что и выше. Подробнее...
const PointWithRange & getPoint (int index) const
Вернуть 3D-точку с дальностью по указанному индексу (где index=y*width+x). Подробнее...
void calculate3DPoint (float image_x, float image_y, float range, PointWithRange &point) const
Вычислить 3D-точку по заданной точке изображения и дальности. Подробнее...
void calculate3DPoint (float image_x, float image_y, PointWithRange &point) const
Вычислить 3D-точку по заданной точке изображения и значению дальности ближайшего пикселя. Подробнее...
virtual void calculate3DPoint (float image_x, float image_y, float range, Eigen::Vector3f &point) const
Вычисляет 3D-точку в соответствии с заданной точкой изображения и дальностью. Подробнее...
void calculate3DPoint (float image_x, float image_y, Eigen::Vector3f &point) const
Вычисляет 3D-точку в соответствии с заданной точкой изображения и значением дальности в ближайшем пикселе. Подробнее...
PCL_EXPORTS void recalculate3DPointPositions ()
Повторно вычисляет положения всех 3D-точек в соответствии с их положением в пикселях и дальностью. Подробнее...
virtual void getImagePoint (const Eigen::Vector3f &point, float &image_x, float &image_y, float &range) const
Получает точку изображения по 3D-точке в мировых координатах. Подробнее...
void getImagePoint (const Eigen::Vector3f &point, int &image_x, int &image_y, float &range) const
То же, что и выше. Подробнее...
void getImagePoint (const Eigen::Vector3f &point, float &image_x, float &image_y) const
То же, что и выше. Подробнее...
void getImagePoint (const Eigen::Vector3f &point, int &image_x, int &image_y) const
То же, что и выше. Подробнее...
void getImagePoint (float x, float y, float z, float &image_x, float &image_y, float &range) const
То же, что и выше. Подробнее...
void getImagePoint (float x, float y, float z, float &image_x, float &image_y) const
То же, что и выше. Подробнее...
void getImagePoint (float x, float y, float z, int &image_x, int &image_y) const
То же, что и выше. Подробнее...
float checkPoint (const Eigen::Vector3f &point, PointWithRange &point_in_image) const
point_in_image будет точкой изображения в положении, где находилась бы заданная точка. Подробнее...
float getRangeDifference (const Eigen::Vector3f &point) const
Возвращает разницу между дальностью заданной точки и дальностью точки изображения в положении, где находилась бы заданная точка. Подробнее...
void getImagePointFromAngles (float angle_x, float angle_y, float &image_x, float &image_y) const
Получает точку изображения, соответствующую заданным углам. Подробнее...
void getAnglesFromImagePoint (float image_x, float image_y, float &angle_x, float &angle_y) const
Получает углы, соответствующие заданной точке изображения. Подробнее...
void real2DToInt2D (float x, float y, int &xInt, int &yInt) const
Преобразует координаты точки изображения из вещественных значений в целочисленные. Подробнее...
bool isInImage (int x, int y) const
Проверяет, находится ли точка внутри изображения. Подробнее...
bool isValid (int x, int y) const
Проверяет, находится ли точка внутри изображения и имеет ли она конечное значение дальности. Подробнее...
bool isValid (int index) const
Проверяет, имеет ли точка конечное значение дальности. Подробнее...
bool isObserved (int x, int y) const
Проверяет, находится ли точка внутри изображения и имеет ли она конечное значение дальности или соответствует максимальному показанию (range=INFINITY). Подробнее...
bool isMaxRange (int x, int y) const
Проверяет, соответствует ли точка максимальной дальности (range=INFINITY) — сначала вызовите isInImage или isObserved! Подробнее...
bool getNormal (int x, int y, int radius, Eigen::Vector3f &normal, int step_size=1) const
Вычисляет нормаль точки изображения, используя соседние точки в пределах максимального расстояния в пикселях, равного radius. Подробнее...
bool getNormalForClosestNeighbors (int x, int y, int radius, const PointWithRange &point, int no_of_nearest_neighbors, Eigen::Vector3f &normal, int step_size=1) const
То же, что и выше, но учитываются только no_of_nearest_neighbors точек, ближайших к заданной точке. Подробнее...
bool getNormalForClosestNeighbors (int x, int y, int radius, const Eigen::Vector3f &point, int no_of_nearest_neighbors, Eigen::Vector3f &normal, Eigen::Vector3f *point_on_plane=nullptr, int step_size=1) const
То же, что и выше. Подробнее...
bool getNormalForClosestNeighbors (int x, int y, Eigen::Vector3f &normal, int radius=2) const
То же, что и выше, с использованием значений по умолчанию. Подробнее...
bool getSurfaceInformation (int x, int y, int radius, const Eigen::Vector3f &point, int no_of_closest_neighbors, int step_size, float &max_closest_neighbor_distance_squared, Eigen::Vector3f &normal, Eigen::Vector3f &mean, Eigen::Vector3f &eigen_values, Eigen::Vector3f *normal_all_neighbors=nullptr, Eigen::Vector3f *mean_all_neighbors=nullptr, Eigen::Vector3f *eigen_values_all_neighbors=nullptr) const
То же, что и выше, но извлекает дополнительные данные и может также возвращать извлечённую информацию для всех соседей в радиусе, если normal_all_neighbors не равен NULL. Подробнее...
float getSquaredDistanceOfNthNeighbor (int x, int y, int radius, int n, int step_size) const
float getImpactAngle (const PointWithRange &point1, const PointWithRange &point2) const
Вычисляет угол падения на основе положения датчика и двух заданных точек; возвращает -INFINITY, если одна из точек не наблюдалась. Подробнее...
float getImpactAngle (int x1, int y1, int x2, int y2) const
То же, что и выше. Подробнее...
float getImpactAngleBasedOnLocalNormal (int x, int y, int radius) const
Извлекает локальную нормаль (с использованием эвристики, исключающей точки фона) и вычисляет на её основе угол падения. Подробнее...
PCL_EXPORTS float * getImpactAngleImageBasedOnLocalNormals (int radius) const
Применяет указанную выше функцию к каждой точке изображения. Подробнее...
float getNormalBasedAcutenessValue (int x, int y, int radius) const
Вычисляет оценку в диапазоне [0,1], показывающую остроту угла падения (1.0f - getImpactAngle/90deg). Использует getImpactAngleBasedOnLocalNormal. Возвращает -INFINITY, если нормаль вычислить не удалось. Подробнее...
float getAcutenessValue (const PointWithRange &point1, const PointWithRange &point2) const
Вычисляет оценку в диапазоне [0,1], показывающую остроту угла падения (1.0f - getImpactAngle/90deg); возвращает -INFINITY, если одна из точек не наблюдалась. Подробнее...
float getAcutenessValue (int x1, int y1, int x2, int y2) const
То же, что и выше. Подробнее...
PCL_EXPORTS void getAcutenessValueImages (int pixel_distance, float *&acuteness_value_image_x, float *&acuteness_value_image_y) const
Вычисляет getAcutenessValue для каждой точки. Подробнее...
PCL_EXPORTS float getSurfaceChange (int x, int y, int radius) const
Вычисляет степень изменения поверхности в заданной точке. Подробнее...
PCL_EXPORTS float * getSurfaceChangeImage (int radius) const
Применяет указанную выше функцию к каждой точке изображения. Подробнее...
void getSurfaceAngleChange (int x, int y, int radius, float &angle_change_x, float &angle_change_y) const
Вычисляет степень изменения поверхности в заданной точке. Подробнее...
PCL_EXPORTS void getSurfaceAngleChangeImages (int radius, float *&angle_change_image_x, float *&angle_change_image_y) const
Применяет указанную выше функцию к каждой точке изображения. Подробнее...
float getCurvature (int x, int y, int radius, int step_size) const
Вычисляет кривизну в точке с помощью метода главных компонент. Подробнее...
const Eigen::Vector3f getSensorPos () const
Возвращает положение датчика. Подробнее...
PCL_EXPORTS void setUnseenToMaxRange ()
Заменяет все значения -INFINITY на INFINITY. Подробнее...
int getImageOffsetX () const
Получает значение image_offset_x_. Подробнее...
int getImageOffsetY () const
Получает значение image_offset_y_. Подробнее...
void setImageOffsets (int offset_x, int offset_y)
Задаёт смещения изображения. Подробнее...
virtual void getSubImage (int sub_image_image_offset_x, int sub_image_image_offset_y, int sub_image_width, int sub_image_height, int combine_pixels, RangeImage &sub_image) const
Возвращает часть полного изображения в виде нового изображения дальности. Подробнее...
virtual void getHalfImage (RangeImage &half_image) const
Возвращает изображение дальности с разрешением вдвое меньше исходного. Подробнее...
PCL_EXPORTS void getMinMaxRanges (float &min_range, float &max_range) const
Найти минимальное и максимальное расстояние на изображении. Подробнее...
PCL_EXPORTS void change3dPointsToLocalCoordinateFrame ()
Эта функция задаёт позу датчика равной 0 и преобразует координаты всех точек в эту локальную систему координат. Подробнее...
PCL_EXPORTS float * getInterpolatedSurfaceProjection (const Eigen::Affine3f &pose, int pixel_size, float world_size) const
Вычислить фрагмент изображения расстояний как значения z системы координат, заданной позой pose. Подробнее...
PCL_EXPORTS float * getInterpolatedSurfaceProjection (const Eigen::Vector3f &point, int pixel_size, float world_size) const
То же, что и выше, но с использованием локальной системы координат, заданной точкой и направлением взгляда. Подробнее...
Eigen::Affine3f getTransformationToViewerCoordinateFrame (const Eigen::Vector3f &point) const
Получить локальную систему координат с началом в точке point, вертикальной осью и осью Z, направленной в сторону наблюдения. Подробнее...
void getTransformationToViewerCoordinateFrame (const Eigen::Vector3f &point, Eigen::Affine3f &transformation) const
То же, что и выше, но возвращает результат через ссылочный параметр. Подробнее...
void getRotationToViewerCoordinateFrame (const Eigen::Vector3f &point, Eigen::Affine3f &transformation) const
То же, что и выше, но возвращает только вращение. Подробнее...
PCL_EXPORTS bool getNormalBasedUprightTransformation (const Eigen::Vector3f &point, float max_dist, Eigen::Affine3f &transformation) const
Получить локальную систему координат в заданной точке на основе нормали. Подробнее...
PCL_EXPORTS void getIntegralImage (float *&integral_image, int *&valid_points_num_image) const
Получить интегральное изображение значений расстояний (используется для быстрого размытия). Подробнее...
PCL_EXPORTS void getBlurredImageUsingIntegralImage (int blur_radius, float *integral_image, int *valid_points_num_image, RangeImage &range_image) const
Получить размытую версию изображения расстояний, применив фильтры усреднения к предоставленному интегральному изображению. Подробнее...
virtual PCL_EXPORTS void getBlurredImage (int blur_radius, RangeImage &range_image) const
Получить размытую версию изображения расстояний с помощью фильтров усреднения. Подробнее...
float getEuclideanDistanceSquared (int x1, int y1, int x2, int y2) const
Получить квадрат евклидова расстояния между двумя точками изображения. Подробнее...
float getAverageEuclideanDistance (int x, int y, int offset_x, int offset_y, int max_steps) const
Выполняет описанное выше вычисление на нескольких шагах в заданном направлении и усредняет результат. Подробнее...
PCL_EXPORTS void getRangeImageWithSmoothedSurface (int radius, RangeImage &smoothed_range_image) const
Проецировать все точки на локальное приближение плоскости, сглаживая тем самым поверхность скана. Подробнее...
void get1dPointAverage (int x, int y, int delta_x, int delta_y, int no_of_points, PointWithRange &average_point) const
Вычисляет среднее 3D-положение no_of_points точек, заданных начальной точкой x,y и направлением delta. Подробнее...
PCL_EXPORTS float getOverlap (const RangeImage &other_range_image, const Eigen::Affine3f &relative_transformation, int search_radius, float max_distance, int pixel_step=1) const
Вычисляет степень перекрытия двух изображений расстояний с учётом относительного преобразования (от заданного изображения к *this). Подробнее...
bool getViewingDirection (int x, int y, Eigen::Vector3f &viewing_direction) const
Получить направление взгляда для заданной точки. Подробнее...
void getViewingDirection (const Eigen::Vector3f &point, Eigen::Vector3f &viewing_direction) const
Получить направление взгляда для заданной точки. Подробнее...
virtual PCL_EXPORTS RangeImage * getNew () const
Вернуть новое созданное изображение расстояний. Подробнее...
virtual PCL_EXPORTS void copyTo (RangeImage &other) const
Скопировать other в *this. Подробнее...
- Публичные функции-члены, унаследованные от pcl::PointCloud< PointWithRange >
PointCloud ()=default
Конструктор по умолчанию. Подробнее...
PointCloud (const PointCloud< PointWithRange > &pc, const Indices &indices)
Конструктор копирования для подмножества облака точек. Подробнее...
PointCloud (std::uint32_t width_, std::uint32_t height_, const PointWithRange &value_=PointWithRange())
Конструктор с выделением памяти для подмножества облака точек. Подробнее...
PointCloud & operator+= (const PointCloud &rhs)
Добавить облако точек к текущему облаку. Подробнее...
PointCloud operator+ (const PointCloud &rhs)
Добавить облако точек к другому облаку. Подробнее...
const PointWithRange & at (int column, int row) const
Получить точку по координатам (столбец, строка). Подробнее...
PointWithRange & at (int column, int row)
Получить точку по координатам (столбец, строка). Подробнее...
const PointWithRange & at (std::size_t n) const
PointWithRange & at (std::size_t n)
const PointWithRange & operator() (std::size_t column, std::size_t row) const
Получить точку по координатам (столбец, строка). Подробнее...
PointWithRange & operator() (std::size_t column, std::size_t row)
Получить точку по координатам (столбец, строка). Подробнее...
bool isOrganized () const
Возвращает true, если набор данных организован (например, представлен в виде структурированной сетки). Подробнее...
Eigen::Map< Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> > getMatrixXfMap (int dim, int stride, int offset)
Возвращает матрицу MatrixXf библиотеки Eigen (предполагаются значения float), сопоставленную с указанными измерениями облака точек. Подробнее...
const Eigen::Map< const Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> > getMatrixXfMap (int dim, int stride, int offset) const
Возвращает матрицу MatrixXf библиотеки Eigen (предполагаются значения float), сопоставленную с указанными измерениями облака точек. Подробнее...
Eigen::Map< Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> > getMatrixXfMap ()
const Eigen::Map< const Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> > getMatrixXfMap () const
iterator begin () noexcept
const_iterator begin () const noexcept
iterator end () noexcept
const_iterator end () const noexcept
const_iterator cbegin () const noexcept
const_iterator cend () const noexcept
reverse_iterator rbegin () noexcept
const_reverse_iterator rbegin () const noexcept
reverse_iterator rend () noexcept
const_reverse_iterator rend () const noexcept
const_reverse_iterator crbegin () const noexcept
const_reverse_iterator crend () const noexcept
std::size_t size () const
index_t max_size () const noexcept
void reserve (std::size_t n)
bool empty () const
PointWithRange * data () noexcept
const PointWithRange * data () const noexcept
void resize (std::size_t count)
Изменяет размер контейнера так, чтобы он содержал count элементов. Подробнее...
void resize (uindex_t new_width, uindex_t new_height)
Изменяет размер контейнера так, чтобы он содержал new_width * new_height элементов. Подробнее...
void resize (index_t count, const PointWithRange &value)
Изменяет размер контейнера так, чтобы он содержал count элементов. Подробнее...
void resize (index_t new_width, index_t new_height, const PointWithRange &value)
Изменяет размер контейнера так, чтобы он содержал count элементов. Подробнее...
const PointWithRange & operator[] (std::size_t n) const
PointWithRange & operator[] (std::size_t n)
const PointWithRange & front () const
PointWithRange & front ()
const PointWithRange & back () const
PointWithRange & back ()
void assign (index_t count, const PointWithRange &value)
Заменяет точки count копиями value Подробнее...
void assign (index_t new_width, index_t new_height, const PointWithRange &value)
Заменяет точки new_width * new_height копиями value Подробнее...
void assign (InputIterator first, InputIterator last)
Заменяет точки копиями элементов диапазона [first, last) Подробнее...
void assign (InputIterator first, InputIterator last, index_t new_width)
Заменяет точки копиями элементов диапазона [first, last) Подробнее...
void assign (std::initializer_list< PointWithRange > ilist)
Заменяет точки элементами списка инициализации ilist Подробнее...
void assign (std::initializer_list< PointWithRange > ilist, index_t new_width)
Заменяет точки элементами списка инициализации ilist Подробнее...
void push_back (const PointWithRange &pt)
Добавляет новую точку в облако в конец контейнера. Подробнее...
void transient_push_back (const PointWithRange &pt)
Добавляет новую точку в облако в конец контейнера. Подробнее...
reference emplace_back (Args &&...args)
Создает новую точку в облаке в конце контейнера. Подробнее...
reference transient_emplace_back (Args &&...args)
Создает новую точку в облаке в конце контейнера. Подробнее...
iterator insert (iterator position, const PointWithRange &pt)
Вставляет новую точку в облако в позицию, заданную итератором. Подробнее...
void insert (iterator position, std::size_t n, const PointWithRange &pt)
Вставляет новую точку в облако N раз в позицию, заданную итератором. Подробнее...
void insert (iterator position, InputIterator first, InputIterator last)
Вставляет диапазон точек в облако в указанную позицию. Подробнее...
iterator transient_insert (iterator position, const PointWithRange &pt)
Вставляет новую точку в облако в позицию, заданную итератором. Подробнее...
void transient_insert (iterator position, std::size_t n, const PointWithRange &pt)
Вставляет новую точку в облако N раз в позицию, заданную итератором. Подробнее...
void transient_insert (iterator position, InputIterator first, InputIterator last)
Вставляет диапазон точек в облако в указанную позицию. Подробнее...
iterator emplace (iterator position, Args &&...args)
Создает новую точку в облаке в позиции, заданной итератором. Подробнее...
iterator transient_emplace (iterator position, Args &&...args)
Создает новую точку в облаке в позиции, заданной итератором. Подробнее...
iterator erase (iterator position)
Удаляет точку из облака. Подробнее...
iterator erase (iterator first, iterator last)
Удаляет набор точек, заданный парой итераторов (first, last). Подробнее...
iterator transient_erase (iterator position)
Удаляет точку из облака. Подробнее...
iterator transient_erase (iterator first, iterator last)
Удалить набор точек, заданный парой итераторов (first, last). Подробнее...
void swap (PointCloud< PointWithRange > &rhs)
Поменять облако точек местами с другим облаком. Подробнее...
void clear ()
Удаляет все точки в облаке и устанавливает ширину и высоту равными 0. Подробнее...
Ptr makeShared () const
Копирует облако в динамическую память и возвращает умный указатель. Обратите внимание, что выполняется глубокое копирование, поэтому не рекомендуется вызывать эту функцию для непустых облаков. Подробнее...

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

static float getMaxAngleSize (const Eigen::Affine3f &viewer_pose, const Eigen::Vector3f &center, float radius)
Получить размер заданной области при наблюдении из указанного положения. Подробнее...
static Eigen::Vector3f getEigenVector3f (const PointWithRange &point)
Получить Eigen::Vector3f из PointWithRange. Подробнее...
static PCL_EXPORTS void getCoordinateFrameTransformation (RangeImage::CoordinateFrame coordinate_frame, Eigen::Affine3f &transformation)
Получить преобразование, переводящее указанную систему координат в CAMERA_FRAME. Подробнее...
template<typename PointCloudTypeWithViewpoints >
static Eigen::Vector3f getAverageViewPoint (const PointCloudTypeWithViewpoints &point_cloud)
Получить среднюю точку обзора облака точек, в котором каждая точка содержит информацию о точке обзора в виде vp_x, vp_y, vp_z. Подробнее...
static PCL_EXPORTS void extractFarRanges (const pcl::PCLPointCloud2 &point_cloud_data, PointCloud< PointWithViewpoint > &far_ranges)
Проверить, содержат ли предоставленные данные дальние значения дальности, и добавить их в far_ranges. Подробнее...
- Статические общедоступные функции-члены, унаследованные от pcl::PointCloud< PointWithRange >
static bool concatenate (pcl::PointCloud< PointWithRange > &cloud1, const pcl::PointCloud< PointWithRange > &cloud2)
static bool concatenate (const pcl::PointCloud< PointWithRange > &cloud1, const pcl::PointCloud< PointWithRange > &cloud2, pcl::PointCloud< PointWithRange > &cloud_out)

Статические общедоступные атрибуты

static int max_no_of_threads
Максимальное количество потоков OpenMP, которые можно использовать в этом классе. Подробнее...
static bool debug
Только для... Подробнее...

Статические защищённые функции-члены

static void createLookupTables ()
Создать таблицы поиска для тригонометрических функций. Подробнее...
static float asinLookUp (float value)
Обратиться к таблице поиска asin. Подробнее...
static float atan2LookUp (float y, float x)
Обратиться к таблице поиска std::atan2. Подробнее...
static float cosLookUp (float value)
Обратиться к таблице поиска cos. Подробнее...

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

Eigen::Affine3f to_range_image_system_
Обратное преобразование to_world_system_. Подробнее...
Eigen::Affine3f to_world_system_
Обратное преобразование to_range_image_system_. Подробнее...
float angular_resolution_x_ {0.0f}
Угловое разрешение изображения дальности по оси x в радианах на пиксель. Подробнее...
float angular_resolution_y_ {0.0f}
Угловое разрешение изображения дальности по оси y в радианах на пиксель. Подробнее...
float angular_resolution_x_reciprocal_ {0.0f}
1.0/angular_resolution_x_ — используется для повышения производительности умножения по сравнению с делением Подробнее...
float angular_resolution_y_reciprocal_ {0.0f}
1.0/angular_resolution_y_ — используется для повышения производительности умножения по сравнению с делением Подробнее...
int image_offset_x_ {0}
int image_offset_y_ {0}
Положение верхнего левого угла изображения дальности относительно изображения полного размера (360x180 градусов). Подробнее...
PointWithRange unobserved_point
Эта точка используется для возврата ссылки на несуществующую точку. Подробнее...

Статические защищённые атрибуты

static PCL_EXPORTS const int lookup_table_size
static PCL_EXPORTS std::vector< float > asin_lookup_table
static PCL_EXPORTS std::vector< float > atan_lookup_table
static PCL_EXPORTS std::vector< float > cos_lookup_table

Дополнительные унаследованные элементы

- Общедоступные атрибуты, унаследованные от pcl::PointCloud< PointWithRange >
pcl::PCLHeader header
Заголовок облака точек. Подробнее...
std::vector< PointWithRange, Eigen::aligned_allocator< PointWithRange > > points
Данные точек. Подробнее...
std::uint32_t width
Ширина облака точек (если оно организовано как изображение). Подробнее...
std::uint32_t height
Высота облака точек (если оно организовано как изображение). Подробнее...
bool is_dense
Истинно, если все точки допустимы (например, ни одно из их полей с плавающей точкой не содержит значений NaN или Inf). Подробнее...
Eigen::Vector4f sensor_origin_
Положение датчика при съёмке (начало координат/перенос). Подробнее...
Eigen::Quaternionf sensor_orientation_
Положение датчика при съёмке (вращение). Подробнее...

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

RangeImage является производным от pcl/PointCloud классом и предоставляет функциональные возможности, ориентированные на ситуации, когда 3D-сцена была снята из определённой точки обзора.

Автор
Bastian Steder

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

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

BaseClass

using pcl::RangeImage::BaseClass = pcl::PointCloud<PointWithRange>

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

ConstPtr

using pcl::RangeImage::ConstPtr = shared_ptr<const RangeImage>

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

Ptr

using pcl::RangeImage::Ptr = shared_ptr<RangeImage>

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

VectorOfEigenVector3f

using pcl::RangeImage::VectorOfEigenVector3f = std::vector<Eigen::Vector3f, Eigen::aligned_allocator<Eigen::Vector3f> >

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

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

CoordinateFrame

enum pcl::RangeImage::CoordinateFrame
Элемент перечисления
CAMERA_FRAME
LASER_FRAME

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

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

RangeImage()

PCL_EXPORTS pcl::RangeImage::RangeImage ( )

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

Используется в getNew().

~RangeImage()

virtual PCL_EXPORTS pcl::RangeImage::~RangeImage ( )
virtual

Деструктор.

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

asinLookUp()

float pcl::RangeImage::asinLookUp ( float value )
inlinestaticprotected

Обращается к таблице поиска asin.

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

Ссылки: asin_lookup_table, lookup_table_size и pcl_lrintf.

Используется в getImagePoint() и pcl::RangeImageSpherical::getImagePoint().

atan2LookUp()

float pcl::RangeImage::atan2LookUp ( float y,
float x
)
inlinestaticprotected

Обращается к таблице поиска std::atan2.

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

Ссылки: atan_lookup_table, lookup_table_size, M_PI и pcl_lrintf.

Используется в getImagePoint() и pcl::RangeImageSpherical::getImagePoint().

calculate3DPoint() [1/4]

void pcl::RangeImage::calculate3DPoint ( float image_x,
float image_y,
Eigen::Vector3f & point
) const
inline

Вычисляет 3D-точку по заданной точке изображения и значению дальности в ближайшем пикселе.

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

Ссылки: calculate3DPoint(), getPoint() и pcl::_PointWithRange::range.

calculate3DPoint() [2/4]

void pcl::RangeImage::calculate3DPoint ( float image_x,
float image_y,
float range,
Eigen::Vector3f & point
) const
inlinevirtual

Вычисляет 3D-точку по заданной точке изображения и дальности.

Переопределён в pcl::RangeImagePlanar и pcl::RangeImageSpherical.

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

Ссылки: getAnglesFromImagePoint() и to_world_system_.

calculate3DPoint() [3/4]

void pcl::RangeImage::calculate3DPoint ( float image_x,
float image_y,
float range,
PointWithRange & point
) const
inline

Вычисляет 3D-точку по заданной точке изображения и дальности.

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

Ссылка: pcl::_PointWithRange::range.

Используется в calculate3DPoint() и pcl::RangeImageBorderExtractor::get3dDirection().

calculate3DPoint() [4/4]

Вычисляет 3D-точку по заданной точке изображения и значению дальности в ближайшем пикселе.

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

Ссылки: calculate3DPoint(), getPoint() и pcl::_PointWithRange::range.

void pcl::RangeImage::calculate3DPoint ( float image_x,
float image_y,
PointWithRange & point
) const
inline

change3dPointsToLocalCoordinateFrame()

PCL_EXPORTS void pcl::RangeImage::change3dPointsToLocalCoordinateFrame ( )

Эта функция обнуляет положение датчика и преобразует координаты всех точек в эту локальную систему координат.

checkPoint()

float pcl::RangeImage::checkPoint ( const Eigen::Vector3f & point,
PointWithRange & point_in_image
) const
inline

point_in_image будет точкой изображения в позиции, соответствующей заданной точке.

Возвращает дальность до заданной точки.

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

Ссылки: getImagePoint(), getPoint(), isInImage() и unobserved_point.

copyTo()

virtual PCL_EXPORTS void pcl::RangeImage::copyTo ( RangeImage & other ) const
virtual

Копирует other в *this.

Необходимо для использования в виртуальных функциях, которым требуется копировать производные классы RangeImage (например, RangeImagePlanar).

Переопределён в pcl::RangeImagePlanar.

cosLookUp()

float pcl::RangeImage::cosLookUp ( float value )
inlinestaticprotected

Обращается к таблице поиска cos.

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

Ссылки: cos_lookup_table, lookup_table_size, M_PI и pcl_lrintf.

Используется в pcl::RangeImagePlanar::calculate3DPoint().

createEmpty() [1/2]

void pcl::RangeImage::createEmpty ( float angular_resolution,
const Eigen::Affine3f & sensor_pose = Eigen::Affine3f::Identity(),
RangeImage::CoordinateFrame coordinate_frame = CAMERA_FRAME,
float angle_width = pcl::deg2rad(360.0f),
float angle_height = pcl::deg2rad(180.0f)
)

Создаёт пустое изображение глубины (заполненное ненаблюдаемыми точками).

Параметры
[in] angular_resolution угол (в радианах) между соседними отсчётами изображения глубины
[in] sensor_pose аффинная матрица, задающая положение датчика (по умолчанию Eigen::Affine3f::Identity () )
[in] coordinate_frame система координат (по умолчанию CAMERA_FRAME)
[in] angle_width угол (в радианах), задающий горизонтальные границы датчика (по умолчанию 2*pi (360 градусов))
[in] angle_height угол (в радианах), задающий вертикальные границы датчика (по умолчанию pi (180 градусов))

createEmpty() [2/2]

void pcl::RangeImage::createEmpty ( float angular_resolution_x,
float angular_resolution_y,
const Eigen::Affine3f & sensor_pose = Eigen::Affine3f::Identity(),
RangeImage::CoordinateFrame coordinate_frame = CAMERA_FRAME,
float angle_width = pcl::deg2rad(360.0f),
float angle_height = pcl::deg2rad(180.0f)
)

Создаёт пустое изображение глубины (заполненное ненаблюдаемыми точками).

Параметры
angular_resolution_x угловая разница (в радианах) между отдельными пикселями изображения вдоль направления x
angular_resolution_y угловая разница (в радианах) между отдельными пикселями изображения вдоль направления y
[in] sensor_pose аффинная матрица, задающая положение датчика (по умолчанию Eigen::Affine3f::Identity () )
[in] coordinate_frame система координат (по умолчанию CAMERA_FRAME)
[in] angle_width угол (в радианах), задающий горизонтальные границы датчика (по умолчанию 2*pi (360 градусов))
[in] angle_height угол (в радианах), задающий вертикальные границы датчика (по умолчанию pi (180 градусов))

createFromPointCloud() [1/2]

template<typename PointCloudType >
void pcl::RangeImage::createFromPointCloud ( const PointCloudType & point_cloud,
float angular_resolution = pcl::deg2rad (0.5f),
float max_angle_width = pcl::deg2rad (360.0f),
float max_angle_height = pcl::deg2rad (180.0f),
const Eigen::Affine3f & sensor_pose = Eigen::Affine3f::Identity (),
RangeImage::CoordinateFrame coordinate_frame = CAMERA_FRAME,
float noise_level = 0.0f,
float min_range = 0.0f,
int border_size = 0
)

Создаёт изображение глубины на основе облака точек.

Параметры
point_cloud входное облако точек
angular_resolution угловая разница (в радианах) между отдельными пикселями изображения
max_angle_width угол (в радианах), задающий горизонтальные границы датчика
max_angle_height угол (в радианах), задающий вертикальные границы датчика
sensor_pose аффинная матрица, задающая положение датчика (по умолчанию Eigen::Affine3f::Identity () )
coordinate_frame система координат (по умолчанию CAMERA_FRAME)
noise_level расстояние в метрах, в пределах которого z-буфер вместо минимального значения использует среднее значение точек. При значении 0.0 используется обычный z-буфер, всегда выбирающий минимум для каждой ячейки.
min_range минимальная видимая дальность (по умолчанию 0)
border_size размер границы (по умолчанию 0). Установите значение std::numeric_limits<int>::min(), чтобы отключить обрезку.

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

Используется в createFromPointCloudWithKnownSize() и createFromPointCloudWithViewpoints().

createFromPointCloud() [2/2]

template<typename PointCloudType >
void pcl::RangeImage::createFromPointCloud ( const PointCloudType & point_cloud,
float angular_resolution_x = pcl::deg2rad (0.5f),
float angular_resolution_y = pcl::deg2rad (0.5f),
float max_angle_width = pcl::deg2rad (360.0f),
float max_angle_height = pcl::deg2rad (180.0f),
const Eigen::Affine3f & sensor_pose = Eigen::Affine3f::Identity (),
RangeImage::CoordinateFrame coordinate_frame = CAMERA_FRAME,
float noise_level = 0.0f,
float min_range = 0.0f,
int border_size = 0
)

Создает карту глубины из облака точек.

Параметры
point_cloud входное облако точек
angular_resolution_x разность углов (в радианах) между отдельными пикселями изображения в направлении x
angular_resolution_y разность углов (в радианах) между отдельными пикселями изображения в направлении y
max_angle_width угол (в радианах), задающий горизонтальные границы датчика
max_angle_height угол (в радианах), задающий вертикальные границы датчика
sensor_pose аффинная матрица, задающая положение датчика (по умолчанию Eigen::Affine3f::Identity () )
coordinate_frame система координат (по умолчанию CAMERA_FRAME)
noise_level - Расстояние в метрах, в пределах которого z-буфер использует не минимальное значение, а среднее значение точек. Если значение равно 0.0, результат эквивалентен обычному z-буферу, который всегда выбирает минимум для каждой ячейки.
min_range минимальная видимая дальность (по умолчанию 0)
border_size размер границы (по умолчанию 0). Установите std::numeric_limits<int>::min(), чтобы отключить обрезку.

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

Ссылки: angular_resolution_x_reciprocal_, angular_resolution_y_reciprocal_, cropImage(), pcl::deg2rad(), doZBuffer(), getCoordinateFrameTransformation(), pcl::PointCloud< PointWithRange >::height, image_offset_x_, image_offset_y_, pcl::PointCloud< PointWithRange >::is_dense, pcl_lrint, pcl::PointCloud< PointWithRange >::points, recalculate3DPointPositions(), setAngularResolution(), pcl::PointCloud< PointWithRange >::size(), to_range_image_system_, to_world_system_, unobserved_point и pcl::PointCloud< PointWithRange >::width.

createFromPointCloudWithKnownSize() [1/2]

template<typename PointCloudType >
void pcl::RangeImage::createFromPointCloudWithKnownSize ( const PointCloudType & point_cloud,
float angular_resolution,
const Eigen::Vector3f & point_cloud_center,
float point_cloud_radius,
const Eigen::Affine3f & sensor_pose = Eigen::Affine3f::Identity (),
RangeImage::CoordinateFrame coordinate_frame = CAMERA_FRAME,
float noise_level = 0.0f,
float min_range = 0.0f,
int border_size = 0
)

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

Параметры
point_cloud входное облако точек
angular_resolution угол (в радианах) между отсчетами на карте глубины
point_cloud_center центр ограничивающей сферы
point_cloud_radius радиус ограничивающей сферы
sensor_pose аффинная матрица, задающая положение датчика (по умолчанию Eigen::Affine3f::Identity () )
coordinate_frame система координат (по умолчанию CAMERA_FRAME)
noise_level - Расстояние в метрах, в пределах которого z-буфер использует не минимальное значение, а среднее значение точек. Если значение равно 0.0, результат эквивалентен обычному z-буферу, который всегда выбирает минимум для каждой ячейки.
min_range минимальная видимая дальность (по умолчанию 0)
border_size размер границы (по умолчанию 0). Установите std::numeric_limits<int>::min(), чтобы отключить обрезку.

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

createFromPointCloudWithKnownSize() [2/2]

template<typename PointCloudType >
void pcl::RangeImage::createFromPointCloudWithKnownSize ( const PointCloudType & point_cloud,
float angular_resolution_x,
float angular_resolution_y,
const Eigen::Vector3f & point_cloud_center,
float point_cloud_radius,
const Eigen::Affine3f & sensor_pose = Eigen::Affine3f::Identity (),
RangeImage::CoordinateFrame coordinate_frame = CAMERA_FRAME,
float noise_level = 0.0f,
float min_range = 0.0f,
int border_size = 0
)

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

Параметры
point_cloud входное облако точек
angular_resolution_x разность углов (в радианах) между отдельными пикселями изображения в направлении x
angular_resolution_y разность углов (в радианах) между отдельными пикселями изображения в направлении y
point_cloud_center центр ограничивающей сферы
point_cloud_radius радиус ограничивающей сферы
sensor_pose аффинная матрица, задающая положение датчика (по умолчанию Eigen::Affine3f::Identity () )
coordinate_frame система координат (по умолчанию CAMERA_FRAME)
noise_level - Расстояние в метрах, в пределах которого z-буфер использует не минимальное значение, а среднее значение точек. Если значение равно 0.0, результат эквивалентен обычному z-буферу, который всегда выбирает минимум для каждой ячейки.
min_range минимальная видимая дальность (по умолчанию 0)
border_size размер границы (по умолчанию 0). Установите std::numeric_limits<int>::min(), чтобы отключить обрезку.

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

Ссылки: angular_resolution_x_reciprocal_, angular_resolution_y_reciprocal_, createFromPointCloud(), cropImage(), pcl::deg2rad(), doZBuffer(), getCoordinateFrameTransformation(), getImagePoint(), getMaxAngleSize(), pcl::PointCloud< PointWithRange >::height, image_offset_x_, image_offset_y_, pcl::PointCloud< PointWithRange >::is_dense, pcl_lrint, pcl::PointCloud< PointWithRange >::points, recalculate3DPointPositions(), setAngularResolution(), to_range_image_system_, to_world_system_, unobserved_point и pcl::PointCloud< PointWithRange >::width.

createFromPointCloudWithViewpoints() [1/2]

template<typename PointCloudTypeWithViewpoints >
void pcl::RangeImage::createFromPointCloudWithViewpoints ( const PointCloudTypeWithViewpoints & point_cloud,
float angular_resolution,
float max_angle_width,
float max_angle_height,
RangeImage::CoordinateFrame coordinate_frame = CAMERA_FRAME,
float noise_level = 0.0f,
float min_range = 0.0f,
int border_size = 0
)

Создает карту глубины из облака точек, используя в качестве положения датчика усредненную точку наблюдения для точек облака (vp_x,vp_y,vp_z в типе точки) (предполагается поворот (0,0,0)).

Параметры
point_cloud входное облако точек
angular_resolution угол (в радианах) между отсчетами на карте глубины
max_angle_width угол (в радианах), задающий горизонтальные границы датчика
max_angle_height угол (в радианах), задающий вертикальные границы датчика
coordinate_frame система координат (по умолчанию CAMERA_FRAME)
noise_level - Расстояние в метрах, в пределах которого z-буфер использует не минимальное значение, а среднее значение точек. Если значение равно 0.0, результат эквивалентен обычному z-буферу, который всегда выбирает минимум для каждой ячейки.
min_range минимальная видимая дальность (по умолчанию 0)
border_size размер границы (по умолчанию 0). Установите std::numeric_limits<int>::min(), чтобы отключить обрезку.
Примечание
Если wrong_coordinate_system имеет значение true, положение датчика будет повернуто для преобразования из системы координат, в которой ось x направлена вперед, y — влево, а z — вверх, в используемую здесь систему координат (ось x направлена вправо, y — вниз, а z — вперед).

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

createFromPointCloudWithViewpoints() [2/2]

template<typename PointCloudTypeWithViewpoints >
void pcl::RangeImage::createFromPointCloudWithViewpoints ( const PointCloudTypeWithViewpoints & point_cloud,
float angular_resolution_x,
float angular_resolution_y,
float max_angle_width,
float max_angle_height,
RangeImage::CoordinateFrame coordinate_frame = CAMERA_FRAME,
float noise_level = 0.0f,
float min_range = 0.0f,
int border_size = 0
)

Создает карту глубины из облака точек, используя в качестве положения датчика усредненную точку наблюдения для точек облака (vp_x,vp_y,vp_z в типе точки) (предполагается поворот (0,0,0)).

Параметры
point_cloud входное облако точек
angular_resolution_x разность углов (в радианах) между отдельными пикселями изображения в направлении x
angular_resolution_y разность углов (в радианах) между отдельными пикселями изображения в направлении y
max_angle_width угол (в радианах), задающий горизонтальные границы датчика
max_angle_height угол (в радианах), задающий вертикальные границы датчика
coordinate_frame система координат (по умолчанию CAMERA_FRAME)
noise_level - Расстояние в метрах, в пределах которого z-буфер использует не минимальное значение, а среднее значение точек. Если значение равно 0.0, результат эквивалентен обычному z-буферу, который всегда выбирает минимум для каждой ячейки.
min_range минимальная видимая дальность (по умолчанию 0)
border_size размер границы (по умолчанию 0). Установите std::numeric_limits<int>::min(), чтобы отключить обрезку.
Примечание
Если wrong_coordinate_system имеет значение true, положение датчика будет повернуто для преобразования из системы координат, в которой ось x направлена вперед, y — влево, а z — вверх, в используемую здесь систему координат (ось x направлена вправо, y — вниз, а z — вперед).

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

Ссылки: createFromPointCloud() и getAverageViewPoint().

createLookupTables()

static void pcl::RangeImage::createLookupTables ( )
staticprotected

Создает таблицы поиска для тригонометрических функций.

cropImage()

PCL_EXPORTS void pcl::RangeImage::cropImage ( int border_size = 0,
int top = -1,
int right = -1,
int bottom = -1,
int left = -1
)

Обрезает изображение диапазонов до минимального размера, при котором оно по-прежнему содержит все фактические измерения дальности.

Параметры
border_size позволяет увеличить минимальный размер на указанное количество пикселей (по умолчанию 0)
top если значение положительное, оно переопределяет положение верхнего края (по умолчанию -1)
right если значение положительное, оно переопределяет положение правого края (по умолчанию -1)
bottom если значение положительное, оно переопределяет положение нижнего края (по умолчанию -1)
left если значение положительное, оно переопределяет положение левого края (по умолчанию -1)

Используется в функциях createFromPointCloud() и createFromPointCloudWithKnownSize().

doZBuffer()

template<typename PointCloudType >
void pcl::RangeImage::doZBuffer ( const PointCloudType & point_cloud,
float noise_level,
float min_range,
int & top,
int & right,
int & bottom,
int & left
)

Интегрирует заданное облако точек в текущее изображение расстояний с помощью z-буфера.

Параметры
point_cloud входное облако точек
noise_level — расстояние в метрах, в пределах которого z-буфер будет использовать не минимальное значение, а среднее значение точек. Если равно 0.0, это эквивалентно обычному z-буферу, который всегда выбирает минимальное значение в каждой ячейке.
min_range минимальная видимая дальность
top возвращает минимальную координату пикселя y на изображении, в которую была добавлена точка
right возвращает максимальную координату пикселя x на изображении, в которую была добавлена точка
bottom возвращает максимальную координату пикселя y на изображении, в которую была добавлена точка
left возвращает минимальную координату пикселя x на изображении, в которую была добавлена точка

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

Ссылки: getImagePoint(), pcl::PointCloud< PointWithRange >::height, pcl::isFinite(), isInImage(), pcl_lrint, pcl::PointCloud< PointWithRange >::points, real2DToInt2D(), pcl::PointCloud< PointWithRange >::size() и pcl::PointCloud< PointWithRange >::width.

Используется в: createFromPointCloud(), pcl::RangeImagePlanar::createFromPointCloudWithFixedSize() и createFromPointCloudWithKnownSize().

extractFarRanges()

static PCL_EXPORTS void pcl::RangeImage::extractFarRanges ( const pcl::PCLPointCloud2 & point_cloud_data,
PointCloud< PointWithViewpoint > & far_ranges
)
static

Проверяет, содержат ли переданные данные дальние расстояния, и добавляет их в far_ranges.

Параметры
point_cloud_data сообщение PCLPointCloud2, содержащее входное облако
far_ranges результирующее облако, содержащее точки с дальними расстояниями

get1dPointAverage()

void pcl::RangeImage::get1dPointAverage ( int x,
int y,
int delta_x,
int delta_y,
int no_of_points,
PointWithRange & average_point
) const
inline

Вычисляет среднее положение в 3D-пространстве для no_of_points точек, заданных начальной точкой x,y и направлением delta.

Возвращает точку с максимальной дальностью (range=INFINITY), если первая точка имеет максимальную дальность, и ненаблюдаемую точку (range=-INFINITY), если ни одна из точек не наблюдалась.

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

Ссылки: getPoint(), getPointNoCheck(), isValid(), pcl::_PointWithRange::range и unobserved_point.

Используется в: pcl::RangeImageBorderExtractor::getNeighborDistanceChangeScore().

getAcutenessValue() [1/2]

float pcl::RangeImage::getAcutenessValue ( const PointWithRange & point1,
const PointWithRange & point2
) const
inline

Вычисляет оценку [0,1], показывающую остроту угла падения (1.0f - getImpactAngle/90deg); возвращает -INFINITY, если одна из точек не наблюдалась.

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

Ссылки: getImpactAngle() и M_PI.

Используется в: getAcutenessValue().

getAcutenessValue() [2/2]

float pcl::RangeImage::getAcutenessValue ( int x1,
int y1,
int x2,
int y2
) const
inline

То же, что и выше.

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

Ссылки: getAcutenessValue(), getPoint() и isInImage().

getAcutenessValueImages()

PCL_EXPORTS void pcl::RangeImage::getAcutenessValueImages ( int pixel_distance,
float *& acuteness_value_image_x,
float *& acuteness_value_image_y
) const

Вычисляет getAcutenessValue для каждой точки.

getAnglesFromImagePoint()

void pcl::RangeImage::getAnglesFromImagePoint ( float image_x,
float image_y,
float & angle_x,
float & angle_y
) const
inline

Возвращает углы, соответствующие заданной точке изображения.

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

Ссылки: angular_resolution_x_, angular_resolution_y_, image_offset_x_, image_offset_y_ и M_PI.

Используется в: calculate3DPoint().

getAngularResolution() [1/2]

float pcl::RangeImage::getAngularResolution ( ) const
inline

Метод получения углового разрешения изображения расстояний по оси x в радианах на пиксель.

Предоставлен для обратной совместимости

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

Ссылка: angular_resolution_x_.

getAngularResolution() [2/2]

void pcl::RangeImage::getAngularResolution ( float & angular_resolution_x,
float & angular_resolution_y
) const
inline

Метод получения углового разрешения изображения расстояний по осям x и y (в радианах).

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

Ссылки: angular_resolution_x_ и angular_resolution_y_.

getAngularResolutionX()

float pcl::RangeImage::getAngularResolutionX ( ) const
inline

Метод получения углового разрешения изображения расстояний по оси x в радианах на пиксель.

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

Ссылка: angular_resolution_x_.

Используется в: pcl::operator<<().

getAngularResolutionY()

float pcl::RangeImage::getAngularResolutionY ( ) const
inline

Метод получения углового разрешения изображения расстояний по оси y в радианах на пиксель.

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

Ссылка: angular_resolution_y_.

Используется в: pcl::operator<<().

getAverageEuclideanDistance()

float pcl::RangeImage::getAverageEuclideanDistance ( int x,
int y,
int offset_x,
int offset_y,
int max_steps
) const
inline

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

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

Ссылка: getEuclideanDistanceSquared().

getAverageViewPoint()

template<typename PointCloudTypeWithViewpoints >
Eigen::Vector3f pcl::RangeImage::getAverageViewPoint ( const PointCloudTypeWithViewpoints & point_cloud )
static

Возвращает среднюю точку обзора облака точек, в котором каждая точка содержит информацию о точке обзора в виде vp_x, vp_y, vp_z.

Параметры
point_cloud входное облако точек
Возвращаемое значение
средняя точка обзора (в виде Eigen::Vector3f)

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

Используется в: createFromPointCloudWithViewpoints().

getBlurredImage()

virtual PCL_EXPORTS void pcl::RangeImage::getBlurredImage ( int blur_radius,
RangeImage & range_image
) const
virtual

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

getBlurredImageUsingIntegralImage()

PCL_EXPORTS void pcl::RangeImage::getBlurredImageUsingIntegralImage ( int blur_radius,
float * integral_image,
int * valid_points_num_image,
RangeImage & range_image
) const

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

getCoordinateFrameTransformation()

static PCL_EXPORTS void pcl::RangeImage::getCoordinateFrameTransformation ( RangeImage::CoordinateFrame coordinate_frame,
Eigen::Affine3f & transformation
)
static

Возвращает преобразование, которое переводит заданную систему координат в CAMERA_FRAME.

Параметры
coordinate_frame входная система координат
transformation результирующее преобразование, переводящее coordinate_frame в CAMERA_FRAME

Используется в: createFromPointCloud(), pcl::RangeImagePlanar::createFromPointCloudWithFixedSize() и createFromPointCloudWithKnownSize().

getCurvature()

float pcl::RangeImage::getCurvature ( int x,
int y,
int radius,
int step_size
) const
inline

Вычисляет кривизну в точке с помощью метода главных компонент (PCA).

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

Ссылки: pcl::VectorAverage< real, dimension >::add(), pcl::VectorAverage< real, dimension >::doPCA(), pcl::VectorAverage< real, dimension >::getNoOfSamples(), getPoint(), isInImage() и pcl::_PointWithRange::range.

getEigenVector3f() [1/3]

Eigen::Vector3f pcl::RangeImage::getEigenVector3f ( const PointWithRange & point )
inlinestatic

Получает Eigen::Vector3f из PointWithRange.

Параметры
point входная точка
Возвращаемое значение
представление входной точки в виде Eigen::Vector3f

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

Используется в: getImpactAngleBasedOnLocalNormal().

getEigenVector3f() [2/3]

const Eigen::Map< const Eigen::Vector3f > pcl::RangeImage::getEigenVector3f ( int index ) const
inline

То же, что и выше.

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

Ссылки на getPoint().

getEigenVector3f() [3/3]

const Eigen::Map< const Eigen::Vector3f > pcl::RangeImage::getEigenVector3f ( int x,
int y
) const
inline

То же, что и выше.

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

Ссылки на getPoint().

getEuclideanDistanceSquared()

float pcl::RangeImage::getEuclideanDistanceSquared ( int x1,
int y1,
int x2,
int y2
) const
inline

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

Возвращает -INFINITY, если одна из точек не была наблюдена

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

Ссылки на getPoint(), isObserved(), pcl::_PointWithRange::range и pcl::squaredEuclideanDistance().

Используется в getAverageEuclideanDistance().

getHalfImage()

virtual void pcl::RangeImage::getHalfImage ( RangeImage & half_image ) const
virtual

Получить изображение дальности с половинным разрешением.

Переопределено в pcl::RangeImagePlanar.

getImageOffsetX()

int pcl::RangeImage::getImageOffsetX ( ) const
inline

Метод получения значения image_offset_x_.

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

Ссылки на image_offset_x_.

getImageOffsetY()

int pcl::RangeImage::getImageOffsetY ( ) const
inline

Метод получения значения image_offset_y_.

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

Ссылки на image_offset_y_.

getImagePoint() [1/7]

void pcl::RangeImage::getImagePoint ( const Eigen::Vector3f & point,
float & image_x,
float & image_y
) const
inline

То же, что и выше.

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

Ссылки на getImagePoint().

getImagePoint() [2/7]

void pcl::RangeImage::getImagePoint ( const Eigen::Vector3f & point,
float & image_x,
float & image_y,
float & range
) const
inlinevirtual

Получить точку изображения imagePoint из 3D-точки в мировых координатах.

Переопределено в pcl::RangeImagePlanar и pcl::RangeImageSpherical.

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

Ссылки на asinLookUp(), atan2LookUp(), getImagePointFromAngles() и to_range_image_system_.

Используется в checkPoint(), createFromPointCloudWithKnownSize(), doZBuffer(), getImagePoint(), getRangeDifference() и integrateFarRanges().

getImagePoint() [3/7]

void pcl::RangeImage::getImagePoint ( const Eigen::Vector3f & point,
int & image_x,
int & image_y
) const
inline

То же, что и выше.

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

Ссылки на getImagePoint() и real2DToInt2D().

getImagePoint() [4/7]

void pcl::RangeImage::getImagePoint ( const Eigen::Vector3f & point,
int & image_x,
int & image_y,
float & range
) const
inline

То же, что и выше.

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

Ссылки на getImagePoint() и real2DToInt2D().

getImagePoint() [5/7]

void pcl::RangeImage::getImagePoint ( float x,
float y,
float z,
float & image_x,
float & image_y
) const
inline

То же, что и выше.

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

Ссылки на getImagePoint().

getImagePoint() [6/7]

void pcl::RangeImage::getImagePoint ( float x,
float y,
float z,
float & image_x,
float & image_y,
float & range
) const
inline

То же, что и выше.

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

Ссылки на getImagePoint().

getImagePoint() [7/7]

void pcl::RangeImage::getImagePoint ( float x,
float y,
float z,
int & image_x,
int & image_y
) const
inline

То же, что и выше.

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

Ссылки на getImagePoint() и real2DToInt2D().

getImagePointFromAngles()

void pcl::RangeImage::getImagePointFromAngles ( float angle_x,
float angle_y,
float & image_x,
float & image_y
) const
inline

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

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

Используется в getImagePoint().

getImpactAngle() [1/2]

float pcl::RangeImage::getImpactAngle ( const PointWithRange & point1,
const PointWithRange & point2
) const
inline

Вычислить угол падения на основе положения датчика и двух заданных точек — возвращает -INFINITY, если одна из точек не наблюдалась.

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

Ссылки на M_PI, pcl::_PointWithRange::range и pcl::squaredEuclideanDistance().

Используется в getAcutenessValue() и getImpactAngle().

getImpactAngle() [2/2]

float pcl::RangeImage::getImpactAngle ( int x1,
int y1,
int x2,
int y2
) const
inline

То же, что и выше.

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

Ссылки на getImpactAngle(), getPoint() и isInImage().

getImpactAngleBasedOnLocalNormal()

float pcl::RangeImage::getImpactAngleBasedOnLocalNormal ( int x,
int y,
int radius
) const
inline

Извлечь локальную нормаль (с использованием эвристики, исключающей точки фона) и вычислить на её основе угол падения.

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

Ссылки на pcl::deg2rad(), getEigenVector3f(), getNormalForClosestNeighbors(), getPoint(), getSensorPos() и isValid().

Используется в getNormalBasedAcutenessValue().

getImpactAngleImageBasedOnLocalNormals()

PCL_EXPORTS float* pcl::RangeImage::getImpactAngleImageBasedOnLocalNormals ( int radius ) const

Применяет приведённую выше функцию к каждой точке изображения.

getIntegralImage()

PCL_EXPORTS void pcl::RangeImage::getIntegralImage ( float *& integral_image,
int *& valid_points_num_image
) const

Получить интегральное изображение значений дальности (используется для быстрого размытия).

Вы должны самостоятельно удалить его после использования!

getInterpolatedSurfaceProjection() [1/2]

PCL_EXPORTS float* pcl::RangeImage::getInterpolatedSurfaceProjection ( const Eigen::Affine3f & pose,
int pixel_size,
float world_size
) const

Вычислить участок изображения дальности как значения z системы координат, заданной параметром pose.

Размер участка составит pixel_size x pixel_size, каждый пиксель охватывает world_size/pixel_size метров в мировом пространстве. После этого вы должны самостоятельно удалить структуру!

getInterpolatedSurfaceProjection() [2/2]

PCL_EXPORTS float* pcl::RangeImage::getInterpolatedSurfaceProjection ( const Eigen::Vector3f & point,
int pixel_size,
float world_size
) const

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

getMaxAngleSize()

float pcl::RangeImage::getMaxAngleSize ( const Eigen::Affine3f & viewer_pose,
const Eigen::Vector3f & center,
float radius
)
inlinestatic

Получить размер заданной области при просмотре из указанного положения.

Параметры
viewer_pose аффинная матрица, задающая положение наблюдателя
center центр области
radius радиус области
Возвращает
размер области, видимой согласно viewer_pose

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

Используется в createFromPointCloudWithKnownSize().

getMinMaxRanges()

PCL_EXPORTS void pcl::RangeImage::getMinMaxRanges ( float & min_range,
float & max_range
) const

Найти минимальную и максимальную дальность на изображении.

getNew()

virtual PCL_EXPORTS RangeImage* pcl::RangeImage::getNew ( ) const
inlinevirtual

Вернуть новое созданное изображение дальности.

Может быть переопределён в производных классах, таких как RangeImagePlanar, чтобы возвращать изображение того же типа.

Переопределён в pcl::RangeImagePlanar и pcl::RangeImageSpherical.

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

Ссылки на RangeImage().

getNormal()

bool pcl::RangeImage::getNormal ( int x,
int y,
int radius,
Eigen::Vector3f & normal,
int step_size = 1
) const
inline

Вычислить нормаль точки изображения, используя соседние точки на максимальном расстоянии radius пикселей.

Параметр step_size определяет, сколько пикселей используется. Значение 1 означает все пиксели, 2 — каждый второй и т. д. Возвращает false, если вычислить нормаль не удалось.

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

Ссылки на pcl::VectorAverage< real, dimension >::add(), pcl::VectorAverage< real, dimension >::doPCA(), pcl::VectorAverage< real, dimension >::getMean(), pcl::VectorAverage< real, dimension >::getNoOfSamples(), getPoint(), getSensorPos(), isInImage() и pcl::_PointWithRange::range.

getNormalBasedAcutenessValue()

float pcl::RangeImage::getNormalBasedAcutenessValue ( int x,
int y,
int radius
) const
inline

Вычислить оценку [0,1], показывающую остроту угла падения (1.0f - getImpactAngle/90deg). Использует getImpactAngleBasedOnLocalNormal. Возвращает -INFINITY, если нормаль вычислить не удалось.

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

Ссылки на getImpactAngleBasedOnLocalNormal() и M_PI.

getNormalBasedUprightTransformation()

PCL_EXPORTS bool pcl::RangeImage::getNormalBasedUprightTransformation ( const Eigen::Vector3f & point,
float max_dist,
Eigen::Affine3f & transformation
) const

Получить локальную систему координат в заданной точке на основе нормали.

getNormalForClosestNeighbors() [1/3]

bool pcl::RangeImage::getNormalForClosestNeighbors ( int x,
int y,
Eigen::Vector3f & normal,
int radius = 2
) const
inline

То же, что и выше, с использованием значений по умолчанию.

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

Ссылки на getNormalForClosestNeighbors(), getPoint() и isValid().

getNormalForClosestNeighbors() [2/3]

bool pcl::RangeImage::getNormalForClosestNeighbors ( int x,
int y,
int radius,
const Eigen::Vector3f & point,
int no_of_nearest_neighbors,
Eigen::Vector3f & normal,
Eigen::Vector3f * point_on_plane = nullptr,
int step_size = 1
) const
inline

То же, что и выше.

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

Ссылки на getSurfaceInformation().

getNormalForClosestNeighbors() [3/3]

bool pcl::RangeImage::getNormalForClosestNeighbors ( int x,
int y,
int radius,
const PointWithRange & point,
int no_of_nearest_neighbors,
Eigen::Vector3f & normal,
int step_size = 1
) const
inline

То же, что и выше, но рассматриваются только точки no_of_nearest_neighbors, ближайшие к заданной точке.

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

Используется в getImpactAngleBasedOnLocalNormal() и getNormalForClosestNeighbors().

getOverlap()

PCL_EXPORTS float pcl::RangeImage::getOverlap ( const RangeImage & other_range_image,
const Eigen::Affine3f & relative_transformation,
int search_radius,
float max_distance,
int pixel_step = 1
) const

Вычисляет степень перекрытия двух изображений дальности с учётом относительного преобразования (от заданного изображения к *this).

getPoint() [1/7]

PointWithRange & pcl::RangeImage::getPoint ( float image_x,
float image_y
)
inline

Неконстантная версия описанного выше метода.

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

Ссылки на getPoint() и real2DToInt2D().

getPoint() [2/7]

const PointWithRange & pcl::RangeImage::getPoint ( float image_x,
float image_y
) const
inline

Вернуть 3D-точку с дальностью в заданной позиции изображения.

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

Ссылки на getPoint() и real2DToInt2D().

getPoint() [3/7]

PointWithRange & pcl::RangeImage::getPoint ( int image_x,
int image_y
)
inline

Неконстантная версия getPoint.

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

Ссылки на pcl::PointCloud< PointWithRange >::points и pcl::PointCloud< PointWithRange >::width.

getPoint() [4/7]

const PointWithRange & pcl::RangeImage::getPoint ( int image_x,
int image_y
) const
inline

Вернуть 3D-точку с дальностью в заданной позиции изображения.

Параметры
image_x координата x
image_y координата y
Возвращает
точку в указанном месте (если точка находится за границами изображения, возвращает unobserved_point)

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

Ссылки на isInImage(), pcl::PointCloud< PointWithRange >::points, unobserved_point и pcl::PointCloud< PointWithRange >::width.

Используется в calculate3DPoint(), checkPoint(), get1dPointAverage(), pcl::RangeImageBorderExtractor::get3dDirection(), getAcutenessValue(), getCurvature(), getEigenVector3f(), getEuclideanDistanceSquared(), pcl::RangeImagePlanar::getImagePoint(), getImpactAngle(), getImpactAngleBasedOnLocalNormal(), pcl::RangeImageBorderExtractor::getNeighborDistanceChangeScore(), getNormal(), getNormalForClosestNeighbors(), getPoint(), getRangeDifference(), getSquaredDistanceOfNthNeighbor(), getSurfaceAngleChange(), getSurfaceInformation(), getViewingDirection(), integrateFarRanges() и isMaxRange().

getPoint() [5/7]

void pcl::RangeImage::getPoint ( int image_x,
int image_y,
Eigen::Vector3f & point
) const
inline

То же, что и выше.

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

Ссылки на getPoint().

getPoint() [6/7]

const PointWithRange & pcl::RangeImage::getPoint ( int index ) const
inline

Вернуть 3D-точку с дальностью по заданному индексу (где index=y*width+x).

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

Ссылки на pcl::PointCloud< PointWithRange >::points.

getPoint() [7/7]

void pcl::RangeImage::getPoint ( int index,
Eigen::Vector3f & point
) const
inline

То же, что и выше.

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

Ссылки на getPoint().

getPointNoCheck() [1/2]

PointWithRange & pcl::RangeImage::getPointNoCheck ( int image_x,
int image_y
)
inline

Неконстантная версия getPointNoCheck.

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

Ссылки на pcl::PointCloud< PointWithRange >::points и pcl::PointCloud< PointWithRange >::width.

getPointNoCheck() [2/2]

const PointWithRange & pcl::RangeImage::getPointNoCheck ( int image_x,
int image_y
) const
inline

Возвращает 3D-точку с дальностью в указанной позиции изображения.

Этот метод не выполняет проверку ошибок, чтобы убедиться, что указанная позиция находится внутри изображения!

Параметры
image_x координата x
image_y координата y
Возвращает
точку в указанном месте (программа может завершиться с ошибкой, если место находится за пределами изображения)

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

Ссылки на pcl::PointCloud< PointWithRange >::points и pcl::PointCloud< PointWithRange >::width.

Используется в get1dPointAverage() и getSquaredDistanceOfNthNeighbor().

getRangeDifference()

float pcl::RangeImage::getRangeDifference ( const Eigen::Vector3f & point ) const
inline

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

(Возвращаемое значение равно point_in_image.range-given_point.range)

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

Ссылки на getImagePoint(), getPoint(), isInImage() и pcl::_PointWithRange::range.

getRangeImageWithSmoothedSurface()

PCL_EXPORTS void pcl::RangeImage::getRangeImageWithSmoothedSurface ( int radius,
RangeImage & smoothed_range_image
) const

Проецирует все точки на локальное приближение плоскости, тем самым сглаживая поверхность скана.

getRangesArray()

PCL_EXPORTS float* pcl::RangeImage::getRangesArray ( ) const

Получает все значения дальности в одном массиве float размером width*height.

Возвращает
указатель на новый массив float, содержащий значения дальности
Примечание
Этот метод выделяет новый массив float; вызывающая сторона отвечает за освобождение этой памяти.

getRotationToViewerCoordinateFrame()

void pcl::RangeImage::getRotationToViewerCoordinateFrame ( const Eigen::Vector3f & point,
Eigen::Affine3f & transformation
) const
inline

То же, что и выше, но возвращает только вращение.

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

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

getSensorPos()

const Eigen::Vector3f pcl::RangeImage::getSensorPos ( ) const
inline

Получает положение датчика.

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

Ссылка на to_world_system_.

Используется в pcl::RangeImageBorderExtractor::get3dDirection(), getImpactAngleBasedOnLocalNormal(), getNormal(), getRotationToViewerCoordinateFrame(), getSurfaceInformation(), getTransformationToViewerCoordinateFrame() и getViewingDirection().

getSquaredDistanceOfNthNeighbor()

float pcl::RangeImage::getSquaredDistanceOfNthNeighbor ( int x,
int y,
int radius,
int n,
int step_size
) const
inline

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

Ссылки на getPoint(), getPointNoCheck(), isValid(), pcl::_PointWithRange::range и pcl::squaredEuclideanDistance().

getSubImage()

virtual void pcl::RangeImage::getSubImage ( int sub_image_image_offset_x,
int sub_image_image_offset_y,
int sub_image_width,
int sub_image_height,
int combine_pixels,
RangeImage & sub_image
) const
virtual

Получает часть полного изображения в виде нового изображения дальности.

Параметры
sub_image_image_offset_x - Координата x верхнего левого пикселя подизображения. Она всегда отсчитывается от абсолютной точки 0,0, то есть -180°,-90°, и уже задана в системе нового изображения, поэтому фактически используемый пиксель исходного изображения равен combine_pixels* (image_offset_x-image_offset_x_)
sub_image_image_offset_y - То же, что image_offset_x, для координаты y
sub_image_width - ширина нового изображения
sub_image_height - высота нового изображения
combine_pixels - коэффициент уменьшения: новое угловое разрешение равно combine_pixels, умноженному на старое
sub_image - выходное изображение

Переопределён в pcl::RangeImagePlanar.

getSurfaceAngleChange()

void pcl::RangeImage::getSurfaceAngleChange ( int x,
int y,
int radius,
float & angle_change_x,
float & angle_change_y
) const
inline

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

Возвращает угол [0.0f, PI] для направлений x и y. Возвращаемое значение -INFINITY означает, что точка не наблюдалась.

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

Ссылки на getPoint(), getTransformationToViewerCoordinateFrame(), isMaxRange(), isObserved() и isValid().

getSurfaceAngleChangeImages()

PCL_EXPORTS void pcl::RangeImage::getSurfaceAngleChangeImages ( int radius,
float *& angle_change_image_x,
float *& angle_change_image_y
) const

Применяет описанную выше функцию к каждой точке изображения.

getSurfaceChange()

PCL_EXPORTS float pcl::RangeImage::getSurfaceChange ( int x,
int y,
int radius
) const

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

Значение Pi соответствует плоской поверхности, а 0.0f — острию. Вычисляет, насколько изменяется поверхность в данной точке. Значение 1 соответствует углу 90 градусов, а 0 — плоской поверхности.

getSurfaceChangeImage()

PCL_EXPORTS float* pcl::RangeImage::getSurfaceChangeImage ( int radius ) const

Применяет описанную выше функцию к каждой точке изображения.

getSurfaceInformation()

bool pcl::RangeImage::getSurfaceInformation ( int x,
int y,
int radius,
const Eigen::Vector3f & point,
int no_of_closest_neighbors,
int step_size,
float & max_closest_neighbor_distance_squared,
Eigen::Vector3f & normal,
Eigen::Vector3f & mean,
Eigen::Vector3f & eigen_values,
Eigen::Vector3f * normal_all_neighbors = nullptr,
Eigen::Vector3f * mean_all_neighbors = nullptr,
Eigen::Vector3f * eigen_values_all_neighbors = nullptr
) const

То же, что и выше, но извлекает дополнительные данные и также может возвращать извлечённую информацию для всех соседей в радиусе, если normal_all_neighbors не равен NULL.

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

Ссылки на pcl::VectorAverage< real, dimension >::add(), pcl::geometry::distance(), pcl::VectorAverage< real, dimension >::doPCA(), pcl::VectorAverage< real, dimension >::getMean(), pcl::VectorAverage< real, dimension >::getNoOfSamples(), getPoint(), getSensorPos(), isValid() и pcl::squaredEuclideanDistance().

Используется в getNormalForClosestNeighbors().

getTransformationToRangeImageSystem()

const Eigen::Affine3f& pcl::RangeImage::getTransformationToRangeImageSystem ( ) const
inline

Метод получения преобразования из мировой системы координат в систему изображения дальности (систему координат датчика)

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

Ссылка на to_range_image_system_.

getTransformationToViewerCoordinateFrame() [1/2]

Eigen::Affine3f pcl::RangeImage::getTransformationToViewerCoordinateFrame ( const Eigen::Vector3f & point ) const
inline

Получает локальную систему координат с началом координат в точке point, вертикальной осью вверх и осью Z, направленной по направлению наблюдения.

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

Используется в getSurfaceAngleChange().

getTransformationToViewerCoordinateFrame() [2/2]

void pcl::RangeImage::getTransformationToViewerCoordinateFrame ( const Eigen::Vector3f & point,
Eigen::Affine3f & transformation
) const
inline

То же, что и выше, но с использованием ссылки для возвращаемого значения.

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

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

getTransformationToWorldSystem()

const Eigen::Affine3f& pcl::RangeImage::getTransformationToWorldSystem ( ) const
inline

Метод получения преобразования из системы изображения дальности (системы координат датчика) в мировую систему координат.

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

Ссылка на to_world_system_.

getViewingDirection() [1/2]

void pcl::RangeImage::getViewingDirection ( const Eigen::Vector3f & point,
Eigen::Vector3f & viewing_direction
) const
inline

Получает направление наблюдения для заданной точки.

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

Ссылка на getSensorPos().

getViewingDirection() [2/2]

bool pcl::RangeImage::getViewingDirection ( int x,
int y,
Eigen::Vector3f & viewing_direction
) const
inline

Получает направление наблюдения для заданной точки.

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

Ссылки на getPoint(), getSensorPos() и isValid().

integrateFarRanges()

template<typename PointCloudType >
void pcl::RangeImage::integrateFarRanges ( const PointCloudType & far_ranges )

Интегрирует заданные измерения дальних расстояний в изображение дальности.

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

Ссылки на getImagePoint(), getPoint(), isInImage(), pcl_lrint и pcl::_PointWithRange::range.

isInImage()

bool pcl::RangeImage::isInImage ( int x,
int y
) const
inline

Проверяет, находится ли точка внутри изображения.

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

Ссылки на pcl::PointCloud< PointWithRange >::height и pcl::PointCloud< PointWithRange >::width.

Используется в pcl::RangeImageBorderExtractor::changeScoreAccordingToShadowBorderValue(), pcl::RangeImageBorderExtractor::checkIfMaximum(), checkPoint(), pcl::RangeImageBorderExtractor::checkPotentialBorder(), doZBuffer(), getAcutenessValue(), getCurvature(), pcl::RangeImagePlanar::getImagePoint(), getImpactAngle(), getNormal(), getPoint(), getRangeDifference(), integrateFarRanges() и pcl::RangeImageBorderExtractor::updatedScoreAccordingToNeighborValues().

isMaxRange()

bool pcl::RangeImage::isMaxRange ( int x,
int y
) const
inline

Проверяет, является ли дальность точки максимальной (range=INFINITY) — сначала проверьте isInImage или isObserved!

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

Ссылки на getPoint() и pcl::_PointWithRange::range.

Используется в pcl::RangeImageBorderExtractor::changeScoreAccordingToShadowBorderValue() и getSurfaceAngleChange().

isObserved()

bool pcl::RangeImage::isObserved ( int x,
int y
) const
inline

Проверяет, находится ли точка внутри изображения и имеет ли она конечную дальность или максимальное показание (range=INFINITY).

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

Используется в getEuclideanDistanceSquared() и getSurfaceAngleChange().

isValid() [1/2]

bool pcl::RangeImage::isValid ( int index ) const
inline

Проверяет, имеет ли точка конечную дальность.

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

isValid() [2/2]

bool pcl::RangeImage::isValid ( int x,
int y
) const
inline

Проверяет, находится ли точка внутри изображения и имеет ли она конечную дальность.

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

Используется в pcl::RangeImageBorderExtractor::calculateMainPrincipalCurvature(), get1dPointAverage(), getImpactAngleBasedOnLocalNormal(), getNormalForClosestNeighbors(), getSquaredDistanceOfNthNeighbor(), getSurfaceAngleChange(), getSurfaceInformation() и getViewingDirection().

makeShared()

Ptr pcl::RangeImage::makeShared ( )
inline

Возвращает общий указатель Boost на копию этого объекта.

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

real2DToInt2D()

void pcl::RangeImage::real2DToInt2D ( float x,
float y,
int & xInt,
int & yInt
) const
inline

Преобразует координаты точки изображения с плавающей точкой в целочисленные координаты точки изображения.

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

Используется в doZBuffer(), getImagePoint() и getPoint().

recalculate3DPointPositions()

PCL_EXPORTS void pcl::RangeImage::recalculate3DPointPositions ( )

Пересчитывает координаты всех трехмерных точек на основе их положения в пикселях и дальности.

Используется в createFromPointCloud(), pcl::RangeImagePlanar::createFromPointCloudWithFixedSize() и createFromPointCloudWithKnownSize().

reset()

PCL_EXPORTS void pcl::RangeImage::reset ( )

Сбрасывает все значения, создавая пустое изображение дальности.

setAngularResolution() [1/2]

void pcl::RangeImage::setAngularResolution ( float angular_resolution )
inline

Задает угловое разрешение изображения дальности.

Параметры
angular_resolution новое угловое разрешение по направлениям x и y (в радианах на пиксель)

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

Ссылки на angular_resolution_x_, angular_resolution_x_reciprocal_, angular_resolution_y_ и angular_resolution_y_reciprocal_.

Используется в createFromPointCloud() и createFromPointCloudWithKnownSize().

setAngularResolution() [2/2]

void pcl::RangeImage::setAngularResolution ( float angular_resolution_x,
float angular_resolution_y
)
inline

Задает угловое разрешение изображения дальности.

Параметры
angular_resolution_x новое угловое разрешение по направлению x (в радианах на пиксель)
angular_resolution_y новое угловое разрешение по направлению y (в радианах на пиксель)

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

Ссылки на angular_resolution_x_, angular_resolution_x_reciprocal_, angular_resolution_y_ и angular_resolution_y_reciprocal_.

setImageOffsets()

tr>
void pcl::RangeImage::setImageOffsets ( int offset_x,
int offset_y
)
inline

Метод задания смещений изображения.

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

Ссылки на image_offset_x_ и image_offset_y_.

setTransformationToRangeImageSystem()

void pcl::RangeImage::setTransformationToRangeImageSystem ( const Eigen::Affine3f & to_range_image_system )
inline

Метод задания преобразования из системы координат изображения дальности (системы координат датчика) в мировую систему координат.

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

Ссылки на to_range_image_system_ и to_world_system_.

setUnseenToMaxRange()

PCL_EXPORTS void pcl::RangeImage::setUnseenToMaxRange ( )

Заменяет все значения -INFINITY на INFINITY.

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

angular_resolution_x_

float pcl::RangeImage::angular_resolution_x_ {0.0f}
protected

Угловое разрешение изображения дальности по направлению x в радианах на пиксель.

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

Используется в getAnglesFromImagePoint(), pcl::RangeImageSpherical::getAnglesFromImagePoint(), getAngularResolution(), getAngularResolutionX() и setAngularResolution().

angular_resolution_x_reciprocal_

float pcl::RangeImage::angular_resolution_x_reciprocal_ {0.0f}
protected

1.0/angular_resolution_x_ — используется для повышения производительности умножения по сравнению с делением

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

Используется в pcl::RangeImagePlanar::calculate3DPoint(), createFromPointCloud(), createFromPointCloudWithKnownSize(), pcl::RangeImageSpherical::getImagePointFromAngles() и setAngularResolution().

angular_resolution_y_

float pcl::RangeImage::angular_resolution_y_ {0.0f}
protected

Угловое разрешение изображения дальности по направлению y в радианах на пиксель.

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

Используется в getAnglesFromImagePoint(), pcl::RangeImageSpherical::getAnglesFromImagePoint(), getAngularResolution(), getAngularResolutionY() и setAngularResolution().

angular_resolution_y_reciprocal_

float pcl::RangeImage::angular_resolution_y_reciprocal_ {0.0f}
protected

1.0/angular_resolution_y_ — используется для повышения производительности умножения по сравнению с делением

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

Используется в pcl::RangeImagePlanar::calculate3DPoint(), createFromPointCloud(), createFromPointCloudWithKnownSize(), pcl::RangeImageSpherical::getImagePointFromAngles() и setAngularResolution().

asin_lookup_table

PCL_EXPORTS std::vector<float> pcl::RangeImage::asin_lookup_table
staticprotected

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

Используется в asinLookUp().

atan_lookup_table

PCL_EXPORTS std::vector<float> pcl::RangeImage::atan_lookup_table
staticprotected

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

Используется в atan2LookUp().

cos_lookup_table

PCL_EXPORTS std::vector<float> pcl::RangeImage::cos_lookup_table
staticprotected

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

Используется в cosLookUp().

debug

bool pcl::RangeImage::debug
static

Просто для...

ну... отладки. :-)

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

image_offset_x_

int pcl::RangeImage::image_offset_x_ {0}
protected

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

Используется в pcl::RangeImagePlanar::calculate3DPoint(), createFromPointCloud(), createFromPointCloudWithKnownSize(), getAnglesFromImagePoint(), pcl::RangeImageSpherical::getAnglesFromImagePoint(), getImageOffsetX(), pcl::RangeImagePlanar::getImagePoint(), pcl::RangeImageSpherical::getImagePointFromAngles() и setImageOffsets().

image_offset_y_

int pcl::RangeImage::image_offset_y_ {0}
protected

Положение верхнего левого угла изображения дальности относительно изображения полного размера (360x180 градусов)

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

Используется в pcl::RangeImagePlanar::calculate3DPoint(), createFromPointCloud(), createFromPointCloudWithKnownSize(), getAnglesFromImagePoint(), pcl::RangeImageSpherical::getAnglesFromImagePoint(), getImageOffsetY(), pcl::RangeImagePlanar::getImagePoint(), pcl::RangeImageSpherical::getImagePointFromAngles() и setImageOffsets().

lookup_table_size

PCL_EXPORTS const int pcl::RangeImage::lookup_table_size
staticprotected

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

Используется в asinLookUp(), atan2LookUp() и cosLookUp().

max_no_of_threads

int pcl::RangeImage::max_no_of_threads
static

Максимальное количество потоков OpenMP, которые можно использовать в этом классе.

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

to_range_image_system_

Eigen::Affine3f pcl::RangeImage::to_range_image_system_
protected

Обратное преобразование to_world_system_.

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

Используется в createFromPointCloud(), pcl::RangeImagePlanar::createFromPointCloudWithFixedSize(), createFromPointCloudWithKnownSize(), getImagePoint(), pcl::RangeImageSpherical::getImagePoint(), pcl::RangeImagePlanar::getImagePoint(), getTransformationToRangeImageSystem() и setTransformationToRangeImageSystem().

to_world_system_

Eigen::Affine3f pcl::RangeImage::to_world_system_
protected

Обратное преобразование to_range_image_system_.

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

Используется в calculate3DPoint(), pcl::RangeImageSpherical::calculate3DPoint(), pcl::RangeImagePlanar::calculate3DPoint(), createFromPointCloud(), pcl::RangeImagePlanar::createFromPointCloudWithFixedSize(), createFromPointCloudWithKnownSize(), getSensorPos(), getTransformationToWorldSystem() и setTransformationToRangeImageSystem().

unobserved_point

PointWithRange pcl::RangeImage::unobserved_point
protected

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

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

Используется в checkPoint(), createFromPointCloud(), pcl::RangeImagePlanar::createFromPointCloudWithFixedSize(), createFromPointCloudWithKnownSize(), get1dPointAverage() и getPoint().


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

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

Spec-Zone.ru

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