HomeSupportVision LibrariesOpenCV → XiApiPlusOcv Offline Processing

XiApiPlusOcv Offline Processing

XiApiPlusOcv allows to process already captured images from camera those are stored in memory or loaded from disk.

Architecture

Processing methods are implemented in xiAPIplus_ImageProcessing class from xiApiPlusOcv. All processing functions can be called independently to currently opened camera.

Functionality

Offline processing converts transport formats or RAW8 formats into XI_RAW8, XI_RAW16, XI_RGB24, XI_RGB32. It supports unpacking, debayering, Crop and Shift image processing blocks. See image data flow

Workflow

Typical application workflow is:
  • Get images from camera while storing them to some media
  • Get and store camera context list for later processing
    • cam.GetApiContextList()
  • Create instance of xiAPIplus_ImageProcessing
  • Set the camera context list to processing
    • processing.SetParam XI_PRM_API_CONTEXT_LIST
  • Eventually modify some parameters to tune up processing
  • For each captured image:
    • Push image
    • Pull image

Sample

Source code for capturing 10 frames then processing 10 captured frames is available for download - xiApiPlusOcv_OfflineProc.cpp

Interface

There are the following 5 functions, which allow to control Offline Processing.

// Open processing instance
xiAPIplus_ImageProcessing processing;

// Set the parameter to processing
// Same parameters can be set like in SetParam.
// Example: XI_PRM_WB_KR for Red channel correction
processing.SetParam(const char* prm, void* val, DWORD size, XI_PRM_TYPE type);

// Set unprocessed image to processing chain
processing.PushImage(unsigned char* first_pixel);

// Get next processed image from processing chain
processing.PullImage();
processing.GetImage(xiAPIplus_Image* ret_image);

Result codes

Functions can throw error codes of xiAPI (0..999) combined with specific codes of Processing (1000-1999).
List of specific Image Processing codes:

Result code Meaning
1001 Invalid argument detected (out of range).
1002 Implementation is not yet done.
1003 This value is not supported.
1004 Using of unknown parameter
1005 Input buffer is not allocated
1006 Output buffer is not allocated
1007 Output buffer allocation error
1008 There are no processors in chain
1009 Some requirement is not met.
1010 Processors chain is full.
1011 Processor is not initialized yet.
1012 Processor generates error.
1013 Unknown data format.
1014 Unknown color filter array pattern type.

Availability

Offline processing is available since release V4_01_76.