IDS peak IPL  v1.7.0
peak::ipl::Image Class Reference

Stores the pixel format, width and height of an image and the pointer to the image buffer. More...

#include <peak_ipl/types/peak_ipl_image.hpp>

Public Member Functions

 Image ()
 Creates an empty image, i.e. with size 0x0 and invalid pixel format. More...
 
 Image (const peak::ipl::PixelFormat &pixelFormat, size_t width, size_t height)
 Creates an image with the given pixel format and size. More...
 
 Image (const peak::ipl::PixelFormat &pixelFormat, uint8_t *buffer, size_t bufferSize, size_t width, size_t height)
 Creates an image with the given pixel format and size from the given buffer. More...
 
 Image (const peak::ipl::PixelFormat &pixelFormat, size_t width, size_t height, uint64_t timestamp_ns)
 Creates an image with the given pixel format, size and timestamp. More...
 
 Image (const peak::ipl::PixelFormat &pixelFormat, uint8_t *buffer, size_t bufferSize, size_t width, size_t height, uint64_t timestamp_ns)
 Creates an image with the given pixel format, size and timestamp from the given buffer. More...
 
 ~Image ()
 
 Image (const Image &other)=delete
 
Image & operator= (const Image &other)=delete
 
 Image (Image &&other) noexcept
 
Image & operator= (Image &&other) noexcept
 
size_t Width () const
 Returns the width. More...
 
size_t Height () const
 Returns the height. More...
 
peak::ipl::Size2D Size () const
 Returns the Size. More...
 
uint8_t * PixelPointer (size_t xPos, size_t yPos) const
 Returns the pixel pointer to the given pixel position in dependency of the size of the pixel format. More...
 
size_t ByteCount () const
 Returns the size of the given image in number of bytes. More...
 
peak::ipl::PixelFormat PixelFormat () const
 Returns the pixel format. More...
 
uint8_t * Data () const
 Returns the pointer to the first pixel position in dependency on the size of the pixel format. More...
 
Image ConvertTo (const peak::ipl::PixelFormat &outputPixelFormat, peak::ipl::ConversionMode conversionMode=peak::ipl::ConversionMode::Fast) const
 Returns a new created image containing the data of the current image converted to the given pixel format. More...
 
Image ConvertTo (const peak::ipl::PixelFormat &outputPixelFormat, uint8_t *outputImageBuffer, size_t outputImageBufferSize, peak::ipl::ConversionMode conversionMode=peak::ipl::ConversionMode::Fast) const
 Saves the data of the current image converted to the given pixel format into a destination buffer and creates an image from that buffer. More...
 
template<typename Integer1 , typename Integer2 , typename std::enable_if_t< std::is_integral< Integer1 >::value, int > = 0, typename std::enable_if_t< std::is_integral< Integer2 >::value, int > = 0>
Image Scale (Integer1 width, Integer2 height, peak::ipl::InterpolationAlgorithm algorithm=InterpolationAlgorithm::linear) const
 Scale the image to the supplied width and height using the supplied algorithm. More...
 
Image Scale (const peak::ipl::Size2D &size, peak::ipl::InterpolationAlgorithm algorithm=InterpolationAlgorithm::linear) const
 Scale the image to the supplied width and height using the supplied algorithm. More...
 
Image Scale (const peak::ipl::ScaleFactor &factor, peak::ipl::InterpolationAlgorithm algorithm=InterpolationAlgorithm::linear) const
 Scale the image to the supplied scale factors factor using the supplied algorithm. More...
 
template<typename FloatingPoint1 , typename FloatingPoint2 , typename std::enable_if_t< std::is_floating_point< FloatingPoint1 >::value, int > = 0, typename std::enable_if_t< std::is_floating_point< FloatingPoint2 >::value, int > = 0>
Image Scale (FloatingPoint1 scaleFactorX, FloatingPoint2 scaleFactorY, peak::ipl::InterpolationAlgorithm algorithm=InterpolationAlgorithm::linear) const
 Scale the image to the supplied scale factors scaleFactorX and scaleFactorY using the supplied algorithm. More...
 
void ScaleInto (const peak::ipl::Size2D &size, uint8_t *buffer, std::size_t bufferSize, peak::ipl::InterpolationAlgorithm algorithm=InterpolationAlgorithm::linear) const
 Scale the image to the supplied width and height using the supplied algorithm and save it into the supplied buffer. More...
 
Image Crop (const peak::ipl::Point2D &pos, const peak::ipl::Size2D &size) const
 Crop the image to the size starting at pos. More...
 
Image Crop (const peak::ipl::Size2D &size) const
 Crop the image to the supplied size. Position is set to (0,0) More...
 
Image Clone () const
 Returns a new created image containing the data of the current image as deep copy. More...
 
bool Empty () const
 Checks whether the image is empty. More...
 
uint64_t Timestamp () const
 The timestamp in nanoseconds. More...
 
bool operator== (const Image &img) const
 Checks whether the image is data wise the same. More...
 
bool operator!= (const Image &img) const
 Checks whether the image is data wise different. More...
 

Detailed Description

Stores the pixel format, width and height of an image and the pointer to the image buffer.

Constructor & Destructor Documentation

◆ Image() [1/7]

peak::ipl::Image::Image ( )
inline

Creates an empty image, i.e. with size 0x0 and invalid pixel format.

Exceptions
ExceptionAn internal error has occurred.
Since
1.1

◆ Image() [2/7]

peak::ipl::Image::Image ( const peak::ipl::PixelFormat &  pixelFormat,
size_t  width,
size_t  height 
)
inline

Creates an image with the given pixel format and size.

Parameters
[in]pixelFormatThe pixel format.
[in]widthThe width.
[in]heightThe height.
Exceptions
OutOfRangeExceptionpixelFormat is valid but width or height is 0.
ExceptionAn internal error has occurred.
Since
1.0

◆ Image() [3/7]

peak::ipl::Image::Image ( const peak::ipl::PixelFormat &  pixelFormat,
uint8_t *  buffer,
size_t  bufferSize,
size_t  width,
size_t  height 
)
inline

Creates an image with the given pixel format and size from the given buffer.

Parameters
[in]pixelFormatThe pixel format.
[in]bufferThe buffer.
[in]bufferSizeThe size of the buffer.
[in]widthThe width.
[in]heightThe height.
Note
The given buffer does not get copied. This is why the buffer must not be freed before the image gets freed.
Exceptions
InvalidArgumentExceptionbufferSize is too small for the specified pixel format and image dimension.
OutOfRangeExceptionpixelFormat is valid but width or height is 0.
ExceptionAn internal error has occurred.
Since
1.0

◆ Image() [4/7]

peak::ipl::Image::Image ( const peak::ipl::PixelFormat &  pixelFormat,
size_t  width,
size_t  height,
uint64_t  timestamp_ns 
)
inline

Creates an image with the given pixel format, size and timestamp.

Parameters
[in]pixelFormatThe pixel format.
[in]widthThe width.
[in]heightThe height.
[in]timestamp_nsThe timestamp in ns.
Exceptions
OutOfRangeExceptionpixelFormat is valid but width or height is 0.
ExceptionAn internal error has occurred.
Since
1.5

◆ Image() [5/7]

peak::ipl::Image::Image ( const peak::ipl::PixelFormat &  pixelFormat,
uint8_t *  buffer,
size_t  bufferSize,
size_t  width,
size_t  height,
uint64_t  timestamp_ns 
)
inline

Creates an image with the given pixel format, size and timestamp from the given buffer.

Parameters
[in]pixelFormatThe pixel format.
[in]bufferThe buffer.
[in]bufferSizeThe size of the buffer.
[in]widthThe width.
[in]heightThe height.
[in]timestamp_nsThe timestamp in ns.
Note
The given buffer does not get copied. This is why the buffer must not be freed before the image gets freed.
Exceptions
InvalidArgumentExceptionbufferSize is too small for the specified pixel format and image dimension.
OutOfRangeExceptionpixelFormat is valid but width or height is 0.
ExceptionAn internal error has occurred.
Since
1.5

◆ ~Image()

peak::ipl::Image::~Image ( )
inline

◆ Image() [6/7]

peak::ipl::Image::Image ( const Image &  other)
delete

◆ Image() [7/7]

peak::ipl::Image::Image ( Image &&  other)
inlinenoexcept

Member Function Documentation

◆ ByteCount()

size_t peak::ipl::Image::ByteCount ( ) const
inline

Returns the size of the given image in number of bytes.

Returns
ByteCount
Exceptions
ExceptionAn internal error has occurred.
Since
1.0

◆ Clone()

Image peak::ipl::Image::Clone ( ) const
inline

Returns a new created image containing the data of the current image as deep copy.

Returns
Copied image
Exceptions
ExceptionAn internal error has occurred.
Since
1.0

◆ ConvertTo() [1/2]

Image peak::ipl::Image::ConvertTo ( const peak::ipl::PixelFormat &  outputPixelFormat,
peak::ipl::ConversionMode  conversionMode = peak::ipl::ConversionMode::Fast 
) const
inline

Returns a new created image containing the data of the current image converted to the given pixel format.

Parameters
[in]outputPixelFormatThe output pixel format.
[in]conversionModeThe conversion mode.
Returns
Converted image
Note
This function allocates memory on every use. For faster processing consider using ImageConverter::Convert instead.
Exceptions
ExceptionAn internal error has occurred.
Since
1.0

◆ ConvertTo() [2/2]

Image peak::ipl::Image::ConvertTo ( const peak::ipl::PixelFormat &  outputPixelFormat,
uint8_t *  outputImageBuffer,
size_t  outputImageBufferSize,
peak::ipl::ConversionMode  conversionMode = peak::ipl::ConversionMode::Fast 
) const
inline

Saves the data of the current image converted to the given pixel format into a destination buffer and creates an image from that buffer.

Parameters
[in]outputPixelFormatThe output pixel format.
[out]outputImageBufferPointer to destination buffer.
[in]outputImageBufferSizeSize of destination buffer.
[in]conversionModeThe conversion mode.
Returns
Converted image
Note
This function allocates memory on every use. For faster processing consider using ImageConverter::Convert instead.
Exceptions
BufferTooSmallExceptionThe provided buffer is too small for the output image.
ExceptionAn internal error has occurred.
Since
1.1

◆ Crop() [1/2]

Image peak::ipl::Image::Crop ( const peak::ipl::Point2D &  pos,
const peak::ipl::Size2D &  size 
) const
inline

Crop the image to the size starting at pos.

Parameters
[in]posthe startting position
[in]sizethe used size
Returns
The cropped image
Exceptions
ExceptionAn internal error has occurred.
Since
1.7

◆ Crop() [2/2]

Image peak::ipl::Image::Crop ( const peak::ipl::Size2D &  size) const
inline

Crop the image to the supplied size. Position is set to (0,0)

Parameters
[in]sizethe output size
Returns
The cropped image
Exceptions
ExceptionAn internal error has occurred.
Since
1.7

◆ Data()

uint8_t * peak::ipl::Image::Data ( ) const
inline

Returns the pointer to the first pixel position in dependency on the size of the pixel format.

Returns
Buffer data.
Exceptions
ExceptionAn internal error has occurred.
Since
1.0

◆ Empty()

bool peak::ipl::Image::Empty ( ) const
inline

Checks whether the image is empty.

An image can be empty if its data have been moved.

Returns
True if image is empty
Since
1.0

◆ Height()

size_t peak::ipl::Image::Height ( ) const
inline

Returns the height.

Returns
Height
Exceptions
ExceptionAn internal error has occurred.
Since
1.0

◆ operator!=()

bool peak::ipl::Image::operator!= ( const Image &  img) const
inline

Checks whether the image is data wise different.

◆ operator=() [1/2]

Image& peak::ipl::Image::operator= ( const Image &  other)
delete

◆ operator=() [2/2]

Image & peak::ipl::Image::operator= ( Image &&  other)
inlinenoexcept

◆ operator==()

bool peak::ipl::Image::operator== ( const Image &  img) const
inline

Checks whether the image is data wise the same.

◆ PixelFormat()

peak::ipl::PixelFormat peak::ipl::Image::PixelFormat ( ) const
inline

Returns the pixel format.

Returns
Pixel format
Exceptions
ExceptionAn internal error has occurred.
Since
1.0

◆ PixelPointer()

uint8_t * peak::ipl::Image::PixelPointer ( size_t  xPos,
size_t  yPos 
) const
inline

Returns the pixel pointer to the given pixel position in dependency of the size of the pixel format.

Parameters
[in]xPosThe x position.
[in]yPosThe y position.
Returns
PixelPointer
Exceptions
OutOfRangeExceptionThe pixel position is outside the image.
ExceptionAn internal error has occurred.
Since
1.0

◆ Scale() [1/4]

template<typename Integer1 , typename Integer2 , typename std::enable_if_t< std::is_integral< Integer1 >::value, int > = 0, typename std::enable_if_t< std::is_integral< Integer2 >::value, int > = 0>
Image peak::ipl::Image::Scale ( Integer1  width,
Integer2  height,
peak::ipl::InterpolationAlgorithm  algorithm = InterpolationAlgorithm::linear 
) const
inline

Scale the image to the supplied width and height using the supplied algorithm.

Parameters
[in]widthoutput image width
[in]heightoutput image height
[in]algorithmthe used interpolation algorithm
Returns
The scaled image
Exceptions
ExceptionAn internal error has occurred.
Since
1.7

◆ Scale() [2/4]

Image peak::ipl::Image::Scale ( const peak::ipl::Size2D &  size,
peak::ipl::InterpolationAlgorithm  algorithm = InterpolationAlgorithm::linear 
) const
inline

Scale the image to the supplied width and height using the supplied algorithm.

Parameters
[in]sizeoutput size of the image
[in]algorithmthe used interpolation algorithm
Returns
The scaled image
Exceptions
ExceptionAn internal error has occurred.
Since
1.7

◆ Scale() [3/4]

Image peak::ipl::Image::Scale ( const peak::ipl::ScaleFactor &  factor,
peak::ipl::InterpolationAlgorithm  algorithm = InterpolationAlgorithm::linear 
) const
inline

Scale the image to the supplied scale factors factor using the supplied algorithm.

Parameters
[in]factoroutput image scale factors
[in]algorithmthe used interpolation algorithm
Returns
The scaled image
Note
the image size is { input_image.width * factor.X, input_image.height * factor.Y }
Exceptions
ExceptionAn internal error has occurred.
Since
1.7

◆ Scale() [4/4]

template<typename FloatingPoint1 , typename FloatingPoint2 , typename std::enable_if_t< std::is_floating_point< FloatingPoint1 >::value, int > = 0, typename std::enable_if_t< std::is_floating_point< FloatingPoint2 >::value, int > = 0>
Image peak::ipl::Image::Scale ( FloatingPoint1  scaleFactorX,
FloatingPoint2  scaleFactorY,
peak::ipl::InterpolationAlgorithm  algorithm = InterpolationAlgorithm::linear 
) const
inline

Scale the image to the supplied scale factors scaleFactorX and scaleFactorY using the supplied algorithm.

Parameters
[in]scaleFactorXoutput image scale factor for width
[in]scaleFactorYoutput image scale factor for height
[in]algorithmthe used interpolation algorithm
Returns
The scaled image
Note
the image size is { input_image.width * scaleFactorX, input_image.height * scaleFactorY }
Exceptions
ExceptionAn internal error has occurred.
Since
1.7

◆ ScaleInto()

void peak::ipl::Image::ScaleInto ( const peak::ipl::Size2D &  size,
uint8_t *  buffer,
std::size_t  bufferSize,
peak::ipl::InterpolationAlgorithm  algorithm = InterpolationAlgorithm::linear 
) const
inline

Scale the image to the supplied width and height using the supplied algorithm and save it into the supplied buffer.

Parameters
[in]sizeoutput size of the image
[in]bufferthe used interpolation algorithm
[in]bufferSizethe used interpolation algorithm
[in]algorithmthe used interpolation algorithm

REMOVE ME if it isn't faster

Exceptions
ExceptionAn internal error has occurred.
Since
1.7

◆ Size()

peak::ipl::Size2D peak::ipl::Image::Size ( ) const
inline

Returns the Size.

Returns
Size
Exceptions
ExceptionAn internal error has occurred.
Since
1.7

◆ Timestamp()

uint64_t peak::ipl::Image::Timestamp ( ) const
inline

The timestamp in nanoseconds.

The point in camera time at which the image was exposed.

Returns
Timestamp in nanoseconds
Since
1.6

◆ Width()

size_t peak::ipl::Image::Width ( ) const
inline

Returns the width.

Returns
Width
Exceptions
ExceptionAn internal error has occurred.
Since
1.0

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