概述
这个函数用来对图像进行 高斯滤波 。
函数
void cv::GaussianBlur
(
InputArray src,
OutputArray dst,
Size ksize,
double sigmaX,
double sigmaY = 0,
int borderType = BORDER_DEFAULT
)
src | 源图像 | |
dst | 输出图像 | |
ksize | 卷积核的大小 | |
sigmaX | X方向的高斯核标准偏差 | sigmaY=0时,其值自动由sigmaX确定(sigmaY=sigmaX) sigmaY=sigmaX=0时,它们的值将由ksize.width和ksize.height自动确定) |
sigmaX | Y方向的高斯核标准偏差 | |
borderType | 图像边框扩展模式(可查阅BorderTypes,但不支持BORDER_WRAP) |
测试代码
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <vector>
using namespace cv;
using namespace std;
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//载入源图像
Mat src = imread("c:/opencv/jqm.png");
//显示
imshow("src",src);
//高斯滤波3
Mat dst3;
Size ksize3(3,3);
GaussianBlur(src,dst3,ksize3,0,0);
imshow("dst3",dst3);
//高斯滤波5
Mat dst5;
Size ksize5(5,5);
GaussianBlur(src,dst5,ksize5,0,0);
imshow("dst5",dst5);
//高斯滤波7
Mat dst7;
Size ksize7(7,7);
GaussianBlur(src,dst7,ksize7,0,0);
imshow("dst7",dst7);
}
Widget::~Widget()
{
delete ui;
}
测试结果
如图所示,在 椒盐噪音 处理方面,高斯模糊 的处理效果不如 中值滤波 ,
但是,据说,高斯模糊 处理后的图像,就具有了 高斯特征。