Point Cloud Library (PCL)
1.14.1-dev
|
RangeImageSpherical is derived from the original range image and uses a slightly different spherical projection. More...
#include <pcl/range_image/range_image_spherical.h>
Public Types | |
using | BaseClass = RangeImage |
using | Ptr = shared_ptr< RangeImageSpherical > |
using | ConstPtr = shared_ptr< const RangeImageSpherical > |
Public Types inherited from pcl::RangeImage | |
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 > |
Public Types inherited from 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 |
Public Member Functions | |
PCL_EXPORTS | RangeImageSpherical () |
Constructor. More... | |
virtual PCL_EXPORTS | ~RangeImageSpherical ()=default |
Destructor. More... | |
virtual RangeImage * | getNew () const |
Return a newly created RangeImagePlanar. More... | |
Ptr | makeShared () |
Get a boost shared pointer of a copy of this. More... | |
virtual void | calculate3DPoint (float image_x, float image_y, float range, Eigen::Vector3f &point) const |
Calculate the 3D point according to the given image point and range. More... | |
virtual void | getImagePoint (const Eigen::Vector3f &point, float &image_x, float &image_y, float &range) const |
Calculate the image point and range from the given 3D point. More... | |
void | getAnglesFromImagePoint (float image_x, float image_y, float &angle_x, float &angle_y) const |
Get the angles corresponding to the given image point. More... | |
void | getImagePointFromAngles (float angle_x, float angle_y, float &image_x, float &image_y) const |
Get the image point corresponding to the given ranges. More... | |
void | calculate3DPoint (float image_x, float image_y, float range, PointWithRange &point) const |
Calculate the 3D point according to the given image point and range. More... | |
void | calculate3DPoint (float image_x, float image_y, PointWithRange &point) const |
Calculate the 3D point according to the given image point and the range value at the closest pixel. More... | |
virtual void | calculate3DPoint (float image_x, float image_y, float range, Eigen::Vector3f &point) const |
Calculate the 3D point according to the given image point and range. More... | |
void | calculate3DPoint (float image_x, float image_y, Eigen::Vector3f &point) const |
Calculate the 3D point according to the given image point and the range value at the closest pixel. More... | |
virtual void | getImagePoint (const Eigen::Vector3f &point, float &image_x, float &image_y, float &range) const |
Get imagePoint from 3D point in world coordinates. More... | |
void | getImagePoint (const Eigen::Vector3f &point, int &image_x, int &image_y, float &range) const |
Same as above. More... | |
void | getImagePoint (const Eigen::Vector3f &point, float &image_x, float &image_y) const |
Same as above. More... | |
void | getImagePoint (const Eigen::Vector3f &point, int &image_x, int &image_y) const |
Same as above. More... | |
void | getImagePoint (float x, float y, float z, float &image_x, float &image_y, float &range) const |
Same as above. More... | |
void | getImagePoint (float x, float y, float z, float &image_x, float &image_y) const |
Same as above. More... | |
void | getImagePoint (float x, float y, float z, int &image_x, int &image_y) const |
Same as above. More... | |
Public Member Functions inherited from pcl::RangeImage | |
PCL_EXPORTS | RangeImage () |
Constructor. More... | |
virtual PCL_EXPORTS | ~RangeImage () |
Destructor. More... | |
Ptr | makeShared () |
Get a boost shared pointer of a copy of this. More... | |
PCL_EXPORTS void | reset () |
Reset all values to an empty range image. More... | |
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) |
Create the depth image from a point cloud. More... | |
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) |
Create the depth image from a point cloud. More... | |
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) |
Create the depth image from a point cloud, getting a hint about the size of the scene for faster calculation. More... | |
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) |
Create the depth image from a point cloud, getting a hint about the size of the scene for faster calculation. More... | |
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) |
Create the depth image from a point cloud, using the average viewpoint of the points (vp_x,vp_y,vp_z in the point type) in the point cloud as sensor pose (assuming a rotation of (0,0,0)). More... | |
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) |
Create the depth image from a point cloud, using the average viewpoint of the points (vp_x,vp_y,vp_z in the point type) in the point cloud as sensor pose (assuming a rotation of (0,0,0)). More... | |
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)) |
Create an empty depth image (filled with unobserved points) More... | |
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)) |
Create an empty depth image (filled with unobserved points) More... | |
template<typename PointCloudType > | |
void | doZBuffer (const PointCloudType &point_cloud, float noise_level, float min_range, int &top, int &right, int &bottom, int &left) |
Integrate the given point cloud into the current range image using a z-buffer. More... | |
template<typename PointCloudType > | |
void | integrateFarRanges (const PointCloudType &far_ranges) |
Integrates the given far range measurements into the range image. More... | |
PCL_EXPORTS void | cropImage (int border_size=0, int top=-1, int right=-1, int bottom=-1, int left=-1) |
Cut the range image to the minimal size so that it still contains all actual range readings. More... | |
PCL_EXPORTS float * | getRangesArray () const |
Get all the range values in one float array of size width*height. More... | |
const Eigen::Affine3f & | getTransformationToRangeImageSystem () const |
Getter for the transformation from the world system into the range image system (the sensor coordinate frame) More... | |
void | setTransformationToRangeImageSystem (const Eigen::Affine3f &to_range_image_system) |
Setter for the transformation from the range image system (the sensor coordinate frame) into the world system. More... | |
const Eigen::Affine3f & | getTransformationToWorldSystem () const |
Getter for the transformation from the range image system (the sensor coordinate frame) into the world system. More... | |
float | getAngularResolution () const |
Getter for the angular resolution of the range image in x direction in radians per pixel. More... | |
float | getAngularResolutionX () const |
Getter for the angular resolution of the range image in x direction in radians per pixel. More... | |
float | getAngularResolutionY () const |
Getter for the angular resolution of the range image in y direction in radians per pixel. More... | |
void | getAngularResolution (float &angular_resolution_x, float &angular_resolution_y) const |
Getter for the angular resolution of the range image in x and y direction (in radians). More... | |
void | setAngularResolution (float angular_resolution) |
Set the angular resolution of the range image. More... | |
void | setAngularResolution (float angular_resolution_x, float angular_resolution_y) |
Set the angular resolution of the range image. More... | |
const PointWithRange & | getPoint (int image_x, int image_y) const |
Return the 3D point with range at the given image position. More... | |
PointWithRange & | getPoint (int image_x, int image_y) |
Non-const-version of getPoint. More... | |
const PointWithRange & | getPoint (float image_x, float image_y) const |
Return the 3d point with range at the given image position. More... | |
PointWithRange & | getPoint (float image_x, float image_y) |
Non-const-version of the above. More... | |
const PointWithRange & | getPointNoCheck (int image_x, int image_y) const |
Return the 3D point with range at the given image position. More... | |
PointWithRange & | getPointNoCheck (int image_x, int image_y) |
Non-const-version of getPointNoCheck. More... | |
void | getPoint (int image_x, int image_y, Eigen::Vector3f &point) const |
Same as above. More... | |
void | getPoint (int index, Eigen::Vector3f &point) const |
Same as above. More... | |
const Eigen::Map< const Eigen::Vector3f > | getEigenVector3f (int x, int y) const |
Same as above. More... | |
const Eigen::Map< const Eigen::Vector3f > | getEigenVector3f (int index) const |
Same as above. More... | |
const PointWithRange & | getPoint (int index) const |
Return the 3d point with range at the given index (whereas index=y*width+x) More... | |
void | calculate3DPoint (float image_x, float image_y, float range, PointWithRange &point) const |
Calculate the 3D point according to the given image point and range. More... | |
void | calculate3DPoint (float image_x, float image_y, PointWithRange &point) const |
Calculate the 3D point according to the given image point and the range value at the closest pixel. More... | |
void | calculate3DPoint (float image_x, float image_y, Eigen::Vector3f &point) const |
Calculate the 3D point according to the given image point and the range value at the closest pixel. More... | |
PCL_EXPORTS void | recalculate3DPointPositions () |
Recalculate all 3D point positions according to their pixel position and range. More... | |
void | getImagePoint (const Eigen::Vector3f &point, int &image_x, int &image_y, float &range) const |
Same as above. More... | |
void | getImagePoint (const Eigen::Vector3f &point, float &image_x, float &image_y) const |
Same as above. More... | |
void | getImagePoint (const Eigen::Vector3f &point, int &image_x, int &image_y) const |
Same as above. More... | |
void | getImagePoint (float x, float y, float z, float &image_x, float &image_y, float &range) const |
Same as above. More... | |
void | getImagePoint (float x, float y, float z, float &image_x, float &image_y) const |
Same as above. More... | |
void | getImagePoint (float x, float y, float z, int &image_x, int &image_y) const |
Same as above. More... | |
float | checkPoint (const Eigen::Vector3f &point, PointWithRange &point_in_image) const |
point_in_image will be the point in the image at the position the given point would be. More... | |
float | getRangeDifference (const Eigen::Vector3f &point) const |
Returns the difference in range between the given point and the range of the point in the image at the position the given point would be. More... | |
void | getImagePointFromAngles (float angle_x, float angle_y, float &image_x, float &image_y) const |
Get the image point corresponding to the given angles. More... | |
void | getAnglesFromImagePoint (float image_x, float image_y, float &angle_x, float &angle_y) const |
Get the angles corresponding to the given image point. More... | |
void | real2DToInt2D (float x, float y, int &xInt, int &yInt) const |
Transforms an image point in float values to an image point in int values. More... | |
bool | isInImage (int x, int y) const |
Check if a point is inside of the image. More... | |
bool | isValid (int x, int y) const |
Check if a point is inside of the image and has a finite range. More... | |
bool | isValid (int index) const |
Check if a point has a finite range. More... | |
bool | isObserved (int x, int y) const |
Check if a point is inside of the image and has either a finite range or a max reading (range=INFINITY) More... | |
bool | isMaxRange (int x, int y) const |
Check if a point is a max range (range=INFINITY) - please check isInImage or isObserved first! More... | |
bool | getNormal (int x, int y, int radius, Eigen::Vector3f &normal, int step_size=1) const |
Calculate the normal of an image point using the neighbors with a maximum pixel distance of radius. More... | |
bool | getNormalForClosestNeighbors (int x, int y, int radius, const PointWithRange &point, int no_of_nearest_neighbors, Eigen::Vector3f &normal, int step_size=1) const |
Same as above, but only the no_of_nearest_neighbors points closest to the given point are considered. More... | |
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 |
Same as above. More... | |
bool | getNormalForClosestNeighbors (int x, int y, Eigen::Vector3f &normal, int radius=2) const |
Same as above, using default values. More... | |
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 |
Same as above but extracts some more data and can also return the extracted information for all neighbors in radius if normal_all_neighbors is not NULL. More... | |
float | getSquaredDistanceOfNthNeighbor (int x, int y, int radius, int n, int step_size) const |
float | getImpactAngle (const PointWithRange &point1, const PointWithRange &point2) const |
Calculate the impact angle based on the sensor position and the two given points - will return -INFINITY if one of the points is unobserved. More... | |
float | getImpactAngle (int x1, int y1, int x2, int y2) const |
Same as above. More... | |
float | getImpactAngleBasedOnLocalNormal (int x, int y, int radius) const |
Extract a local normal (with a heuristic not to include background points) and calculate the impact angle based on this. More... | |
PCL_EXPORTS float * | getImpactAngleImageBasedOnLocalNormals (int radius) const |
Uses the above function for every point in the image. More... | |
float | getNormalBasedAcutenessValue (int x, int y, int radius) const |
Calculate a score [0,1] that tells how acute the impact angle is (1.0f - getImpactAngle/90deg) This uses getImpactAngleBasedOnLocalNormal Will return -INFINITY if no normal could be calculated. More... | |
float | getAcutenessValue (const PointWithRange &point1, const PointWithRange &point2) const |
Calculate a score [0,1] that tells how acute the impact angle is (1.0f - getImpactAngle/90deg) will return -INFINITY if one of the points is unobserved. More... | |
float | getAcutenessValue (int x1, int y1, int x2, int y2) const |
Same as above. More... | |
PCL_EXPORTS void | getAcutenessValueImages (int pixel_distance, float *´ness_value_image_x, float *´ness_value_image_y) const |
Calculate getAcutenessValue for every point. More... | |
PCL_EXPORTS float | getSurfaceChange (int x, int y, int radius) const |
Calculates, how much the surface changes at a point. More... | |
PCL_EXPORTS float * | getSurfaceChangeImage (int radius) const |
Uses the above function for every point in the image. More... | |
void | getSurfaceAngleChange (int x, int y, int radius, float &angle_change_x, float &angle_change_y) const |
Calculates, how much the surface changes at a point. More... | |
PCL_EXPORTS void | getSurfaceAngleChangeImages (int radius, float *&angle_change_image_x, float *&angle_change_image_y) const |
Uses the above function for every point in the image. More... | |
float | getCurvature (int x, int y, int radius, int step_size) const |
Calculates the curvature in a point using pca. More... | |
const Eigen::Vector3f | getSensorPos () const |
Get the sensor position. More... | |
PCL_EXPORTS void | setUnseenToMaxRange () |
Sets all -INFINITY values to INFINITY. More... | |
int | getImageOffsetX () const |
Getter for image_offset_x_. More... | |
int | getImageOffsetY () const |
Getter for image_offset_y_. More... | |
void | setImageOffsets (int offset_x, int offset_y) |
Setter for image offsets. More... | |
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 |
Get a sub part of the complete image as a new range image. More... | |
virtual void | getHalfImage (RangeImage &half_image) const |
Get a range image with half the resolution. More... | |
PCL_EXPORTS void | getMinMaxRanges (float &min_range, float &max_range) const |
Find the minimum and maximum range in the image. More... | |
PCL_EXPORTS void | change3dPointsToLocalCoordinateFrame () |
This function sets the sensor pose to 0 and transforms all point positions to this local coordinate frame. More... | |
PCL_EXPORTS float * | getInterpolatedSurfaceProjection (const Eigen::Affine3f &pose, int pixel_size, float world_size) const |
Calculate a range patch as the z values of the coordinate frame given by pose. More... | |
PCL_EXPORTS float * | getInterpolatedSurfaceProjection (const Eigen::Vector3f &point, int pixel_size, float world_size) const |
Same as above, but using the local coordinate frame defined by point and the viewing direction. More... | |
Eigen::Affine3f | getTransformationToViewerCoordinateFrame (const Eigen::Vector3f &point) const |
Get the local coordinate frame with 0,0,0 in point, upright and Z as the viewing direction. More... | |
void | getTransformationToViewerCoordinateFrame (const Eigen::Vector3f &point, Eigen::Affine3f &transformation) const |
Same as above, using a reference for the retrurn value. More... | |
void | getRotationToViewerCoordinateFrame (const Eigen::Vector3f &point, Eigen::Affine3f &transformation) const |
Same as above, but only returning the rotation. More... | |
PCL_EXPORTS bool | getNormalBasedUprightTransformation (const Eigen::Vector3f &point, float max_dist, Eigen::Affine3f &transformation) const |
Get a local coordinate frame at the given point based on the normal. More... | |
PCL_EXPORTS void | getIntegralImage (float *&integral_image, int *&valid_points_num_image) const |
Get the integral image of the range values (used for fast blur operations). More... | |
PCL_EXPORTS void | getBlurredImageUsingIntegralImage (int blur_radius, float *integral_image, int *valid_points_num_image, RangeImage &range_image) const |
Get a blurred version of the range image using box filters on the provided integral image. More... | |
virtual PCL_EXPORTS void | getBlurredImage (int blur_radius, RangeImage &range_image) const |
Get a blurred version of the range image using box filters. More... | |
float | getEuclideanDistanceSquared (int x1, int y1, int x2, int y2) const |
Get the squared euclidean distance between the two image points. More... | |
float | getAverageEuclideanDistance (int x, int y, int offset_x, int offset_y, int max_steps) const |
Doing the above for some steps in the given direction and averaging. More... | |
PCL_EXPORTS void | getRangeImageWithSmoothedSurface (int radius, RangeImage &smoothed_range_image) const |
Project all points on the local plane approximation, thereby smoothing the surface of the scan. More... | |
void | get1dPointAverage (int x, int y, int delta_x, int delta_y, int no_of_points, PointWithRange &average_point) const |
Calculates the average 3D position of the no_of_points points described by the start point x,y in the direction delta. More... | |
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 |
Calculates the overlap of two range images given the relative transformation (from the given image to *this) More... | |
bool | getViewingDirection (int x, int y, Eigen::Vector3f &viewing_direction) const |
Get the viewing direction for the given point. More... | |
void | getViewingDirection (const Eigen::Vector3f &point, Eigen::Vector3f &viewing_direction) const |
Get the viewing direction for the given point. More... | |
virtual PCL_EXPORTS void | copyTo (RangeImage &other) const |
Copy other to *this. More... | |
Public Member Functions inherited from pcl::PointCloud< PointWithRange > | |
PointCloud ()=default | |
Default constructor. More... | |
PointCloud (const PointCloud< PointWithRange > &pc, const Indices &indices) | |
Copy constructor from point cloud subset. More... | |
PointCloud (std::uint32_t width_, std::uint32_t height_, const PointWithRange &value_=PointWithRange()) | |
Allocate constructor from point cloud subset. More... | |
PointCloud & | operator+= (const PointCloud &rhs) |
Add a point cloud to the current cloud. More... | |
PointCloud | operator+ (const PointCloud &rhs) |
Add a point cloud to another cloud. More... | |
const PointWithRange & | at (int column, int row) const |
Obtain the point given by the (column, row) coordinates. More... | |
PointWithRange & | at (int column, int row) |
Obtain the point given by the (column, row) coordinates. More... | |
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 |
Obtain the point given by the (column, row) coordinates. More... | |
PointWithRange & | operator() (std::size_t column, std::size_t row) |
Obtain the point given by the (column, row) coordinates. More... | |
bool | isOrganized () const |
Return whether a dataset is organized (e.g., arranged in a structured grid). More... | |
Eigen::Map< Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> > | getMatrixXfMap (int dim, int stride, int offset) |
Return an Eigen MatrixXf (assumes float values) mapped to the specified dimensions of the PointCloud. More... | |
const Eigen::Map< const Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> > | getMatrixXfMap (int dim, int stride, int offset) const |
Return an Eigen MatrixXf (assumes float values) mapped to the specified dimensions of the PointCloud. More... | |
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) |
Resizes the container to contain count elements. More... | |
void | resize (uindex_t new_width, uindex_t new_height) |
Resizes the container to contain new_width * new_height elements. More... | |
void | resize (index_t count, const PointWithRange &value) |
Resizes the container to contain count elements. More... | |
void | resize (index_t new_width, index_t new_height, const PointWithRange &value) |
Resizes the container to contain count elements. More... | |
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) |
Replaces the points with count copies of value More... | |
void | assign (index_t new_width, index_t new_height, const PointWithRange &value) |
Replaces the points with new_width * new_height copies of value More... | |
void | assign (InputIterator first, InputIterator last) |
Replaces the points with copies of those in the range [first, last) More... | |
void | assign (InputIterator first, InputIterator last, index_t new_width) |
Replaces the points with copies of those in the range [first, last) More... | |
void | assign (std::initializer_list< PointWithRange > ilist) |
Replaces the points with the elements from the initializer list ilist More... | |
void | assign (std::initializer_list< PointWithRange > ilist, index_t new_width) |
Replaces the points with the elements from the initializer list ilist More... | |
void | push_back (const PointWithRange &pt) |
Insert a new point in the cloud, at the end of the container. More... | |
void | transient_push_back (const PointWithRange &pt) |
Insert a new point in the cloud, at the end of the container. More... | |
reference | emplace_back (Args &&...args) |
Emplace a new point in the cloud, at the end of the container. More... | |
reference | transient_emplace_back (Args &&...args) |
Emplace a new point in the cloud, at the end of the container. More... | |
iterator | insert (iterator position, const PointWithRange &pt) |
Insert a new point in the cloud, given an iterator. More... | |
void | insert (iterator position, std::size_t n, const PointWithRange &pt) |
Insert a new point in the cloud N times, given an iterator. More... | |
void | insert (iterator position, InputIterator first, InputIterator last) |
Insert a new range of points in the cloud, at a certain position. More... | |
iterator | transient_insert (iterator position, const PointWithRange &pt) |
Insert a new point in the cloud, given an iterator. More... | |
void | transient_insert (iterator position, std::size_t n, const PointWithRange &pt) |
Insert a new point in the cloud N times, given an iterator. More... | |
void | transient_insert (iterator position, InputIterator first, InputIterator last) |
Insert a new range of points in the cloud, at a certain position. More... | |
iterator | emplace (iterator position, Args &&...args) |
Emplace a new point in the cloud, given an iterator. More... | |
iterator | transient_emplace (iterator position, Args &&...args) |
Emplace a new point in the cloud, given an iterator. More... | |
iterator | erase (iterator position) |
Erase a point in the cloud. More... | |
iterator | erase (iterator first, iterator last) |
Erase a set of points given by a (first, last) iterator pair. More... | |
iterator | transient_erase (iterator position) |
Erase a point in the cloud. More... | |
iterator | transient_erase (iterator first, iterator last) |
Erase a set of points given by a (first, last) iterator pair. More... | |
void | swap (PointCloud< PointWithRange > &rhs) |
Swap a point cloud with another cloud. More... | |
void | clear () |
Removes all points in a cloud and sets the width and height to 0. More... | |
Ptr | makeShared () const |
Copy the cloud to the heap and return a smart pointer Note that deep copy is performed, so avoid using this function on non-empty clouds. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from pcl::RangeImage | |
static float | getMaxAngleSize (const Eigen::Affine3f &viewer_pose, const Eigen::Vector3f ¢er, float radius) |
Get the size of a certain area when seen from the given pose. More... | |
static Eigen::Vector3f | getEigenVector3f (const PointWithRange &point) |
Get Eigen::Vector3f from PointWithRange. More... | |
static PCL_EXPORTS void | getCoordinateFrameTransformation (RangeImage::CoordinateFrame coordinate_frame, Eigen::Affine3f &transformation) |
Get the transformation that transforms the given coordinate frame into CAMERA_FRAME. More... | |
template<typename PointCloudTypeWithViewpoints > | |
static Eigen::Vector3f | getAverageViewPoint (const PointCloudTypeWithViewpoints &point_cloud) |
Get the average viewpoint of a point cloud where each point carries viewpoint information as vp_x, vp_y, vp_z. More... | |
static PCL_EXPORTS void | extractFarRanges (const pcl::PCLPointCloud2 &point_cloud_data, PointCloud< PointWithViewpoint > &far_ranges) |
Check if the provided data includes far ranges and add them to far_ranges. More... | |
Static Public Member Functions inherited from 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) |
Public Attributes inherited from pcl::PointCloud< PointWithRange > | |
pcl::PCLHeader | header |
The point cloud header. More... | |
std::vector< PointWithRange, Eigen::aligned_allocator< PointWithRange > > | points |
The point data. More... | |
std::uint32_t | width |
The point cloud width (if organized as an image-structure). More... | |
std::uint32_t | height |
The point cloud height (if organized as an image-structure). More... | |
bool | is_dense |
True if no points are invalid (e.g., have NaN or Inf values in any of their floating point fields). More... | |
Eigen::Vector4f | sensor_origin_ |
Sensor acquisition pose (origin/translation). More... | |
Eigen::Quaternionf | sensor_orientation_ |
Sensor acquisition pose (rotation). More... | |
Static Public Attributes inherited from pcl::RangeImage | |
static int | max_no_of_threads |
The maximum number of openmp threads that can be used in this class. More... | |
static bool | debug |
Just for... More... | |
Static Protected Member Functions inherited from pcl::RangeImage | |
static void | createLookupTables () |
Create lookup tables for trigonometric functions. More... | |
static float | asinLookUp (float value) |
Query the asin lookup table. More... | |
static float | atan2LookUp (float y, float x) |
Query the std::atan2 lookup table. More... | |
static float | cosLookUp (float value) |
Query the cos lookup table. More... | |
Protected Attributes inherited from pcl::RangeImage | |
Eigen::Affine3f | to_range_image_system_ |
Inverse of to_world_system_. More... | |
Eigen::Affine3f | to_world_system_ |
Inverse of to_range_image_system_. More... | |
float | angular_resolution_x_ {0.0f} |
Angular resolution of the range image in x direction in radians per pixel. More... | |
float | angular_resolution_y_ {0.0f} |
Angular resolution of the range image in y direction in radians per pixel. More... | |
float | angular_resolution_x_reciprocal_ {0.0f} |
1.0/angular_resolution_x_ - provided for better performance of multiplication compared to division More... | |
float | angular_resolution_y_reciprocal_ {0.0f} |
1.0/angular_resolution_y_ - provided for better performance of multiplication compared to division More... | |
int | image_offset_x_ {0} |
int | image_offset_y_ {0} |
Position of the top left corner of the range image compared to an image of full size (360x180 degrees) More... | |
PointWithRange | unobserved_point |
This point is used to be able to return a reference to a non-existing point. More... | |
Static Protected Attributes inherited from pcl::RangeImage | |
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 |
RangeImageSpherical is derived from the original range image and uses a slightly different spherical projection.
In the original range image, the image will appear more and more "scaled down" along the y axis, the further away from the mean line of the image a point is. This class removes this scaling, which makes it especially suitable for spinning LIDAR sensors that capure a 360° view, since a rotation of the sensor will now simply correspond to a shift of the range image. (This class is similar to RangeImagePlanar, but changes less of the behaviour of the base class.)
Definition at line 50 of file range_image_spherical.h.
Definition at line 54 of file range_image_spherical.h.
using pcl::RangeImageSpherical::ConstPtr = shared_ptr<const RangeImageSpherical> |
Definition at line 56 of file range_image_spherical.h.
using pcl::RangeImageSpherical::Ptr = shared_ptr<RangeImageSpherical> |
Definition at line 55 of file range_image_spherical.h.
|
inline |
|
virtualdefault |
Destructor.
|
inline |
Calculate the 3D point according to the given image point and the range value at the closest pixel.
Definition at line 445 of file range_image.hpp.
|
inline |
Calculate the 3D point according to the given image point and range.
Definition at line 442 of file range_image.hpp.
|
inlinevirtual |
Calculate the 3D point according to the given image point and range.
image_x | the x image position |
image_y | the y image position |
range | the range |
point | the resulting 3D point |
Reimplemented from pcl::RangeImage.
Definition at line 48 of file range_image_spherical.hpp.
References getAnglesFromImagePoint(), and pcl::RangeImage::to_world_system_.
|
inline |
Calculate the 3D point according to the given image point and range.
Definition at line 435 of file range_image.hpp.
|
inline |
Calculate the 3D point according to the given image point and the range value at the closest pixel.
Definition at line 438 of file range_image.hpp.
|
inline |
Get the angles corresponding to the given image point.
Definition at line 70 of file range_image_spherical.hpp.
References pcl::RangeImage::angular_resolution_x_, pcl::RangeImage::angular_resolution_y_, pcl::RangeImage::image_offset_x_, pcl::RangeImage::image_offset_y_, and M_PI.
Referenced by calculate3DPoint().
|
inline |
Same as above.
Definition at line 461 of file range_image.hpp.
|
inline |
Get imagePoint from 3D point in world coordinates.
Definition at line 453 of file range_image.hpp.
|
inlinevirtual |
Calculate the image point and range from the given 3D point.
point | the resulting 3D point |
image_x | the resulting x image position |
image_y | the resulting y image position |
range | the resulting range |
Reimplemented from pcl::RangeImage.
Definition at line 60 of file range_image_spherical.hpp.
References pcl::RangeImage::asinLookUp(), pcl::RangeImage::atan2LookUp(), getImagePointFromAngles(), and pcl::RangeImage::to_range_image_system_.
|
inline |
Same as above.
Definition at line 465 of file range_image.hpp.
|
inline |
Same as above.
Definition at line 457 of file range_image.hpp.
|
inline |
Same as above.
Definition at line 473 of file range_image.hpp.
|
inline |
Same as above.
Definition at line 469 of file range_image.hpp.
|
inline |
Same as above.
Definition at line 477 of file range_image.hpp.
|
inline |
Get the image point corresponding to the given ranges.
Definition at line 77 of file range_image_spherical.hpp.
References pcl::RangeImage::angular_resolution_x_reciprocal_, pcl::RangeImage::angular_resolution_y_reciprocal_, pcl::RangeImage::image_offset_x_, pcl::RangeImage::image_offset_y_, and M_PI.
Referenced by getImagePoint().
|
inlinevirtual |
Return a newly created RangeImagePlanar.
Reimplementation to return an image of the same type.
Reimplemented from pcl::RangeImage.
Definition at line 67 of file range_image_spherical.h.
References RangeImageSpherical().
|
inline |
Get a boost shared pointer of a copy of this.
Definition at line 72 of file range_image_spherical.h.