code_app/modules/imgproc/ImageProcess/ImageApplyFilter.h

65 lines
1.6 KiB
C
Raw Normal View History

/*
* ====================================================
*
*
* 2020/4/21
* 2020/4/21 v1.0
2020/7/17 v1.1 BilateralFilter;
2020/11/30 v1.2 GaussianBlur
2021/07/21 v1.2.1 BrightSharp
2021/10/19 v1.2.2
* v1.2.2
* ====================================================
*/
#ifndef IMAGE_APPLY_FILTER_H
#define IMAGE_APPLY_FILTER_H
#include "ImageApply.h"
class CImageApplyFilter : public CImageApply
{
public:
enum FilterMode
{
None,
Sharpen, //锐化
Sharpen_More, //进一步锐化
AverBlur, //模糊
AverBlur_More, //进一步模糊
BilateralFilter, //双边滤波--背景平滑减少复杂背景的色彩数量利于jpg等压缩比例
GaussianBlur,
BrightSharp //5 * 5提亮锐化
};
/*
* sharpentype [in]:
*/
CImageApplyFilter(FilterMode type, int kSize = 30);
virtual ~CImageApplyFilter();
virtual void apply(cv::Mat& pDib, int side);
virtual void apply(std::vector<cv::Mat>& mats, bool isTwoSide);
private:
void averblur(cv::Mat& src, int kSize);
void sharpen(cv::Mat& src, float kSize);
void brightSharp(cv::Mat& src);
void bilateralFilter(cv::Mat& src, double kernel);
void gaussianBlur(cv::Mat& src, int kSize);
private:
int m_type;
float m_kSize;
double m_kernel;
};
#endif // !IMAGE_APPLY_SHARPEN_H