OpenCV GaussianBlur()函数的用法(附带实例)
高斯滤波是一种线性平滑滤波,对于除去高斯噪声有很好的效果。在 OpenCV 中,提供函数 GaussianBlur() 实现高斯滤波,该函数声明如下:
【实例】实现高斯滤波。
1) 打开 Qt Creator,新建一个控制台工程,工程名是 test。
2) 在工程中打开 main.cpp,输入如下代码:
3) 保存工程并运行,结果如下图所示:
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 表示边界模式,默认值为 BORDER_DEFAULT,一般可以忽略。
【实例】实现高斯滤波。
1) 打开 Qt Creator,新建一个控制台工程,工程名是 test。
2) 在工程中打开 main.cpp,输入如下代码:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat src, dst;
src = imread("lena.png");
if (!src.data)
{
printf("could not load image3...\n");
return -1;
}
// 定义窗口名称
char input_title[] = "src";
char output_title[] = "Mean filtering";// 均值滤波
// 新建窗口
namedWindow(input_title, WINDOW_AUTOSIZE);
namedWindow(output_title, WINDOW_AUTOSIZE);
imshow(input_title, src);// 原图显示
blur(src, dst, Size(15, 15), Point(-1, -1)); imshow(output_title, dst); // 均值滤波操作
Mat gblur;
// 高斯滤波操作
GaussianBlur(src, gblur, Size(15, 15), Point(11, 11));// 高斯滤波
imshow("Gaussian filter", gblur);// 显示高斯滤波滤波结果图
waitKey(0);
return 0;
}
在上述代码中,我们用均值滤波和高斯滤波进行了对比。3) 保存工程并运行,结果如下图所示:

ICP备案:
公安联网备案: