Point Cloud Library (PCL)
1.3.1
|
Point Cloud Data (PCD) file format reader. More...
#include <pcl/io/pcd_io.h>
Public Types | |
enum | { PCD_V6 = 0, PCD_V7 = 1 } |
Various PCD file versions. More... | |
Public Member Functions | |
PCDReader () | |
Empty constructor. | |
~PCDReader () | |
Empty destructor. | |
int | readHeader (const std::string &file_name, sensor_msgs::PointCloud2 &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation, int &pcd_version, int &data_type, int &data_idx) |
Read a point cloud data header from a PCD file. | |
int | read (const std::string &file_name, sensor_msgs::PointCloud2 &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation, int &pcd_version) |
Read a point cloud data from a PCD file and store it into a sensor_msgs/PointCloud2. | |
int | read (const std::string &file_name, sensor_msgs::PointCloud2 &cloud) |
Read a point cloud data from a PCD (PCD_V6) and store it into a sensor_msgs/PointCloud2. | |
template<typename PointT > | |
int | read (const std::string &file_name, pcl::PointCloud< PointT > &cloud) |
Read a point cloud data from any PCD file, and convert it to the given template format. | |
template<typename Type > | |
void | copyStringValue (const std::string &st, sensor_msgs::PointCloud2 &cloud, unsigned int point_index, unsigned int field_idx, unsigned int fields_count) |
Copy one single value of type T (uchar, char, uint, int, float, double, ...) from a string. |
Point Cloud Data (PCD) file format reader.
anonymous enum |
Various PCD file versions.
PCD_V6 represents PCD files with version 0.6, which contain the following fields:
Everything that follows DATA is intepreted as data points and will be read accordingly.
PCD_V7 represents PCD files with version 0.7 and has an important addon: it adds sensor origin/orientation (aka viewpoint) information to a dataset through the use of a new header field:
void pcl::FileReader::copyStringValue | ( | const std::string & | st, |
sensor_msgs::PointCloud2 & | cloud, | ||
unsigned int | point_index, | ||
unsigned int | field_idx, | ||
unsigned int | fields_count | ||
) | [inline, inherited] |
Copy one single value of type T (uchar, char, uint, int, float, double, ...) from a string.
Uses aoti/atof to do the conversion. Checks if the st is "nan" and converts it accordingly.
st | the string containing the value to convert and copy |
cloud | the cloud to copy it to |
point_index | the index of the point |
field_idx | the index of the dimension/field |
fields_count | the current fields count |
int pcl::PCDReader::read | ( | const std::string & | file_name, |
sensor_msgs::PointCloud2 & | cloud, | ||
Eigen::Vector4f & | origin, | ||
Eigen::Quaternionf & | orientation, | ||
int & | pcd_version | ||
) | [virtual] |
Read a point cloud data from a PCD file and store it into a sensor_msgs/PointCloud2.
[in] | file_name | the name of the file containing the actual PointCloud data |
[out] | cloud | the resultant PointCloud message read from disk |
[out] | origin | the sensor acquisition origin (only for > PCD_V7 - null if not present) |
[out] | orientation | the sensor acquisition orientation (only for > PCD_V7 - identity if not present) |
[out] | pcd_version | the PCD version of the file (either PCD_V6 or PCD_V7) |
Implements pcl::FileReader.
int pcl::PCDReader::read | ( | const std::string & | file_name, |
sensor_msgs::PointCloud2 & | cloud | ||
) |
Read a point cloud data from a PCD (PCD_V6) and store it into a sensor_msgs/PointCloud2.
[in] | file_name | the name of the file containing the actual PointCloud data |
[out] | cloud | the resultant PointCloud message read from disk |
Reimplemented from pcl::FileReader.
int pcl::PCDReader::read | ( | const std::string & | file_name, |
pcl::PointCloud< PointT > & | cloud | ||
) | [inline] |
Read a point cloud data from any PCD file, and convert it to the given template format.
[in] | file_name | the name of the file containing the actual PointCloud data |
[out] | cloud | the resultant PointCloud message read from disk |
Reimplemented from pcl::FileReader.
int pcl::PCDReader::readHeader | ( | const std::string & | file_name, |
sensor_msgs::PointCloud2 & | cloud, | ||
Eigen::Vector4f & | origin, | ||
Eigen::Quaternionf & | orientation, | ||
int & | pcd_version, | ||
int & | data_type, | ||
int & | data_idx | ||
) | [virtual] |
Read a point cloud data header from a PCD file.
Load only the meta information (number of points, their types, etc), and not the points themselves, from a given PCD file. Useful for fast evaluation of the underlying data structure.
Returns: * < 0 (-1) on error * > 0 on success
[in] | file_name | the name of the file to load |
[out] | cloud | the resultant point cloud dataset (only the header will be filled) |
[out] | origin | the sensor acquisition origin (only for > PCD_V7 - null if not present) |
[out] | orientation | the sensor acquisition orientation (only for > PCD_V7 - identity if not present) |
[out] | pcd_version | the PCD version of the file (either PCD_V6 or PCD_V7) |
[out] | data_type | the type of data (0 = ASCII, 1 = Binary, 2 = Binary compressed) |
[out] | data_idx | the offset of cloud data within the file |
Implements pcl::FileReader.