code_device/hgdriver/ImageProcess/ImageApplyFilter.h

65 lines
1.5 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* ====================================================
* 功能:滤镜。目前包括锐化、加强锐化、模糊和加强模糊
* 作者:刘丁维
* 生成时间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 GIMGPROC_LIBRARY_API 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