2022-07-29 08:41:34 +00:00
|
|
|
|
/*
|
|
|
|
|
* ====================================================
|
|
|
|
|
|
|
|
|
|
* 功能:色彩调整,可以调整伽马、亮度、对比度效果。叠加优先级:亮度 > 对比度 > 伽马
|
|
|
|
|
* 作者:刘丁维
|
|
|
|
|
* 生成时间:2020/4/21
|
|
|
|
|
* 最近修改时间:2020/4/21
|
|
|
|
|
* 版本号:v1.0
|
|
|
|
|
|
|
|
|
|
* ====================================================
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef IMAGE_APPLY_ADJUST_COLOR_H
|
|
|
|
|
#define IMAGE_APPLY_ADJUST_COLOR_H
|
|
|
|
|
|
|
|
|
|
#include "ImageApply.h"
|
|
|
|
|
|
|
|
|
|
class GIMGPROC_LIBRARY_API CImageApplyAdjustColors : public CImageApply
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
CImageApplyAdjustColors(void);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* brightness [in]: 亮度调节,取值范围[-255, 255]
|
|
|
|
|
* constrast [in]: 对比度调节,取值范围[-128, 127]
|
|
|
|
|
* gamma [in]: 伽马调节,取值范围[0.1, 5.0]
|
|
|
|
|
*/
|
|
|
|
|
CImageApplyAdjustColors(int brightness, int contrast, float gamma);
|
|
|
|
|
|
|
|
|
|
virtual ~CImageApplyAdjustColors(void);
|
|
|
|
|
|
|
|
|
|
virtual void apply(cv::Mat& pDib, int side);
|
|
|
|
|
|
|
|
|
|
virtual void apply(std::vector<cv::Mat>& mats, bool isTwoSide);
|
|
|
|
|
|
|
|
|
|
void setAdjustColors(int brightness, int contrast, float gamma);
|
|
|
|
|
|
|
|
|
|
int getContrast() { return m_contrast; }
|
|
|
|
|
|
|
|
|
|
int getBrightness() { return m_brightness; }
|
|
|
|
|
|
|
|
|
|
double getGamma() { return m_gamma; }
|
|
|
|
|
|
|
|
|
|
void setBrightness(int brightness);
|
|
|
|
|
|
|
|
|
|
void setContrast(int contrast);
|
|
|
|
|
|
|
|
|
|
void setGamma(float gamma);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
void update_lutData();
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
int m_brightness;
|
|
|
|
|
int m_contrast;
|
|
|
|
|
float m_gamma;
|
|
|
|
|
cv::Mat lut;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // !IMAGE_APPLY_ADJUST_COLOR_H
|
|
|
|
|
|
|
|
|
|
|