Spinnaker SDK C++
4.2.0.21
 
 

 
Loading...
Searching...
No Matches
ImageProcessor Class Reference

Image post processing class for converting a source image to another pixel format. More...

#include <ImageProcessor.h>

Inheritance diagram for ImageProcessor:
IImageProcessor

Public Member Functions

 ImageProcessor ()
 Default constructor.
 
virtual ~ImageProcessor ()
 Default destructor.
 
 ImageProcessor (const ImageProcessor &processor)
 Copy constructor.
 
ImageProcessoroperator= (const ImageProcessor &processor)
 Assignment operator.
 
void SetColorProcessing (ColorProcessingAlgorithm colorAlgorithm)
 Sets the color processing algorithm used at the time of the Convert() call, therefore the most recent execution of this function will take precedence.
 
ColorProcessingAlgorithm GetColorProcessing ()
 Gets the default color processing algorithm.
 
void SetNumDecompressionThreads (unsigned int numThreads)
 Sets the default number of threads used for image decompression during Convert().
 
unsigned int GetNumDecompressionThreads ()
 Gets the number of threads used for image decompression during Convert().
 
ImagePtr Convert (const ImagePtr &srcImage, PixelFormatEnums destFormat) const
 Converts the source image buffer to the specified destination pixel format and returns the result in a new image.
 
void Convert (const ImagePtr &srcImage, ImagePtr &destImage, PixelFormatEnums destFormat) const
 Converts the source image buffer to the specified destination pixel format and stores the result in the destination image.
 
ImagePtr Convert (const ImageList &srcImageList, PixelFormatEnums destFormat) const
 Converts the source list of image buffers to the specified output pixel format and returns the result in a new image.
 
void Convert (const ImageList &srcImageList, ImagePtr &destImage, PixelFormatEnums destFormat) const
 Converts the source list of image buffers to the specified output pixel format and returns the result in a new image.
 
ImagePtr ApplyGamma (const ImagePtr &srcImage, float gamma, bool applyGammaInverse=false) const
 Applies gamma correction to the source image and returns a new image.
 
void ApplyGamma (const ImagePtr &srcImage, ImagePtr &destImage, float gamma, bool applyGammaInverse=false) const
 Applies gamma correction to the source image and stores the result in the destination image.
 
- Public Member Functions inherited from IImageProcessor
virtual ~IImageProcessor (void)
 
virtual void SetColorProcessing (ColorProcessingAlgorithm colorAlgorithm)=0
 
virtual ColorProcessingAlgorithm GetColorProcessing ()=0
 
virtual void SetNumDecompressionThreads (unsigned int numThreads)=0
 
virtual unsigned int GetNumDecompressionThreads ()=0
 
virtual ImagePtr Convert (const ImagePtr &srcImage, PixelFormatEnums destFormat) const =0
 
virtual void Convert (const ImagePtr &srcImage, ImagePtr &destImage, PixelFormatEnums destFormat) const =0
 
virtual ImagePtr Convert (const ImageList &srcImageList, PixelFormatEnums destFormat) const =0
 
virtual void Convert (const ImageList &srcImageList, ImagePtr &destImage, PixelFormatEnums destFormat) const =0
 
virtual ImagePtr ApplyGamma (const ImagePtr &srcImage, float gamma, bool isGammaInverse=false) const =0
 
virtual void ApplyGamma (const ImagePtr &srcImage, ImagePtr &destImage, float gamma, bool isGammaInverse=false) const =0
 

Protected Member Functions

void Convert (const Image *pSrcImage, Image *pDestImage, PixelFormatEnums destFormat) const
 
- Protected Member Functions inherited from IImageProcessor
 IImageProcessor ()
 
 IImageProcessor (const IImageProcessor &)
 
IImageProcessoroperator= (const IImageProcessor &)
 

Friends

class ImageFiler
 

Additional Inherited Members

- Protected Attributes inherited from IImageProcessor
ImageProcessorData * m_pImageProcessorData
 

Detailed Description

Image post processing class for converting a source image to another pixel format.

All supported input image pixel formats can be converted to supported output image pixel formats. If the input pixel format is a compressed format, the decompression will occur before converting to the output pixel format.

List of supported input image pixel formats:

  • PixelFormat_Mono8
  • PixelFormat_Mono16
  • PixelFormat_BayerGR8
  • PixelFormat_BayerRG8
  • PixelFormat_BayerGB8
  • PixelFormat_BayerBG8
  • PixelFormat_BayerGR16
  • PixelFormat_BayerRG16
  • PixelFormat_BayerGB16
  • PixelFormat_BayerBG16
  • PixelFormat_Mono12Packed
  • PixelFormat_BayerGR12Packed
  • PixelFormat_BayerRG12Packed
  • PixelFormat_BayerGB12Packed
  • PixelFormat_BayerBG12Packed
  • PixelFormat_YUV411Packed
  • PixelFormat_YUV422Packed
  • PixelFormat_YUV444Packed
  • PixelFormat_Mono12p
  • PixelFormat_BayerGR12p
  • PixelFormat_BayerRG12p
  • PixelFormat_BayerGB12p
  • PixelFormat_BayerBG12p
  • PixelFormat_YCbCr8
  • PixelFormat_YCbCr422_8
  • PixelFormat_YCbCr411_8
  • PixelFormat_BGR8
  • PixelFormat_BGRa8
  • PixelFormat_Mono10Packed
  • PixelFormat_BayerGR10Packed
  • PixelFormat_BayerRG10Packed
  • PixelFormat_BayerGB10Packed
  • PixelFormat_BayerBG10Packed
  • PixelFormat_Mono10p
  • PixelFormat_BayerGR10p
  • PixelFormat_BayerRG10p
  • PixelFormat_BayerGB10p
  • PixelFormat_BayerBG10p
  • PixelFormat_Mono10
  • PixelFormat_Mono12
  • PixelFormat_Mono14
  • PixelFormat_BayerBG10
  • PixelFormat_BayerBG12
  • PixelFormat_BayerGB10
  • PixelFormat_BayerGB12
  • PixelFormat_BayerGR10
  • PixelFormat_BayerGR12
  • PixelFormat_BayerRG10
  • PixelFormat_BayerRG12
  • PixelFormat_RGBa8
  • PixelFormat_RGB8
  • PixelFormat_BGR16
  • PixelFormat_R12
  • PixelFormat_G12
  • PixelFormat_B12
  • PixelFormat_YUV8_UYV
  • PixelFormat_YUV411_8_UYYVYY
  • PixelFormat_YUV422_8
  • PixelFormat_Polarized8
  • PixelFormat_Polarized10p
  • PixelFormat_Polarized12p
  • PixelFormat_Polarized16
  • PixelFormat_BayerRGPolarized8
  • PixelFormat_BayerRGPolarized10p
  • PixelFormat_BayerRGPolarized12p
  • PixelFormat_BayerRGPolarized16
  • PixelFormat_LLCMono8
  • PixelFormat_LLCBayerRG8
  • PixelFormat_JPEGMono8
  • PixelFormat_JPEGColor8
  • PixelFormat_Raw16
  • PixelFormat_Raw8
  • PixelFormat_R12_Jpeg
  • PixelFormat_GR12_Jpeg
  • PixelFormat_GB12_Jpeg
  • PixelFormat_B12_Jpeg

List of supported output image pixel formats

  • PixelFormat_Mono8
  • PixelFormat_Mono16
  • PixelFormat_BayerBG8
  • PixelFormat_BayerGB8
  • PixelFormat_BayerRG8
  • PixelFormat_BayerGR8
  • PixelFormat_BayerBG16
  • PixelFormat_BayerGB16
  • PixelFormat_BayerRG16
  • PixelFormat_BayerGR16
  • PixelFormat_BGR8
  • PixelFormat_BGRa8
  • PixelFormat_RGB8
  • PixelFormat_RGBa8
  • PixelFormat_BGR16
  • PixelFormat_RGB16
  • PixelFormat_R12
  • PixelFormat_G12
  • PixelFormat_B12
Examples
Acquisition.cpp, AcquisitionMultipleThread.cpp, AcquisitionUserBuffer.cpp, Compression.cpp, CounterAndTimer.cpp, Exposure.cpp, ImageFormatControl.cpp, ImageFormatControl_QuickSpin.cpp, LogicBlock.cpp, SaveToVideo.cpp, Trigger.cpp, and Trigger_QuickSpin.cpp.

Constructor & Destructor Documentation

◆ ImageProcessor() [1/2]

Default constructor.

◆ ~ImageProcessor()

virtual ~ImageProcessor ( )
virtual

Default destructor.

◆ ImageProcessor() [2/2]

ImageProcessor ( const ImageProcessor processor)

Copy constructor.

Member Function Documentation

◆ ApplyGamma() [1/2]

ImagePtr ApplyGamma ( const ImagePtr srcImage,
float  gamma,
bool  applyGammaInverse = false 
) const
virtual

Applies gamma correction to the source image and returns a new image.

Parameters
srcImageThe source image from which to apply gamma on.
gammaGamma value to apply. A value between 0.5 and 4 is acceptable. (Default assuming image-to-screen)
applyGammaInverseConverts a gamma corrected source image back to the original image using the inverse of the gamma value (used for applying screen-to-image gamma)

Implements IImageProcessor.

◆ ApplyGamma() [2/2]

void ApplyGamma ( const ImagePtr srcImage,
ImagePtr destImage,
float  gamma,
bool  applyGammaInverse = false 
) const
virtual

Applies gamma correction to the source image and stores the result in the destination image.

Parameters
srcImageThe source image from which to apply gamma on.
destImageThe destination image in which the gamma applied image data will be stored.
gammaGamma value to apply. A value between 0.5 and 4 is acceptable. (Default assuming image-to-screen)
applyGammaInverseConverts a gamma corrected source image back to the original image using the inverse of the gamma value (used for applying screen-to-image gamma)

Implements IImageProcessor.

◆ Convert() [1/5]

void Convert ( const Image pSrcImage,
Image pDestImage,
PixelFormatEnums  destFormat 
) const
protected

◆ Convert() [2/5]

void Convert ( const ImageList srcImageList,
ImagePtr destImage,
PixelFormatEnums  destFormat 
) const
virtual

Converts the source list of image buffers to the specified output pixel format and returns the result in a new image.

The conversion could encompasses decompression, interleaving and conversion of image data depending on the source pixel format of images in the source image list. The destination image needs to be configured to have the correct buffer size before calling this function. See ResetImage() to setup the correct buffer size according to specified pixel format.

Note that compressed images are decompressed before any further color processing, interleaving or conversion is performed. Decompression is multi-threaded and defaults to utilizing one less than the number of concurrent threads supported by the system. The default number of decompression threads can be set with SetNumDecompressionThreads().

Note not all the supported image pixel formats described in the class description are supported in this function.

List of supported image pixel formats for the source image list:

  • PixelFormat_R12
  • PixelFormat_GR12
  • PixelFormat_GB12
  • PixelFormat_B12
  • PixelFormat_R12_Jpeg
  • PixelFormat_GR12_Jpeg
  • PixelFormat_GB12_Jpeg
  • PixelFormat_B12_Jpeg
See also
PixelFormatEnums
ResetImage
SetNumDecompressionThreads
Parameters
srcImageListList of images from which to convert the images from.
destImageThe destination image in which the converted image data will be stored.
destFormatOutput format of the converted image.

Implements IImageProcessor.

◆ Convert() [3/5]

ImagePtr Convert ( const ImageList srcImageList,
PixelFormatEnums  destFormat 
) const
virtual

Converts the source list of image buffers to the specified output pixel format and returns the result in a new image.

The conversion could encompasses decompression, interleaving and conversion of image data depending on the source pixel format of images in the source image list. The destination image does not need to be configured in any way before the call is made.

Note that compressed images are decompressed before any further color processing, interleaving or conversion is performed. Decompression is multi-threaded and defaults to utilizing one less than the number of concurrent threads supported by the system. The default number of decompression threads can be set with SetNumDecompressionThreads().

Note not all the supported image pixel formats described in the class description are supported in this function.

List of supported image pixel formats for the source image list:

  • PixelFormat_R12
  • PixelFormat_GR12
  • PixelFormat_GB12
  • PixelFormat_B12
  • PixelFormat_R12_Jpeg
  • PixelFormat_GR12_Jpeg
  • PixelFormat_GB12_Jpeg
  • PixelFormat_B12_Jpeg
See also
PixelFormatEnums
SetNumDecompressionThreads
Parameters
srcImageListList of images from which to convert the images from.
destFormatOutput format of the converted image.
Returns
The converted image.

Implements IImageProcessor.

◆ Convert() [4/5]

void Convert ( const ImagePtr srcImage,
ImagePtr destImage,
PixelFormatEnums  destFormat 
) const
virtual

Converts the source image buffer to the specified destination pixel format and stores the result in the destination image.

The destination image needs to be configured to have the correct buffer size before calling this function. See ResetImage() to setup the correct buffer size according to specified pixel format.

Note that compressed images are decompressed before any further color processing or conversion during this call. Decompression is multi-threaded and defaults to utilizing one less than the number of concurrent threads supported by the system. The default number of decompression threads can be set with SetNumDecompressionThreads().

See also
PixelFormatEnums
ResetImage
SetNumDecompressionThreads
Parameters
srcImageThe source image from which to convert the image from.
destImageThe destination image in which the converted image data will be stored.
destFormatOutput format of the converted image.

Implements IImageProcessor.

◆ Convert() [5/5]

ImagePtr Convert ( const ImagePtr srcImage,
PixelFormatEnums  destFormat 
) const
virtual

Converts the source image buffer to the specified destination pixel format and returns the result in a new image.

The destination image does not need to be configured in any way before the call is made.

Note that compressed images are decompressed before any further color processing or conversion during this call. Decompression is multi-threaded and defaults to utilizing one less than the number of concurrent threads supported by the system. The default number of decompression threads can be set with SetNumDecompressionThreads().

See also
PixelFormatEnums
SetNumDecompressionThreads
Parameters
srcImageThe source image from which to convert the image from.
destFormatOutput format of the converted image.
Returns
The converted image.

Implements IImageProcessor.

Examples
Acquisition.cpp, AcquisitionMultipleThread.cpp, AcquisitionUserBuffer.cpp, Compression.cpp, CounterAndTimer.cpp, Exposure.cpp, ImageFormatControl.cpp, ImageFormatControl_QuickSpin.cpp, LogicBlock.cpp, SaveToVideo.cpp, Trigger.cpp, and Trigger_QuickSpin.cpp.

◆ GetColorProcessing()

ColorProcessingAlgorithm GetColorProcessing ( )
virtual

Gets the default color processing algorithm.

See also
SetColorProcessing()
Returns
The default color processing algorithm.

Implements IImageProcessor.

◆ GetNumDecompressionThreads()

unsigned int GetNumDecompressionThreads ( )
virtual

Gets the number of threads used for image decompression during Convert().

See also
SetNumDecompressionThreads()
Returns
Number of parallel image decompression threads set to run.

Implements IImageProcessor.

◆ operator=()

ImageProcessor & operator= ( const ImageProcessor processor)

Assignment operator.

◆ SetColorProcessing()

void SetColorProcessing ( ColorProcessingAlgorithm  colorAlgorithm)
virtual

Sets the color processing algorithm used at the time of the Convert() call, therefore the most recent execution of this function will take precedence.

The DEFAULT algorithm is deprecated and should not be used in the ImageProcessor class.

Parameters
colorAlgorithmThe color processing algorithm to set.
See also
GetColorProcessing()

Implements IImageProcessor.

Examples
Acquisition.cpp, AcquisitionMultipleThread.cpp, AcquisitionUserBuffer.cpp, Compression.cpp, CounterAndTimer.cpp, Exposure.cpp, ImageFormatControl.cpp, ImageFormatControl_QuickSpin.cpp, LogicBlock.cpp, SaveToVideo.cpp, Trigger.cpp, and Trigger_QuickSpin.cpp.

◆ SetNumDecompressionThreads()

void SetNumDecompressionThreads ( unsigned int  numThreads)
virtual

Sets the default number of threads used for image decompression during Convert().

The number of threads used is defaulted to be equal to one less than the number of concurrent threads supported by the system.

Parameters
numThreadsNumber of parallel image decompression threads set to run
See also
Convert()

Implements IImageProcessor.

Examples
Compression.cpp.

Friends And Related Symbol Documentation

◆ ImageFiler

friend class ImageFiler
friend

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