Ignition Common

API Reference

4.5.0

Encapsulates an image. More...

#include <ignition/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, PIXEL_FORMAT_COUNT
}
 Pixel formats enumeration. More...
 

Public Member Functions

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

Static Public Member Functions

static Image::PixelFormatType ConvertPixelFormat (const std::string &_format)
 Convert a string to a Image::PixelFormat. More...
 
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. More...
 

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 
PIXEL_FORMAT_COUNT 

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

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

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 vector< T >::data(), ignition::math::equal(), std::isinf(), numeric_limits::lowest(), numeric_limits::max(), and Image::SetFromData().

◆ Data()

void Data ( unsigned char **  _data,
unsigned int &  _count 
)

Get the image as a data array.

Parameters
[out]_dataPointer to a NULL array of char.
[out]_countThe resulting data array size

◆ 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

◆ RGBData()

void RGBData ( unsigned char **  _data,
unsigned int &  _count 
)

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

Parameters
[out]_dataPointer to a NULL array of char.
[out]_countThe resulting data array size

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

Save the image in PNG format.

Parameters
[in]_filenameThe name of the saved image

◆ 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: