Средство чтения файлов в формате Point Cloud Data (PCD). Подробнее...
#include <pcl/io/pcd_io.h>
Открытые типы | |
| enum | { PCD_V6 = 0 , PCD_V7 = 1 } |
| Различные версии файлов PCD. Подробнее... |
|
Открытые функции-члены | |
| PCDReader ()=default | |
| Пустой конструктор. Подробнее... |
|
| ~PCDReader () override=default | |
| Пустой деструктор. Подробнее... |
|
| int | readHeader (std::istream &binary_istream, pcl::PCLPointCloud2 &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation, int &pcd_version, int &data_type, unsigned int &data_idx) |
| Читает заголовок облака точек из двоичного istream в формате PCD. Подробнее... |
|
| int | readHeader (const std::string &file_name, pcl::PCLPointCloud2 &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation, int &pcd_version, int &data_type, unsigned int &data_idx, const int offset=0) override |
| Читает заголовок облака точек из файла PCD. Подробнее... |
|
| int | readHeader (const std::string &file_name, pcl::PCLPointCloud2 &cloud, const int offset=0) |
| Читает заголовок облака точек из файла PCD. Подробнее... |
|
| int | readBodyASCII (std::istream &stream, pcl::PCLPointCloud2 &cloud, int pcd_version) |
| Читает данные облака точек (тело) из потока PCD. Подробнее... |
|
| int | readBodyBinary (const unsigned char *data, pcl::PCLPointCloud2 &cloud, int pcd_version, bool compressed, unsigned int data_idx) |
| Читает данные облака точек (тело) из блока памяти. Подробнее... |
|
| int | read (const std::string &file_name, pcl::PCLPointCloud2 &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation, int &pcd_version, const int offset=0) override |
| Читает данные облака точек из файла PCD и сохраняет их в pcl/PCLPointCloud2. Подробнее... |
|
| int | read (const std::string &file_name, pcl::PCLPointCloud2 &cloud, const int offset=0) |
| Читает данные облака точек из файла PCD (PCD_V6) и сохраняет их в pcl/PCLPointCloud2. Подробнее... |
|
| template<typename PointT > | |
| int | read (const std::string &file_name, pcl::PointCloud< PointT > &cloud, const int offset=0) |
| Читает данные облака точек из любого файла PCD и преобразует их в заданный формат шаблона. Подробнее... |
|
|
| |
| FileReader ()=default | |
| пустой конструктор Подробнее... |
|
| virtual | ~FileReader ()=default |
| пустой деструктор Подробнее... |
|
| int | read (const std::string &file_name, pcl::PCLPointCloud2 &cloud, const int offset=0) |
| Читает данные облака точек из файла FILE (только FILE_V6!) и сохраняет их в pcl/PCLPointCloud2. Подробнее... |
|
| template<typename PointT > | |
| int | read (const std::string &file_name, pcl::PointCloud< PointT > &cloud, const int offset=0) |
| Читает данные облака точек из любого файла FILE и преобразует их в заданный формат шаблона. Подробнее... |
|
Подробное описание
Описание перечислений-членов
анонимное перечисление
| анонимное перечисление |
Различные версии файлов PCD.
PCD_V6 соответствует файлам PCD версии 0.6, содержащим следующие поля:
- строки, начинающиеся с #, считаются комментариями
- FIELDS ...
- SIZE ...
- TYPE ...
- COUNT ...
- WIDTH ...
- HEIGHT ...
- POINTS ...
- DATA ascii/binary
Всё, что следует за DATA, интерпретируется как точки данных и считывается соответствующим образом.
PCD_V7 соответствует файлам PCD версии 0.7 и имеет важное дополнение: в набор данных добавляется информация о положении и ориентации датчика (также называемая точкой обзора) с помощью нового поля заголовка:
- VIEWPOINT tx ty tz qw qx qy qz
| Элемент перечисления | |
|---|---|
| PCD_V6 | |
| PCD_V7 | |
Описание конструкторов и деструкторов
PCDReader()
| default |
Пустой конструктор.
~PCDReader()
| overridedefault |
Пустой деструктор.
Описание функций-членов
read() [1/3]
| int pcl::PCDReader::read | ( | const std::string & | file_name, |
| pcl::PCLPointCloud2 & | cloud, | ||
| const int |
offset = 0 | ||
| ) |
Читает данные облака точек из файла PCD (PCD_V6) и сохраняет их в pcl/PCLPointCloud2.
- Примечание
- Эта функция предоставляется только для обратной совместимости и корректно считывает только файлы PCD_V6, поскольку pcl::PCLPointCloud2 не содержит сведений о положении и ориентации датчика. При чтении любого файла
PCD_V6 будет выдано предупреждение.
- Параметры
-
[in] file_name имя файла, содержащего данные PointCloud [out] cloud результирующее сообщение PointCloud, считанное с диска [in] offset смещение, указывающее положение заголовка PCD в файле (необязательный параметр). Например, параметр смещения можно задать при чтении данных из TAR-архива, содержащего несколько файлов PCD: в начале файлов TAR всегда добавляется заголовок размером 512 байт, поэтому задайте смещение, равное следующему байту после заголовка (например, 513).
- Возвращаемое значение
-
- < 0 (-1) при ошибке
- == 0 при успехе
read() [2/3]
| overridevirtual |
Читает данные облака точек из файла PCD и сохраняет их в pcl/PCLPointCloud2.
- Параметры
-
[in] file_name имя файла, содержащего данные PointCloud [out] cloud результирующее сообщение PointCloud, считанное с диска [out] origin начало отсчёта датчика при сборе данных (только для версий > PCD_V7; если значение отсутствует, используется нулевой вектор) [out] orientation ориентация датчика при сборе данных (только для версий > PCD_V7; если значение отсутствует, используется единичная ориентация) [out] pcd_version версия файла PCD (PCD_V6 или PCD_V7) [in] offset смещение, указывающее положение заголовка PCD в файле (необязательный параметр). Например, параметр смещения можно задать при чтении данных из TAR-архива, содержащего несколько файлов PCD: в начале файлов TAR всегда добавляется заголовок размером 512 байт, поэтому задайте смещение, равное следующему байту после заголовка (например, 513).
- Возвращаемое значение
-
- < 0 (-1) при ошибке
- == 0 при успехе
Реализует pcl::FileReader.
Используется в pcl::gpu::DataSource::DataSource(), pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::insertRange(), pcl::io::loadPCDFile(), pcl::LineRGBD< PointXYZT, PointRGBT >::loadTemplates() и pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::readRange().
read() [3/3]
| inline |
Читает данные облака точек из любого файла PCD и преобразует их в заданный формат шаблона.
- Параметры
-
[in] file_name имя файла, содержащего данные PointCloud [out] cloud результирующее сообщение PointCloud, считанное с диска [in] offset смещение, указывающее положение заголовка PCD в файле (необязательный параметр). Например, параметр смещения можно задать при чтении данных из TAR-архива, содержащего несколько файлов PCD: в начале файлов TAR всегда добавляется заголовок размером 512 байт, поэтому задайте смещение, равное следующему байту после заголовка (например, 513).
- Возвращаемое значение
-
- < 0 (-1) при ошибке
- == 0 при успехе
Определение в строке 277 файла pcd_io.h.
Ссылается на pcl::fromPCLPointCloud2(), pcl::read(), pcl::PointCloud< PointT >::sensor_orientation_ и pcl::PointCloud< PointT >::sensor_origin_.
readBodyASCII()
| int pcl::PCDReader::readBodyASCII | ( | std::istream & | stream, |
| pcl::PCLPointCloud2 & | cloud, | ||
| int | pcd_version | ||
| ) |
Читает данные облака точек (тело) из потока PCD.
Считывает точки облака из текстового потока. Используется после readHeader(), если результирующее значение data_type == 0.
- Внимание
- Предполагается, что поток был перемещён к позиции, указанной результатом data_idx функции readHeader().
- Параметры
-
[in] stream поток, из которого считывается тело. [out] cloud результирующий набор данных облака точек для заполнения. [in] pcd_version версия PCD для потока (из readHeader()).
- Возвращаемое значение
-
- < 0 (-1) при ошибке
- == 0 при успехе
readBodyBinary()
| int pcl::PCDReader::readBodyBinary | ( | const unsigned char * | data, |
| pcl::PCLPointCloud2 & | cloud, | ||
| int | pcd_version, | ||
| bool | compressed, | ||
| unsigned int | data_idx | ||
| ) |
Чтение данных облака точек (тела) из блока памяти.
Читает точки облака из блока памяти в двоичном формате. Используется после readHeader(), если результирующее значение data_type не равно нулю.
- Параметры
-
[in] data адрес в памяти, откуда следует прочитать тело. [out] cloud заполняемый результирующий набор данных облака точек. [in] pcd_version версия PCD потока (из readHeader()). [in] compressed указывает, содержит ли блок PCD сжатые данные. Значение должно быть true, если data_type, возвращаемое readHeader(), равно 2. [in] data_idx смещение тела, возвращаемое readHeader().
- Возвращает
-
- < 0 (-1) в случае ошибки
- == 0 в случае успеха
readHeader() [1/3]
| int pcl::PCDReader::readHeader | ( | const std::string & | file_name, |
| pcl::PCLPointCloud2 & | cloud, | ||
| const int |
offset = 0 | ||
| ) |
Чтение заголовка данных облака точек из файла PCD.
Загружает из указанного файла PCD только метаинформацию (количество точек, их типы и т. д.), но не сами точки. Это полезно для быстрой оценки базовой структуры данных.
- Внимание
- Данные PCD всегда хранятся в построчном формате! Методы чтения и записи PCD распознают входные данные в постолбцовом формате и автоматически преобразуют их.
- Параметры
-
[in] file_name имя загружаемого файла [out] cloud результирующий набор данных облака точек (будут заполнены только следующие поля: width, height, point_step, row_step, fields[]; размер data будет изменён, но данные записаны не будут) [in] offset смещение, по которому следует искать заголовок PCD в файле (необязательный параметр). Например, этот параметр можно использовать при чтении данных из TAR-архива, содержащего несколько файлов PCD: файлы TAR всегда добавляют 512-байтовый заголовок перед самим файлом, поэтому задайте смещение, равное номеру байта сразу после заголовка (например, 513).
- Возвращает
-
- < 0 (-1) в случае ошибки
- == 0 в случае успеха
readHeader() [2/3]
| overridevirtual |
Чтение заголовка данных облака точек из файла PCD.
Загружает из указанного файла PCD только метаинформацию (количество точек, их типы и т. д.), но не сами точки. Это полезно для быстрой оценки базовой структуры данных.
- Внимание
- Данные PCD всегда хранятся в построчном формате! Методы чтения и записи PCD распознают входные данные в постолбцовом формате и автоматически преобразуют их.
- Параметры
-
[in] file_name имя загружаемого файла [out] cloud результирующий набор данных облака точек (будут заполнены только следующие поля: width, height, point_step, row_step, fields[]; размер data будет изменён, но данные записаны не будут) [out] origin начало отсчёта при получении данных датчиком (только для версий > PCD_V7; если значение отсутствует, используется нулевой вектор) [out] orientation ориентация датчика при получении данных (только для версий > PCD_V7; если значение отсутствует, используется единичный кватернион) [out] pcd_version версия PCD файла (например, PCD_V6, PCD_V7) [out] data_type тип данных (0 = ASCII, 1 = двоичный формат, 2 = сжатый двоичный формат) [out] data_idx смещение данных облака внутри файла [in] offset смещение, по которому следует искать заголовок PCD в файле (необязательный параметр). Например, этот параметр можно использовать при чтении данных из TAR-архива, содержащего несколько файлов PCD: файлы TAR всегда добавляют 512-байтовый заголовок перед самим файлом, поэтому задайте смещение, равное номеру байта сразу после заголовка (например, 513).
- Возвращает
-
- < 0 (-1) в случае ошибки
- == 0 в случае успеха
Реализует pcl::FileReader.
readHeader() [3/3]
| int pcl::PCDReader::readHeader | ( | std::istream & | binary_istream, |
| pcl::PCLPointCloud2 & | cloud, | ||
| Eigen::Vector4f & | origin, | ||
| Eigen::Quaternionf & | orientation, | ||
| int & | pcd_version, | ||
| int & | data_type, | ||
| unsigned int & | data_idx | ||
| ) |
Чтение заголовка данных облака точек из двоичного потока istream в формате PCD.
Загружает из указанного потока PCD только метаинформацию (количество точек, их типы и т. д.), но не сами точки. Это полезно для быстрой оценки базовой структуры данных.
- Внимание
- Данные PCD всегда хранятся в построчном формате! Методы чтения и записи PCD распознают входные данные в постолбцовом формате и автоматически преобразуют их.
- Параметры
-
[in] binary_istream поток std::istream, открытый с флагом std::ios::binary. [out] cloud результирующий набор данных облака точек (будут заполнены только следующие поля: width, height, point_step, row_step, fields[]; размер data будет изменён, но данные записаны не будут) [out] origin начало отсчёта при получении данных датчиком (только для версий > PCD_V7; если значение отсутствует, используется нулевой вектор) [out] orientation ориентация датчика при получении данных (только для версий > PCD_V7; если значение отсутствует, используется единичный кватернион) [out] pcd_version версия PCD файла (например, PCD_V6, PCD_V7) [out] data_type тип данных (0 = ASCII, 1 = двоичный формат, 2 = сжатый двоичный формат) [out] data_idx смещение данных облака внутри файла
- Возвращает
-
- < 0 (-1) в случае ошибки
- == 0 в случае успеха
Используется в pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::getDataSize() и pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::OutofcoreOctreeDiskContainer().
Документация этого класса создана на основе следующего файла:
- pcl/io/pcd_io.h
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_p_c_d_reader.html