Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::io::LZFImageReader Class Reference

PCL-LZF image format reader. More...

#include <pcl/io/lzf_image_io.h>

+ Inheritance diagram for pcl::io::LZFImageReader:
+ Collaboration diagram for pcl::io::LZFImageReader:

Public Member Functions

 LZFImageReader ()
 Empty constructor. More...
 
virtual ~LZFImageReader ()=default
 Empty destructor. More...
 
bool readParameters (const std::string &filename)
 Read camera parameters from a given file and store them internally. More...
 
void setParameters (const CameraParameters &parameters)
 Read the parameters from a struct instead. More...
 
CameraParameters getParameters () const
 Get the camera parameters currently being used returns a CameraParameters struct. More...
 
std::uint32_t getWidth () const
 Get the image width as read from disk. More...
 
std::uint32_t getHeight () const
 Get the image height as read from disk. More...
 
std::string getImageType () const
 Get the type of the image read from disk. More...
 

Protected Member Functions

virtual bool readParameters (std::istream &)
 Read camera parameters from a given stream and store them internally. More...
 
bool loadImageBlob (const std::string &filename, std::vector< char > &data, std::uint32_t &uncompressed_size)
 Load a compressed image array from disk. More...
 
bool decompress (const std::vector< char > &input, std::vector< char > &output)
 Realtime LZF decompression. More...
 

Protected Attributes

std::uint32_t width_ {0}
 The image width, as read from the file. More...
 
std::uint32_t height_ {0}
 The image height, as read from the file. More...
 
std::string image_type_identifier_
 The image type string, as read from the file. More...
 
CameraParameters parameters_
 Internal set of camera parameters. More...
 

Detailed Description

PCL-LZF image format reader.

The PCL-LZF image format is nothing else but a LZF-modified compression over an existing file type (e.g., PNG). However, in certain situations, like RGB data for example, an [RGBRGB...RGB] array will be first reordered into [RR...RGG...GBB...B] in order to ensure better compression.

The current list of compressors/decompressors include:

Please note that files found using the above mentioned extensions will be treated as such. Inherit from this class and overwrite the I/O methods if you plan to change this behavior.

The main advantage of using the PCL-LZF image I/O routines is a very good file size versus I/O speed ratio. Tests performed using LZF, Snappy, ZIP, GZ2, BZIP2, as well as PNG, JPEG, and TIFF compression have shown that the internal PCL LZF methods provide the best score for the types of applications PCL is suited for.

Author
Radu B. Rusu

Definition at line 85 of file lzf_image_io.h.

Constructor & Destructor Documentation

◆ LZFImageReader()

pcl::io::LZFImageReader::LZFImageReader ( )

Empty constructor.

◆ ~LZFImageReader()

virtual pcl::io::LZFImageReader::~LZFImageReader ( )
virtualdefault

Empty destructor.

Member Function Documentation

◆ decompress()

bool pcl::io::LZFImageReader::decompress ( const std::vector< char > &  input,
std::vector< char > &  output 
)
protected

◆ getHeight()

std::uint32_t pcl::io::LZFImageReader::getHeight ( ) const
inline

◆ getImageType()

std::string pcl::io::LZFImageReader::getImageType ( ) const
inline

◆ getParameters()

CameraParameters pcl::io::LZFImageReader::getParameters ( ) const
inline

Get the camera parameters currently being used returns a CameraParameters struct.

Definition at line 110 of file lzf_image_io.h.

◆ getWidth()

std::uint32_t pcl::io::LZFImageReader::getWidth ( ) const
inline

◆ loadImageBlob()

bool pcl::io::LZFImageReader::loadImageBlob ( const std::string &  filename,
std::vector< char > &  data,
std::uint32_t &  uncompressed_size 
)
protected

Load a compressed image array from disk.

Parameters
[in]filenamethe file name to load the data from
[out]datathe size of the data
uncompressed_size
Returns
an array filled with the data loaded from disk, NULL if error

Referenced by pcl::io::LZFDepth16ImageReader::read(), pcl::io::LZFRGB24ImageReader::read(), pcl::io::LZFYUV422ImageReader::read(), pcl::io::LZFBayer8ImageReader::read(), pcl::io::LZFDepth16ImageReader::readOMP(), pcl::io::LZFRGB24ImageReader::readOMP(), pcl::io::LZFYUV422ImageReader::readOMP(), and pcl::io::LZFBayer8ImageReader::readOMP().

◆ readParameters() [1/2]

bool pcl::io::LZFImageReader::readParameters ( const std::string &  filename)

Read camera parameters from a given file and store them internally.

Returns
true if operation successful, false otherwise

◆ readParameters() [2/2]

virtual bool pcl::io::LZFImageReader::readParameters ( std::istream &  )
inlineprotectedvirtual

Read camera parameters from a given stream and store them internally.

Returns
true if operation successful, false otherwise

Reimplemented in pcl::io::LZFRGB24ImageReader, and pcl::io::LZFDepth16ImageReader.

Definition at line 141 of file lzf_image_io.h.

◆ setParameters()

void pcl::io::LZFImageReader::setParameters ( const CameraParameters parameters)
inline

Read the parameters from a struct instead.

Parameters
[in]parametersCamera parameters to use

Definition at line 102 of file lzf_image_io.h.

Member Data Documentation

◆ height_

std::uint32_t pcl::io::LZFImageReader::height_ {0}
protected

The image height, as read from the file.

Definition at line 167 of file lzf_image_io.h.

◆ image_type_identifier_

std::string pcl::io::LZFImageReader::image_type_identifier_
protected

The image type string, as read from the file.

Definition at line 170 of file lzf_image_io.h.

◆ parameters_

CameraParameters pcl::io::LZFImageReader::parameters_
protected

Internal set of camera parameters.

Definition at line 173 of file lzf_image_io.h.

Referenced by pcl::io::LZFDepth16ImageReader::read(), and pcl::io::LZFDepth16ImageReader::readOMP().

◆ width_

std::uint32_t pcl::io::LZFImageReader::width_ {0}
protected

The image width, as read from the file.

Definition at line 164 of file lzf_image_io.h.


The documentation for this class was generated from the following file: