GrabBag/SDK/Device/Galaxy/Windows/inc/IGXFlatFieldCorrection.h

85 lines
3.0 KiB
C++

//---------------------------------------------------------------
/**
\file IGXFlatFieldCorrection.h
\brief Definition of the IGXFlatFieldCorrection interface
\Date 2025-06-05
\Version 1.1.2506.9051
*/
//---------------------------------------------------------------
#pragma once
#include "GXIAPIBase.h"
#include "GXSmartPtr.h"
#include "IImageData.h"
//--------------------------------------------
/**
\brief Flat Field Correction class
*/
//---------------------------------------------
class GXIAPICPP_API IGXFlatFieldCorrection
{
public:
//---------------------------------------------------------
/**
\brief Destructor
*/
//---------------------------------------------------------
virtual ~IGXFlatFieldCorrection(){};
//--------------------------------------------------
/**
\brief Set flat field correction frame count
\param nFFCFrameCount [in] flat field correction frame count
\return emStatus
*/
//--------------------------------------------------
virtual void SetFrameCount(uint16_t nFFCFrameCount) = 0;
//--------------------------------------------------
/**
\brief Calculate flat field correction coefficients size
\param pstFFCParam [in] flat field correction parameter
\return pnFFCCoefficientsSize
*/
//--------------------------------------------------
virtual int32_t GetCoefficientsSize(const GX_FLAT_FIELD_CORRECTION_PARAMETER *pstFFCParam) = 0;
//--------------------------------------------------
/**
\brief Calculate flat field correction coefficients
\param pstFFCParam [in] flat field correction parameter
\param pFFCCoefficients [out]flat field correction coefficients
\param nFFCCoefficientsSize [in] flat field correction coefficients size
*/
//--------------------------------------------------
virtual void Calculate(const GX_FLAT_FIELD_CORRECTION_PARAMETER *pstFFCParam, void *pFFCCoefficients, int32_t *pnFFCCoefficientsSize) = 0;
//--------------------------------------------------
/**
\brief Flat Field Correction Process
\param pInputBuffer [in] Image in
\param pOutputBuffer [out] Image out
\param nActualBits [in] Image actual cits
\param nImgWidth [in] Image width
\param nImgHeight [in] Image height
\param pFFCCoefficients [in] Flat field correction coefficients
\param pnlength [in] Flat field correction coefficients(byte)
\return emStatus
*/
//--------------------------------------------------
virtual void FlatFieldCorrection(void *pSrcBuffer, void *pDstBuffer,
GX_ACTUAL_BITS emActualBits, uint32_t ui64SrcWidth,
uint32_t ui64SrcHeight, void *pFFCCoefficients,
int *pnFFCCoefficientsSize) = 0;
};
template class GXIAPICPP_API GXSmartPtr<IGXFlatFieldCorrection>;
typedef GXSmartPtr<IGXFlatFieldCorrection> CGXFlatFieldCorrectionPointer;