IDS peak ICV v1.6.0
Loading...
Searching...
No Matches
DebayerModule Class Reference

#include <peak_icv/pipeline/detail/peak_icv_debayer_module.hpp>

Inheritance diagram for DebayerModule:

Public Member Functions

 DebayerModule ()
 Creates an instance of class DebayerModule with default settings.
 
 ~DebayerModule () override
 
 DebayerModule (const DebayerModule &other)=delete
 Copy constructor for class DebayerModule is deleted.
 
 DebayerModule (DebayerModule &&other) noexcept
 
DebayerModule & operator= (const DebayerModule &other)=delete
 Copy assignment for class DebayerModule is deleted.
 
DebayerModule & operator= (DebayerModule &&other) noexcept
 
void Serialize (peak::common::serialization::IArchive &archive) const override
 Serializes the object's internal state into the provided archive.
 
void Deserialize (const peak::common::serialization::IArchive &archive) override
 Restores the object's state from the provided archive.
 
void SetEnabled (bool enabled) override
 Enables or disables the module.
 
bool IsEnabled () const override
 Gets whether this module is currently enabled.
 
const char * GetType () const override
 Returns the type of the module for serialization purposes.
 
void ResetToDefault () override
 Resets all module settings to its default settings.
 
void SetChannelLayout (DebayerChannelLayout layout)
 Set the output channel layout for debayered images.
 
DebayerChannelLayout GetChannelLayout () const
 Gets the current channel layout setting.
 
void SetConversionPolicy (DebayerConversionPolicy policy)
 Set the debayer conversion policy.
 
DebayerConversionPolicy GetConversionPolicy () const
 Retrieves the current conversion policy.
 
void SetTargetBitDepth (size_t bitDepth)
 Set the target bit depth for processed images.
 
void SetProcessingPolicy (ProcessingPolicy policy)
 Set the processing policy.
 
peak::icv::Image Process (const peak::icv::Image &input) const
 Converts a Bayer or mono image to a color image, or returns the input image unchanged.
 
peak::common::Any Process (const peak::common::Any &input) const override
 Converts a Bayer or mono image to a color image, or returns the input image unchanged.
 
void ReleaseBuffers () const
 Frees unused internal buffers.
 

Detailed Description

Debayer is an image pipeline module that converts Bayer RAW images into standard color formats.

It performs demosaicing on Bayer-pattern RAW images, converting them into full-color images using configurable channel layouts such as RGB, BGR, RGBA, or BGRA. The bit depth of the output is inferred from the input, depending on the selected processing policy.

The module can also be configured to convert Bayer or monochrome images, while passing through other image types unchanged.

Defaults
  • DebayerChannelLayout::RGB
  • DebayerConversionPolicy::BayerOnly
  • Target bit depth = 8
  • ProcessingPolicy::Fast
Since
ids_peak_icv 1.0

Constructor & Destructor Documentation

◆ DebayerModule() [1/3]

DebayerModule ( )
inline

Creates an instance of class DebayerModule with default settings.

Since
ids_peak_icv 1.0

◆ ~DebayerModule()

~DebayerModule ( )
inlineoverride
Since
ids_peak_icv 1.0

◆ DebayerModule() [2/3]

DebayerModule ( const DebayerModule & other)
delete

Copy constructor for class DebayerModule is deleted.

Note
If you need to copy a module, you can create a new one and copy the parameters via Serialize() and Deserialize().
Since
ids_peak_icv 1.0

◆ DebayerModule() [3/3]

DebayerModule ( DebayerModule && other)
inlinenoexcept
Since
ids_peak_icv 1.0

Member Function Documentation

◆ Deserialize()

void Deserialize ( const peak::common::serialization::IArchive & archive)
inlineoverridevirtual

Restores the object's state from the provided archive.

This function reads and applies all necessary parameters from the given archive to reconstruct the internal state of the object. It ensures that the object is restored to a valid and consistent state.

Parameters
archiveThe source archive containing the serialized parameters.
Exceptions
CorruptedExceptionIf Archive is malformed, misses keys or the values are invalid
NotSupportedExceptionIf the 'Version' entry indicates an unsupported version.
Note
This function requires that the archive contains all expected fields as produced by a corresponding Serialize() call.
Since
ids_peak_icv 1.0

Implements ISerializable.

◆ GetChannelLayout()

DebayerChannelLayout GetChannelLayout ( ) const
inline

Gets the current channel layout setting.

Returns
The currently configured channel layout.
Since
ids_peak_icv 1.0

◆ GetConversionPolicy()

DebayerConversionPolicy GetConversionPolicy ( ) const
inline

Retrieves the current conversion policy.

Returns
The currently configured DebayerConversionPolicy.
Since
ids_peak_icv 1.0

◆ GetType()

const char * GetType ( ) const
inlineoverridevirtual

Returns the type of the module for serialization purposes.

Returns
A string representing the module's type.
Since
ids_peak_icv 1.0

Implements IModule.

◆ IsEnabled()

bool IsEnabled ( ) const
inlineoverridevirtual

Gets whether this module is currently enabled.

Returns
true if enabled; otherwise false.
Since
ids_peak_icv 1.0

Implements IModule.

◆ operator=() [1/2]

DebayerModule & operator= ( const DebayerModule & other)
delete

Copy assignment for class DebayerModule is deleted.

Note
If you need to copy a module, you can create a new one and copy the parameters via Serialize() and Deserialize().
Since
ids_peak_icv 1.0

◆ operator=() [2/2]

DebayerModule & operator= ( DebayerModule && other)
inlinenoexcept
Since
ids_peak_icv 1.0

◆ Process() [1/2]

peak::common::Any Process ( const peak::common::Any & input) const
inlineoverridevirtual

Converts a Bayer or mono image to a color image, or returns the input image unchanged.

A demosaicing algorithm is applied according to the configured conversion policy. The input image is returned unchanged if the module is disabled, the policy indicates bypass, or the image format is not eligible for conversion. Otherwise, the Bayer RAW image is converted to the configured output format.

Note
This operation disregards any specified image regions and processes the entire image.
Parameters
inputThe input image (Bayer, mono, or already color).
Returns
The processed color image or the unmodified input image.
Exceptions
peak::common::InvalidCastExceptionIf the input cast to peak::icv::Image failed.
Since
ids_peak_icv 1.0

Implements IModule.

◆ Process() [2/2]

peak::icv::Image Process ( const peak::icv::Image & input) const
inline

Converts a Bayer or mono image to a color image, or returns the input image unchanged.

A demosaicing algorithm is applied according to the configured conversion policy. The input image is returned unchanged if the module is disabled, the policy indicates bypass, or the image format is not eligible for conversion. Otherwise, the Bayer RAW image is converted to the configured output format.

Note
This operation disregards any specified image regions and processes the entire image.
Parameters
inputThe input image (Bayer, mono, or already color).
Returns
The processed color image or the unmodified input image.
Since
ids_peak_icv 1.0

◆ ReleaseBuffers()

void ReleaseBuffers ( ) const
inline

Frees unused internal buffers.

This module uses pre-allocated internal buffers to accelerate conversions. When the image size or pixel format changes, new buffers are allocated, which may cause the internal buffer pool to grow over time. This function can be used to release unused buffers and reduce memory usage.

Note
Avoid calling this function too frequently (e.g., after every resize or format change), as it introduces some overhead.
Since
ids_peak_icv 1.0

◆ ResetToDefault()

void ResetToDefault ( )
inlineoverridevirtual

Resets all module settings to its default settings.

Note
The enabled state does not change when calling this function.
Since
ids_peak_icv 1.0

Implements IModule.

◆ Serialize()

void Serialize ( peak::common::serialization::IArchive & archive) const
inlineoverridevirtual

Serializes the object's internal state into the provided archive.

This function populates the given archive with all parameters required to fully represent the current state of the object. It ensures that the object can be reconstructed or transmitted accurately by saving all relevant data members in a consistent and structured format.

Parameters
archiveThe target archive that will store the serialized parameters.
Since
ids_peak_icv 1.0

Implements ISerializable.

◆ SetChannelLayout()

void SetChannelLayout ( DebayerChannelLayout layout)
inline

Set the output channel layout for debayered images.

This controls the order and number of color channels in the converted image.

Parameters
layoutThe channel layout to use (e.g., RGB, BGRA).
Since
ids_peak_icv 1.0

◆ SetConversionPolicy()

void SetConversionPolicy ( DebayerConversionPolicy policy)
inline

Set the debayer conversion policy.

This policy determines which types of input images will be converted. All other image types are passed through unchanged.

Parameters
policyThe desired conversion policy.
Since
ids_peak_icv 1.0

◆ SetEnabled()

void SetEnabled ( bool enabled)
inlineoverridevirtual

Enables or disables the module.

Parameters
enabledSet to true to enable, or false to disable.
Since
ids_peak_icv 1.0

Implements IModule.

◆ SetProcessingPolicy()

void SetProcessingPolicy ( ProcessingPolicy policy)
inline

Set the processing policy.

The processing policy defines how the target bit depth interacts with the input image bit depth.

Parameters
policyThe desired ProcessingPolicy.
Since
ids_peak_icv 1.0

◆ SetTargetBitDepth()

void SetTargetBitDepth ( size_t bitDepth)
inline

Set the target bit depth for processed images.

The effective output bit depth depends on the selected ProcessingPolicy:

  • Fast: The minimum of input bit depth and target bit depth.
  • Balanced: Equal to input bit depth.
  • Enhanced: The maximum of input bit depth and target bit depth.
Parameters
bitDepthThe desired target bit depth (e.g., 8, 10, 12).
Since
ids_peak_icv 1.0