「OpenCV入门教程」线性滤波方框滤波、均值滤波与高斯滤波( 三 )

  • 第二个参数 , OutputArray类型的dst , 即目标图像 , 需要和源图片有一样的尺寸和类型 。 比如可以用Mat::Clone , 以源图片为模板 , 来初始化得到如假包换的目标图 。
  • 第三个参数 , Size类型的ksize高斯内核的大小 。 其中ksize.width和ksize.height可以不同 , 但他们都必须为正数和奇数 。 或者 , 它们可以是零的 , 它们都是由sigma计算而来 。
  • 第四个参数 , double类型的sigmaX , 表示高斯核函数在X方向的的标准偏差 。
  • 第五个参数 , double类型的sigmaY , 表示高斯核函数在Y方向的的标准偏差 。 若sigmaY为零 , 就将它设为sigmaX , 如果sigmaX和sigmaY都是0 , 那么就由ksize.width和ksize.height计算出来 。
  • 为了结果的正确性着想 , 最好是把第三个参数Size , 第四个参数sigmaX和第五个参数sigmaY全部指定到 。
  • 第六个参数 , int类型的borderType , 用于推断图像外部像素的某种边界模式 。 注意它有默认值BORDER_DEFAULT 。
  • 调用示例:
    //载入原图Mat image=imread("1.jpg");//进行滤波操作Mat out;GaussianBlur( image, out, Size( 5, 5 ), 0, 0 ); 用上面三句核心代码架起来的完整程序代码:
    //-----------------------------------【头文件包含部分】---------------------------------------//描述:包含程序所依赖的头文件//----------------------------------------------------------------------------------------------#include "opencv2/core/core.hpp"#include"opencv2/highgui/highgui.hpp"#include"opencv2/imgproc/imgproc.hpp"#include//-----------------------------------【命名空间声明部分】---------------------------------------//描述:包含程序所使用的命名空间//----------------------------------------------------------------------------------------------- using namespace cv; //-----------------------------------【main( )函数】--------------------------------------------//描述:控制台应用程序的入口函数 , 我们的程序从这里开始//-----------------------------------------------------------------------------------------------int main( ){//载入原图Mat image=imread("1.jpg");//创建窗口namedWindow("均值滤波【原图】" );namedWindow("均值滤波【效果图】");//显示原图imshow("均值滤波【原图】", image );//进行均值滤波操作Mat out;GaussianBlur(image, out, Size( 3, 3 ), 0, 0 );//显示效果图imshow("均值滤波【效果图】" ,out );waitKey(0 );}运行效果图(内核大小Size(5, 5)):
    「OpenCV入门教程」线性滤波方框滤波、均值滤波与高斯滤波文章插图
    图像线性滤波综合示例 程序依然是每篇文章都会配给大家的一个详细注释的博文配套示例程序 , 把这篇文章中介绍的知识点以代码为载体 , 展现给大家 。
    这个示例程序中可以用轨迹条来控制三种线性滤波的核参数值 , 通过滑动滚动条 , 就可以控制图像在三种线性滤波下的模糊度 , 有一定的可玩性 。 废话不多说 , 上代码吧
    //-----------------------------------【程序说明】----------------------------------------------//程序名称::【OpenCV入门教程之八】线性滤波专场:方框滤波、均值滤波与高斯滤波 配套源码//开发所用OpenCV版本:2.4.8//2014年3月31 日 Create by 浅墨//------------------------------------------------------------------------------------------------ //-----------------------------------【头文件包含部分】---------------------------------------//描述:包含程序所依赖的头文件//----------------------------------------------------------------------------------------------#include