高斯滤波GaussianBlur()中参数详解

  • Post author:
  • Post category:其他




高斯滤波GaussianBlur()中参数详解:

  • 高斯滤波是应用于图像处理,对图像进行滤波操作(平滑操作、过滤操作,去噪操作)

  • 在python中的格式为:
  • cv2.GaussianBlur( SRC,ksize,sigmaX [,DST [,sigmaY [,borderType ] ] ] ) →DST

  • 在c++中的格式为:
  • void GaussianBlur( InputArray src,OutputArray dst,Size ksize,double sigmaX,double sigmaY = 0,int borderType = BORDER_DEFAULT )
  • 其中我们最常用到的参数为:img = cv2.GaussianBlur(src, (blur1, blur2), 0),其中src是要进行滤波的原图像,(blur1,blur2)是高斯核的大小,blur1和blur2的选取一般是奇数,blur1和blur2的值可以不同。参数0表示标准差取0。
  • 当blur1=blur2=1时,相当于不对原始图像做操作。blur1和blur2越大,图像的模糊程度越大。但不是blur1和blur2越大越好,blur1和blur2太大,不仅会滤除噪音,还会平滑掉图像中有用的信息。所以blur的选取要进行测试。
  • 如果要进行滤波的图像的长宽比大致为1:1,那么选取blur时,一般设置blur1=blur2。
  • 如果要进行滤波的图像的长宽比大致为m:n,那么选取blur时,blur1:blur2=m:n。

  • 参数:


    src –输入图像;图像可以具有任何数量的信道,其独立地处理的,但深度应CV_8U,CV_16U,CV_16S,CV_32F或CV_64F。

    dst –输出与图像大小和类型相同的图像src。

    ksize –高斯核大小。 ksize.width 并且 ksize.height 可以有所不同,但它们都必须是正数和奇数。或者,它们可以为零,然后从计算 sigma*。

    sigmaX – X方向上的高斯核标准偏差。

    sigmaY – Y方向上的高斯核标准差;如果 sigmaY 为零,则将其设置为等于 sigmaX;如果两个西格玛均为零,则分别根据ksize.width 和 进行计算 ksize.height(getGaussianKernel()有关详细信息,请参见

    link

    );完全控制的结果,无论这一切的语义未来可能的修改,建议指定所有的ksize,sigmaX和sigmaY。

    borderType –像素外推方法(borderInterpolate()有关详细信息,请参见

    link

    )。



版权声明:本文为qq_38132105原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。