Gazebo Common

API Reference

6.0.0

Encapsulates an image. More...

#include <gz/common/common.hh>

Public Types

enum  PixelFormatType {
  UNKNOWN_PIXEL_FORMAT = 0 , L_INT8 , L_INT16 , RGB_INT8 ,
  RGBA_INT8 , BGRA_INT8 , RGB_INT16 , RGB_INT32 ,
  BGR_INT8 , BGR_INT16 , BGR_INT32 , R_FLOAT16 ,
  RGB_FLOAT16 , R_FLOAT32 , RGB_FLOAT32 , BAYER_RGGB8 ,
  BAYER_BGGR8 , BAYER_GBRG8 , BAYER_GRBG8 , COMPRESSED_PNG ,
  PIXEL_FORMAT_COUNT , COMPRESSED_JPEG
}
 Pixel formats enumeration. More...
 

Public Member Functions

 Image (const std::string &_filename="")
 Constructor.
 
virtual ~Image ()
 Destructor.
 
math::Color AvgColor () const
 Get the average color.
 
unsigned int BPP () const
 Get the size of one pixel in bits.
 
std::vector< unsigned char > Data () const
 Get the image as a data array.
 
std::string Filename () const
 Get the full filename of the image.
 
unsigned int Height () const
 Get the height.
 
int Load (const std::string &_filename)
 Load an image. Return 0 on success.
 
math::Color MaxColor () const
 Get the max color.
 
int Pitch () const
 
math::Color Pixel (const unsigned int _x, const unsigned int _y) const
 Get a pixel color value.
 
PixelFormatType PixelFormat () const
 Get the pixel format.
 
void Rescale (const int _width, const int _height)
 Rescale the image.
 
std::vector< unsigned char > RGBAData () const
 Get the RGBA data from the image. This will add an alpha channel if one is not present.
 
std::vector< unsigned char > RGBData () const
 Get only the RGB data from the image. This will drop the alpha channel if one is present.
 
void SavePNG (const std::string &_filename)
 Save the image in PNG format.
 
void SavePNGToBuffer (std::vector< unsigned char > &_buffer)
 Get the PNG image in a buffer.
 
void SetFromCompressedData (unsigned char *_data, unsigned int _size, Image::PixelFormatType _format)
 Set the image from compressed (i.e. png) data.
 
void SetFromData (const unsigned char *_data, unsigned int _width, unsigned int _height, Image::PixelFormatType _format)
 Set the image from raw data.
 
bool Valid () const
 Returns whether this is a valid image.
 
unsigned int Width () const
 Get the width.
 

Static Public Member Functions

static Image::PixelFormatType ConvertPixelFormat (const std::string &_format)
 Convert a string to a Image::PixelFormat.
 
template<typename T >
static void ConvertToRGBImage (const void *_data, unsigned int _width, unsigned int _height, Image &_output, T _min=std::numeric_limits< T >::max(), T _max=std::numeric_limits< T >::lowest(), bool _flip=false)
 Convert a single channel image data buffer into an RGB image. During the conversion, the input image data are normalized to 8 bit values i.e. [0, 255]. Optionally, specify min and max values to use when normalizing the input image data. For example, if min and max are set to 1 and 10, a data value 2 will be normalized to: (2 - 1) / (10 - 1) * 255.
 

Detailed Description

Encapsulates an image.

Member Enumeration Documentation

◆ PixelFormatType

Pixel formats enumeration.

Enumerator
UNKNOWN_PIXEL_FORMAT 
L_INT8 
L_INT16 
RGB_INT8 
RGBA_INT8 
BGRA_INT8 
RGB_INT16 
RGB_INT32 
BGR_INT8 
BGR_INT16 
BGR_INT32 
R_FLOAT16 
RGB_FLOAT16 
R_FLOAT32 
RGB_FLOAT32 
BAYER_RGGB8 
BAYER_BGGR8 
BAYER_GBRG8 
BAYER_GRBG8 
COMPRESSED_PNG 
PIXEL_FORMAT_COUNT 
COMPRESSED_JPEG 

Constructor & Destructor Documentation

◆ Image()

Image ( const std::string _filename = "")
explicit

Constructor.

Parameters
[in]_filenamethe path to the image

◆ ~Image()

virtual ~Image ( )
virtual

Destructor.

Member Function Documentation

◆ AvgColor()

math::Color AvgColor ( ) const

Get the average color.

Returns
The average color

◆ BPP()

unsigned int BPP ( ) const

Get the size of one pixel in bits.

Returns
The BPP of the image

◆ ConvertPixelFormat()

static Image::PixelFormatType ConvertPixelFormat ( const std::string _format)
static

Convert a string to a Image::PixelFormat.

Parameters
[in]_formatPixel format string.
See also
Image::PixelFormatNames
Returns
Image::PixelFormat

◆ ConvertToRGBImage()

template<typename T >
static void ConvertToRGBImage ( const void *  _data,
unsigned int  _width,
unsigned int  _height,
Image _output,
_min = std::numeric_limits<T>::max(),
_max = std::numeric_limits<T>::lowest(),
bool  _flip = false 
)
inlinestatic

Convert a single channel image data buffer into an RGB image. During the conversion, the input image data are normalized to 8 bit values i.e. [0, 255]. Optionally, specify min and max values to use when normalizing the input image data. For example, if min and max are set to 1 and 10, a data value 2 will be normalized to: (2 - 1) / (10 - 1) * 255.

Parameters
[in]_datainput image data buffer
[in]_widthimage width
[in]_heightimage height
[out]_outputOutput RGB image
[in]_minMinimum value to be used when normalizing the input image data to RGB.
[in]_maxMaximum value to be used when normalizing the input image data to RGB.
[in]_flipTrue to flip the values after normalization, i.e. lower values are converted to brigher pixels.

References gz::math::equal(), std::isinf(), numeric_limits::lowest(), numeric_limits::max(), and Image::SetFromData().

◆ Data()

std::vector< unsigned char > Data ( ) const

Get the image as a data array.

Returns
The image data

◆ Filename()

std::string Filename ( ) const

Get the full filename of the image.

Returns
The filename used to load the image

◆ Height()

unsigned int Height ( ) const

Get the height.

Returns
The image height

◆ Load()

int Load ( const std::string _filename)

Load an image. Return 0 on success.

Parameters
[in]_filenamethe path to the image file
Returns
0 when the operation succeeds to open a file or -1 when fails.

◆ MaxColor()

math::Color MaxColor ( ) const

Get the max color.

Returns
The max color

◆ Pitch()

int Pitch ( ) const
Returns
The pitch of the image

◆ Pixel()

math::Color Pixel ( const unsigned int  _x,
const unsigned int  _y 
) const

Get a pixel color value.

Parameters
[in]_xColumn location in the image
[in]_yRow location in the image
Returns
The color of the given pixel

◆ PixelFormat()

PixelFormatType PixelFormat ( ) const

Get the pixel format.

Returns
PixelFormat

◆ Rescale()

void Rescale ( const int  _width,
const int  _height 
)

Rescale the image.

Parameters
[in]_widthNew image width
[in]_heightNew image height

◆ RGBAData()

std::vector< unsigned char > RGBAData ( ) const

Get the RGBA data from the image. This will add an alpha channel if one is not present.

Returns
The image RGBA data

◆ RGBData()

std::vector< unsigned char > RGBData ( ) const

Get only the RGB data from the image. This will drop the alpha channel if one is present.

Returns
The image RGB data

◆ SavePNG()

void SavePNG ( const std::string _filename)

Save the image in PNG format.

Parameters
[in]_filenameThe name of the saved image

◆ SavePNGToBuffer()

void SavePNGToBuffer ( std::vector< unsigned char > &  _buffer)

Get the PNG image in a buffer.

Parameters
[out]_bufferBuffer with the data

◆ SetFromCompressedData()

void SetFromCompressedData ( unsigned char *  _data,
unsigned int  _size,
Image::PixelFormatType  _format 
)

Set the image from compressed (i.e. png) data.

Parameters
[in]_dataPointer to the raw image data
[in]_sizeSize of the buffer
[in]_formatPixel format of the provided data

◆ SetFromData()

void SetFromData ( const unsigned char *  _data,
unsigned int  _width,
unsigned int  _height,
Image::PixelFormatType  _format 
)

Set the image from raw data.

Parameters
[in]_dataPointer to the raw image data
[in]_widthWidth in pixels
[in]_heightHeight in pixels
[in]_formatPixel format of the provided data

Referenced by Image::ConvertToRGBImage().

◆ Valid()

bool Valid ( ) const

Returns whether this is a valid image.

Returns
true if image has a bitmap

◆ Width()

unsigned int Width ( ) const

Get the width.

Returns
The image width

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