speedcontroller/imageprocess/ImageApplyFilter.h

60 lines
1.4 KiB
C
Raw Normal View History

2022-03-26 05:49:56 +00:00
/*
* ====================================================
*
*
* 2020/4/21
* 2020/4/21 v1.0
2020/7/17 v1.1 BilateralFilter;
2020/11/30 v1.2 GaussianBlur
* v1.1
* ====================================================
*/
#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
};
/*
* 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 bilateralFilter(cv::Mat& src, double kernel);
void gaussianBlur(cv::Mat src, int kSize);
private:
FilterMode m_type;
float m_kSize;
double m_kernel;
};
#endif // !IMAGE_APPLY_SHARPEN_H