code_device/hgdriver/ImageProcess/ImageApplyCustomGamma.h

45 lines
1.0 KiB
C
Raw Normal View History

2022-07-29 08:41:34 +00:00
/*
* ====================================================
* <EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD>٤<EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
* <EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>2020/4/21
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>ʱ<EFBFBD>2020/4/21
* <EFBFBD><EFBFBD>ţ<EFBFBD>v1.0
* ====================================================
*/
#ifndef IMAGE_APPLY_CUSTOM_CAMMA_H
#define IMAGE_APPLY_CUSTOM_CAMMA_H
#include "ImageApply.h"
class GIMGPROC_LIBRARY_API CImageApplyCustomGamma : public CImageApply
{
public:
/*
* table [in]:<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>
* length [in]:<EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD>Ҷȱ<EFBFBD>256<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD>768
* */
CImageApplyCustomGamma(unsigned char* table,int length);
virtual ~CImageApplyCustomGamma();
virtual void apply(cv::Mat& pDib, int side);
virtual void apply(std::vector<cv::Mat>& mats, bool isTwoSide);
void setTableData(const unsigned char* data, int length);
private:
void init_gamma_table();
void setLUT(const unsigned char* table, int byteCount);
bool emptyPtr;
private:
unsigned char m_table_bit8[256];
unsigned char m_table_bit24[768];
};
#endif // !IMAGE_APPLY_CUSTOM_CAMMA_H