Spec-Zone.ru › PointCloudLibrary

Чтение файлов формата Point Cloud Data (PCD). Подробнее...

#include <pcl/io/pcd_io.h>

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

Общедоступные типы

Перечисление { 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)
Чтение заголовка данных облака точек из бинарного потока в формате 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 и преобразование в указанный шаблонный формат. Подробнее...
- Общедоступные члены-функции унаследованные от pcl::FileReader
FileReader ()=default
пустой конструктор Подробнее...
virtual ~FileReader ()=default
пустой деструктор Подробнее...
int read (const std::string &file_name, pcl::PCLPointCloud2 &cloud, const int offset=0)
Чтение данных облака точек из файла (только FILE_V6!) и сохранение их в pcl/PCLPointCloud2. Подробнее...
template<typename PointT >
int read (const std::string &file_name, pcl::PointCloud< PointT > &cloud, const int offset=0)
Чтение данных облака точек из любого файла и преобразование в указанный шаблонный формат. Подробнее...

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

Чтение файла данных облака точек (PCD) в формате.

Автор
Radu B. Rusu

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

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

безымянный перечисление

безымянный перечисление

Различные версии файлов 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

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

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

PCDReader()

pcl::PCDReader::PCDReader ( )
по умолчанию

Конструктор по умолчанию.

~PCDReader()

pcl::PCDReader::~PCDReader ( )
переопределенопо умолчанию

Деструктор по умолчанию.

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

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]

int pcl::PCDReader::read ( const std::string & file_name,
pcl::PCLPointCloud2 & cloud,
Eigen::Vector4f & origin,
Eigen::Quaternionf & orientation,
int & pcd_version,
const int offset = 0
)
переопределеновиртуальный

Чтение данных облака точек из файла PCD и сохранение их в pcl/PCLPointCloud2.

Параметры
[in] file_name имя файла, содержащего фактические данные PointCloud
[out] cloud результирующее сообщение PointCloud, считанное с диска
[out] origin начало датчика (только для > PCD_V7 — null, если отсутствует)
[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]

template<typename PointT >
int pcl::PCDReader::read ( const std::string & file_name,
pcl::PointCloud< PointT > & cloud,
const int offset = 0
)
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 сжатые данные. Должно быть истинным, если 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 всегда хранятся в формате ROW-major! Методы read/write PCD будут распознавать входной формат column-major и автоматически преобразовывать его.
Параметры
[in] file_name имя файла для загрузки
[out] cloud результирующий набор данных облака точек (только эти члены будут заполнены: width, height, point_step, row_step, fields[]; данные изменят размер, но не будут записаны)
[in] offset смещение, где ожидается заголовок PCD в файле (необязательный параметр). Один пример использования параметра смещения — чтение данных из TAR-«архива», содержащего несколько файлов PCD: файлы TAR всегда добавляют заголовок размером 512 байт перед фактическим файлом, поэтому смещение устанавливается на следующий байт после заголовка (например, 513).
Возвращает
  • < 0 (-1) при ошибке
  • == 0 при успехе

readHeader() [2/3]

int pcl::PCDReader::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
)
overridevirtual

Чтение заголовка данных облака точек из файла PCD.

Загрузка только метаинформации (количество точек, их типы и т. д.), а не самих точек из заданного файла PCD. Полезно для быстрого анализа структуры данных.

Внимание
Данные PCD всегда хранятся в формате ROW-major! Методы чтения/записи PCD будут обнаруживать входной формат column-major и автоматически преобразовывать его.
Параметры
[in] file_name имя файла для загрузки
[out] cloud результирующее облако точек (будут заполнены только эти члены: ширина, высота, шаг_точки, шаг_строки, поля[]; данные изменят размер, но не будут записаны)
[out] origin начальная точка датчика (только для > PCD_V7 - null, если отсутствует)
[out] orientation ориентация датчика (только для > PCD_V7 - единичная матрица, если отсутствует)
[out] pcd_version версия PCD файла (например, PCD_V6, PCD_V7)
[out] data_type тип данных (0 = ASCII, 1 = Binary, 2 = Binary сжатый)
[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
)

Чтение заголовка данных облака точек из бинарного потока в формате PCD.

Загрузка только метаинформации (количество точек, их типы и т. д.), а не самих точек из заданного потока PCD. Полезно для быстрого анализа структуры данных.

Внимание
Данные PCD всегда хранятся в формате ROW-major! Методы чтения/записи PCD будут обнаруживать входной формат column-major и автоматически преобразовывать его.
Параметры
[in] binary_istream std::istream с открытым режимом std::ios::binary.
[out] cloud результирующее облако точек (будут заполнены только эти члены: ширина, высота, шаг_точки, шаг_строки, поля[]; данные изменят размер, но не будут записаны)
[out] origin начальная точка датчика (только для > PCD_V7 - null, если отсутствует)
[out] orientation ориентация датчика (только для > PCD_V7 - единичная матрица, если отсутствует)
[out] pcd_version версия PCD файла (например, PCD_V6, PCD_V7)
[out] data_type тип данных (0 = ASCII, 1 = Binary, 2 = Binary сжатый)
[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

Spec-Zone.ru

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