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