160 lines
5.2 KiB
C++
160 lines
5.2 KiB
C++
////////////////////////////////////////////////////////////////////////////////////
|
|
// //////
|
|
// WARNING! //////
|
|
// //////
|
|
// THIS CLASS IS NOW OBSOLETE. //////
|
|
// IT IS KEPT FOR COMPATIBILITY PURPOSES. //////
|
|
// //////
|
|
// PLEASE USE THE COLOR CONVERSION FACILITY INSTEAD. //////
|
|
// THAT IS, SapColorConversion Class. //////
|
|
// //////
|
|
// //////
|
|
////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#ifndef _SAPBAYER_H_
|
|
#define _SAPBAYER_H_
|
|
|
|
// SapBayer.h: interface for the SapBayer class.
|
|
//
|
|
|
|
#include "SapClassBasicDef.h"
|
|
|
|
//
|
|
// SapBayer class declaration
|
|
//
|
|
class SAPCLASSBASIC_CLASS SapBayer : public SapManager
|
|
{
|
|
public:
|
|
typedef int Align;
|
|
enum _Align
|
|
{
|
|
AlignGBRG = CORBAYER_ALIGN_GB_RG,
|
|
AlignBGGR = CORBAYER_ALIGN_BG_GR,
|
|
AlignRGGB = CORBAYER_ALIGN_RG_GB,
|
|
AlignGRBG = CORBAYER_ALIGN_GR_BG,
|
|
AlignAll = CORBAYER_ALIGN_MASK
|
|
};
|
|
|
|
typedef int Method;
|
|
enum _Method
|
|
{
|
|
Method1 = CORBAYER_METHOD_1,
|
|
Method2 = CORBAYER_METHOD_2,
|
|
Method3 = CORBAYER_METHOD_3,
|
|
Method4 = CORBAYER_METHOD_4,
|
|
Method5 = CORBAYER_METHOD_5,
|
|
Method6 = CORBAYER_METHOD_6,
|
|
|
|
MethodInterpolate = CORBAYER_METHOD_1,
|
|
MethodGoldenEagle = CORBAYER_METHOD_2,
|
|
MethodEagle = CORBAYER_METHOD_3,
|
|
|
|
MethodAll= CORBAYER_METHOD_MASK
|
|
};
|
|
|
|
public:
|
|
SapBayer();
|
|
SapBayer(SapAcquisition *pAcq, SapBuffer* pBuffer);
|
|
SapBayer(SapBuffer *pBuffer);
|
|
SapBayer(const SapBayer &bayer);
|
|
virtual ~SapBayer();
|
|
|
|
SapBayer &operator= (const SapBayer &bayer);
|
|
|
|
// Creation/destruction
|
|
virtual BOOL Create();
|
|
virtual BOOL Destroy();
|
|
|
|
public:
|
|
// Access to implementation
|
|
SapAcquisition*GetAcquisition() const { return m_pAcq; }
|
|
SapBuffer* GetBuffer() const { return m_pBuffer; }
|
|
SapBuffer* GetBayerBuffer() const;
|
|
|
|
BOOL IsEnabled() const { return m_IsEnabled; }
|
|
BOOL IsSoftware() const { return !m_IsHardware || !m_IsHardwareEnabled;}
|
|
Align GetAlign() const { return m_Align; }
|
|
Method GetMethod() const { return m_Method; }
|
|
SapDataFRGB GetWBGain() const { return m_WBGain; }
|
|
SapDataFRGB GetWBOffset() const { return m_WBOffset; }
|
|
float GetGamma() const { return m_Gamma; }
|
|
SapFormat GetOutputFormat() const ;
|
|
Align GetAvailAlign() const { return m_AlignCap; }
|
|
Method GetAvailMethod() const { return m_MethodCap; }
|
|
int GetBayerBufferCount() const { return m_BayerBufferCount;}
|
|
|
|
virtual BOOL SetAcquisition(SapAcquisition *pAcq);
|
|
virtual BOOL SetBuffer(SapBuffer *pBuffer);
|
|
virtual BOOL SetAlign(Align align);
|
|
virtual BOOL SetMethod(Method method);
|
|
virtual BOOL SetWBGain(SapDataFRGB wbGain);
|
|
virtual BOOL SetWBOffset(SapDataFRGB wbOffset);
|
|
virtual BOOL SetGamma(float gamma);
|
|
virtual BOOL SetOutputFormat( SapFormat format);
|
|
virtual BOOL SetBayerBufferCount( int bayerBufferCount);
|
|
|
|
// Execution control
|
|
virtual BOOL Enable( BOOL enable = TRUE, BOOL useHardware= TRUE);
|
|
virtual BOOL WhiteBalance(int x, int y, int width, int height);
|
|
virtual BOOL WhiteBalance(SapBuffer *pBuffer, int x, int y, int width, int height);
|
|
virtual BOOL Convert();
|
|
virtual BOOL Convert(int srcIndex);
|
|
virtual BOOL Convert(int srcIndex, int dstIndex);
|
|
|
|
// Look-up table management
|
|
SapLut* GetLut() const { return m_pLut; }
|
|
BOOL IsLutEnabled() const { return m_IsLutEnabled; }
|
|
BOOL IsAcqLut() const { return m_IsAcqLut; }
|
|
virtual BOOL EnableLut(BOOL enable = TRUE);
|
|
|
|
protected:
|
|
// Utility methods
|
|
virtual void Construct(SapAcquisition *pAcq, SapBuffer *pBuffer);
|
|
virtual BOOL SetAlignImmediate(Align align);
|
|
virtual BOOL SetMethodImmediate(Method method);
|
|
virtual BOOL SetWBGainImmediate(SapDataFRGB& wbGain);
|
|
virtual BOOL GetWBGainLimits(SapDataFRGB *gainMin, SapDataFRGB *gainMax);
|
|
virtual BOOL SetWBOffsetImmediate(SapDataFRGB& wbOffset);
|
|
virtual BOOL SetGammaImmediate(float gamma);
|
|
virtual BOOL SetAcqOutputFormat( BOOL enable, BOOL useHardware);
|
|
|
|
protected:
|
|
SapAcquisition *m_pAcq;
|
|
SapBuffer *m_pBuffer;
|
|
SapBufferRoi *m_pBufferRoi;
|
|
SapBuffer *m_pBayerBuffer;
|
|
|
|
int m_BayerBufferCount;
|
|
|
|
Align m_AlignCap;
|
|
Method m_MethodCap;
|
|
SapDataFRGB m_GainMin;
|
|
SapDataFRGB m_GainMax;
|
|
float m_OffsetMin;
|
|
float m_OffsetMax;
|
|
|
|
BOOL m_IsEnabled;
|
|
BOOL m_IsHardware;
|
|
BOOL m_IsHardwareEnabled;
|
|
|
|
SapFormat m_colorOutputFormat;
|
|
int m_pixelDepth;
|
|
|
|
Align m_Align;
|
|
Method m_Method;
|
|
SapDataFRGB m_WBGain;
|
|
SapDataFRGB m_WBOffset;
|
|
float m_Gamma;
|
|
|
|
BOOL m_IsDefaultGain;
|
|
BOOL m_IsDefaultOffset;
|
|
|
|
// Look-up table management
|
|
SapLut *m_pLut;
|
|
BOOL m_IsLutEnabled;
|
|
BOOL m_IsAcqLut;
|
|
};
|
|
|
|
#endif
|