Spec-Zone.ru › PointCloudLibrary

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

#include <pcl/io/pcd_io.h>

Inheritance graph
[обозначения]
Collaboration graph
[обозначения]

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

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 и преобразует их в заданный формат шаблона. Подробнее...
- Открытые функции-члены, унаследованные от pcl::FileReader
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 и преобразует их в заданный формат шаблона. Подробнее...

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

Средство чтения файлов в формате Point Cloud Data (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 ( )
default

Пустой конструктор.

~PCDReader()

pcl::PCDReader::~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]

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
)
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]

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 сжатые данные. Значение должно быть 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]

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 всегда хранятся в построчном формате! Методы чтения и записи 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

Spec-Zone.ru

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