滤波器:图像美化,比如磨皮,磨砂玻璃效果
//名称:均值滤波
//实现方式:对滤波核内的数据-求均值-然后将这个值赋值给矩阵核心位置
//效果:滤波核越大,图像越模糊
//滤波核举例:Size(3,3),Size(5,5),Size(w,h)
//形式:void blur( InputArray src, OutputArray dst,Size ksize, Point anchor = Point(-1,-1),int borderType = BORDER_DEFAULT );
//参数:src是原始图像,dst处理结果图像,ksize滤波核大小,anchor用来指定锚点位置(一般不用),borderType边界类型(一般不用)
//使用举例:blur(m_Mat,m_NewMat,Size(10,10));
//名称:中值滤波
//实现方式:对滤波核内的数据排序-取中间值-然后将这个值赋值给矩阵核心位置
//效果:滤波核越大,图像越模糊
//滤波核举例:只能是奇数:1,3,5,7,9,...
//形式:void medianBlur( InputArray src, OutputArray dst, int ksize );
//参数:src是原始图像,dst处理结果图像,ksize滤波核大小
//使用举例:medianBlur(m_Mat,m_NewMat,arg1);
//名称:高斯滤波
//实现方式:卷积核,不同权重下的均值,所有权重值的和为1
//效果:在降低图片噪声、细节层次的同时保留更多的图像信息,使图像呈现出“磨砂玻璃”的效果
//滤波核举例:必须是奇数-Size(3,3),Size(5,5),Size(9,9)
//形式:void GaussianBlur( InputArray src, OutputArray dst, Size ksize,double sigmaX, double sigmaY = 0,int borderType = BORDER_DEFAULT );
//参数:src是原始图像,dst处理结果图像,ksize滤波核大小,sigmaX高斯核在X方向的标准差,sigmaY高斯核在Y方向的标准差,borderType边界类型(一般不用)
//使用举例:GaussianBlur(m_Mat,m_NewMat,Size(5,5),0);
//名称:双边滤波
//实现方式:在图像边缘区域加大边缘像素的权重,尽可能让边缘区域的像素值不变,不在边缘区域的使用类似高斯滤波器的算法
//效果:保护边界信息,在滤波的基础上保留了相对清晰的边缘信息
//滤波核举例:15
//形式:void bilateralFilter( InputArray src, OutputArray dst, int d,double sigmaColor, double sigmaSpace,int borderType = BORDER_DEFAULT );
//参数: src是原始图像,dst处理结果图像
// d过滤期间使用的每个像素邻域的直径,如果为非正,则根据sigmaSpace计算,如果为15,则表示15x15的滤波核
// sigmaColor参与计算的颜色的范围,只有像素小于这个值时,以其为核心的滤波核才参与计算,否则不参与
// sigmaSpace坐标空间中的值,值越大,参与计算的像素数量越多
// borderType边界类型(一般不用)
//使用举例:bilateralFilter(m_Mat,m_NewMat,15,125,200);
//名称:方框滤波
//实现方式:在均值滤波的基础上,增加了控制是否对均值滤波的结果进行归一化(滤波结果是像素值之和的平均值,还是像素值之和)
//效果:滤波核越大,图像越模糊
//滤波核举例:Size(3,3),Size(5,5),Size(w,h)
//形式:void boxFilter( InputArray src, OutputArray dst, int ddepth,Size ksize, Point anchor = Point(-1,-1),bool normalize = true,int borderType = BORDER_DEFAULT );
//参数:src是原始图像,dst处理结果图像,ddepth输出图像的深度(-1保持原图的深度),ksize滤波核大小,anchor用来指定锚点位置(一般不用),normalize默认true表示内核是否被其区域归一化,borderType边界类型(一般不用)
//使用举例:boxFilter(m_Mat,m_NewMat,m_Mat.depth(),Size(3,3));