首页 > 编程笔记 > C++笔记 阅读:2

OpenCV GaussianBlur()函数的用法(附带实例)

高斯滤波是一种线性平滑滤波,对于除去高斯噪声有很好的效果。在 OpenCV 中,提供函数 GaussianBlur() 实现高斯滤波,该函数声明如下:
void GaussianBlur( InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int 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) 保存工程并运行,结果如下图所示:

相关文章