![]() |
IDS peak AFL v1.8.0
|
Auto manager that can apply multiple auto features to an image by registering one or more controllers. More...
Functions | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_Create (peak_afl_manager_handle *handle, PEAK_NODE_MAP_HANDLE nodeMapHandle) |
| Create an automanager instance. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_Destroy (peak_afl_manager_handle handle) |
| Destroy an automanager instance. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_AddController (peak_afl_manager_handle handle, peak_afl_controller_handle controller) |
| Add a controller to an auto manager instance. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_RemoveController (peak_afl_manager_handle handle, peak_afl_controller_handle controller) |
| Remove a controller from an auto feature manager instance. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_Process (peak_afl_manager_handle handle, PEAK_IPL_IMAGE_HANDLE imageHandle) |
| Process an image through the auto feature pipeline. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_CreateController (peak_afl_manager_handle handle, peak_afl_controller_handle *controller, peak_afl_controllerType controllerType) |
| Create a controller and append it to Manager. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_DestroyAllController (peak_afl_manager_handle handle) |
| Destroy all controllers associated with a manager. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_DestroyController (peak_afl_manager_handle handle, peak_afl_controller_handle controller) |
| Destroy a controller from a manager. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_SetGainIPL (peak_afl_manager_handle handle, PEAK_IPL_GAIN_HANDLE gainHandle) |
| Set the IPL Gain for image processing. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_SetCCM (peak_afl_manager_handle handle, float *ccm, size_t ccm_size) |
| Set the Color Correction Matrix (CCM) for image processing. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_Status (peak_afl_manager_handle handle, peak_afl_BOOL8 *running) |
| Get the processing status of an auto feature manager. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_Controller_IsSupported (peak_afl_manager_handle handle, peak_afl_controllerType controllerType, peak_afl_BOOL8 *supported) |
| Check if a controller type is supported by the manager. | |
Auto manager that can apply multiple auto features to an image by registering one or more controllers.
An Auto manager can apply multiple auto features to an image, which is achieved by registering one or more Controllers for the manager.
The following controllers are available:
An auto manager is always related to a single camera with its Nodemap.
For the automatic control to work, images must be transferred to the manager, which will pass them to all registered controllers.
With the status function the manager can be checked if an image is currently processed.
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_AddController | ( | peak_afl_manager_handle | handle, |
| peak_afl_controller_handle | controller ) |
Add a controller to an auto manager instance.
Adds an existing automatic feature controller to the specified auto feature manager. This allows the controller to participate in coordinated image processing operations managed by the auto feature manager. Each controller can only be associated with one manager at a time, and each manager can only contain one controller of each type.
Controllers must be created separately using peak_afl_AutoController_Create() before being added to a manager. Alternatively, use the convenience function peak_afl_AutoFeatureManager_CreateController() to create and add in one operation.
| [in] | handle | Auto feature manager handle from peak_afl_AutoFeatureManager_Create() |
| [in] | controller | Controller handle from peak_afl_AutoController_Create() that is not currently associated with any manager |
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Controller_IsSupported | ( | peak_afl_manager_handle | handle, |
| peak_afl_controllerType | controllerType, | ||
| peak_afl_BOOL8 * | supported ) |
Check if a controller type is supported by the manager.
Determines whether the specified controller type can be created and used with this manager instance. Support may depend on the camera capabilities and the current configuration.
| [in] | handle | Manager handle from peak_afl_AutoFeatureManager_Create() |
| [in] | controllerType | Controller type to check for support |
| [out] | supported | Pointer to receive support status:
|
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Create | ( | peak_afl_manager_handle * | handle, |
| PEAK_NODE_MAP_HANDLE | nodeMapHandle ) |
Create an automanager instance.
Creates a new auto feature manager instance that coordinates multiple automatic feature controllers for image processing and camera parameter adjustment. The manager serves as a central hub for processing images through various controllers like brightness, white balance, and autofocus.
The auto feature manager requires a valid device node map to access camera parameters and settings. The PEAK_NODE_MAP_HANDLE can be acquired by calling Handle() from std::shared_ptr<peak::core::NodeMap>. This node map provides the interface to the camera's GenICam-compliant parameter structure.
| [out] | handle | Pointer to receive the new auto feature manager handle. Must not be NULL. The handle will be set to a valid manager instance on success. |
| [in] | nodeMapHandle | Handle to the device node map from the vision API. This provides access to camera parameters and must remain valid for the lifetime of the manager. |
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_CreateController | ( | peak_afl_manager_handle | handle, |
| peak_afl_controller_handle * | controller, | ||
| peak_afl_controllerType | controllerType ) |
Create a controller and append it to Manager.
Convenience function that creates a new automatic feature controller of the specified type and immediately adds it to the manager. This combines the functionality of peak_afl_AutoController_Create() and peak_afl_AutoFeatureManager_AddController() into a single operation for simplified workflow.
Each manager can only contain one controller of each type. Attempting to add a second controller of the same type will result in an error. The created controller is automatically configured with default settings and can be further customized using the controller-specific configuration functions.
| [in] | handle | Auto feature manager handle from peak_afl_AutoFeatureManager_Create() |
| [out] | controller | Pointer to receive the new controller handle. Must not be NULL. The handle will be set to a valid controller instance on success. |
| [in] | controllerType | Type of controller to create and add:
|
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Destroy | ( | peak_afl_manager_handle | handle | ) |
Destroy an automanager instance.
Destroys an auto feature manager instance and releases all associated resources. This function will automatically remove and destroy all controllers that have been added to the manager. After successful destruction, the manager handle becomes invalid and must not be used in any subsequent function calls.
| [in] | handle | Auto feature manager handle to destroy. Must be a valid handle obtained from peak_afl_AutoFeatureManager_Create(). |
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_DestroyAllController | ( | peak_afl_manager_handle | handle | ) |
Destroy all controllers associated with a manager.
Removes and destroys all controllers that have been added to the specified manager. This is a convenience function for cleanup when shutting down the manager.
| [in] | handle | Manager handle |
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_DestroyController | ( | peak_afl_manager_handle | handle, |
| peak_afl_controller_handle | controller ) |
Destroy a controller from a manager.
Removes and destroys a specific controller from the auto feature manager. This function combines the removal and destruction operations, making it a convenient way to permanently remove a controller from the manager. After successful destruction, the controller handle becomes invalid and must not be used in any subsequent function calls.
| [in] | handle | Auto feature manager handle containing the controller |
| [in] | controller | Controller handle to remove and destroy. Must be a controller that was previously added to this specific manager. |
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Process | ( | peak_afl_manager_handle | handle, |
| PEAK_IPL_IMAGE_HANDLE | imageHandle ) |
Process an image through the auto feature pipeline.
Processes an image through all registered controllers in the auto feature manager. The image is analyzed by each controller according to their configuration and mode settings. Controllers may adjust camera parameters based on the analysis results.
| [in] | handle | Auto feature manager handle from peak_afl_AutoFeatureManager_Create() |
| [in] | imageHandle | Image handle from the imaging library. Obtain this handle by calling ImageBackendAccessor::BackendHandle(img) where img is a peak::ipl::Image. The image must be in a supported pixel format. |
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_RemoveController | ( | peak_afl_manager_handle | handle, |
| peak_afl_controller_handle | controller ) |
Remove a controller from an auto feature manager instance.
Removes a controller from the manager without destroying the controller object. The controller can be added to another manager or destroyed separately. For a function that removes and destroys the controller in one call, see peak_afl_AutoFeatureManager_DestroyController().
| [in] | handle | Auto feature manager handle |
| [in] | controller | Controller handle to remove from the manager |
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_SetCCM | ( | peak_afl_manager_handle | handle, |
| float * | ccm, | ||
| size_t | ccm_size ) |
Set the Color Correction Matrix (CCM) for image processing.
Configures a 3x3 color correction matrix for the auto feature manager that is applied during image processing operations. The CCM is used to correct color values and compensate for lighting conditions or sensor characteristics before controllers analyze the image. This can improve the accuracy of automatic features like white balance and brightness control.
The matrix should be provided as a flat array of 9 float values in row-major order: [R->R, R->G, R->B, G->R, G->G, G->B, B->R, B->G, B->B], where each element represents the contribution of the input color channel to the output color channel.
| [in] | handle | Auto feature manager handle from peak_afl_AutoFeatureManager_Create() |
| [in] | ccm | Pointer to an array of exactly 9 float values representing the 3x3 CCM. Values typically range from 0.0 to 2.0, with 1.0 representing no change. Must not be NULL. |
| [in] | ccm_size | Size of the CCM array. Must be exactly 9 for a valid 3x3 matrix. |
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_SetGainIPL | ( | peak_afl_manager_handle | handle, |
| PEAK_IPL_GAIN_HANDLE | gainHandle ) |
Set the IPL Gain for image processing.
Configures the Image Processing Library (IPL) gain settings for the auto feature manager. The IPL gain is applied during image processing operations and affects how controllers analyze and process images. This gain setting is separate from camera hardware gain and is used for software-based image enhancement during automatic feature processing.
The gain handle must be obtained from the imaging library using the appropriate backend accessor. To get the handle for the gain, call GainBackendAccessor::BackendHandle(gain) with gain being a peak::ipl::Gain object from the imaging library.
| [in] | handle | Auto feature manager handle from peak_afl_AutoFeatureManager_Create() |
| [in] | gainHandle | Handle to the IPL gain object from the imaging library. Must be a valid gain handle obtained through GainBackendAccessor. |
| PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Status | ( | peak_afl_manager_handle | handle, |
| peak_afl_BOOL8 * | running ) |
Get the processing status of an auto feature manager.
Retrieves the current processing status of the auto feature manager to determine whether it is currently processing an image or is idle and ready to accept new image processing requests. This function is essential for coordinating image processing operations and avoiding conflicts when multiple threads or processes need to use the same manager.
| [in] | handle | Auto feature manager handle from peak_afl_AutoFeatureManager_Create() |
| [out] | running | Pointer to receive the manager status:
|