[学习opencv]高斯、中值、均值、双边滤波

四种经典滤波算法,在opencv文档中都能找到的,熟悉一下调用规范。

#include "cv.h"
#include "highgui.h"
#include 

using namespace std;
using namespace cv;

int main(int argc, char* argv[])
{
        Mat src = imread("misaka.jpg");
        Mat dst;

        //参数是按顺序写的

        //高斯滤波
        //src:输入图像
        //dst:输出图像
        //Size(5,5)模板大小,为奇数
        //x方向方差
        //Y方向方差
        GaussianBlur(src,dst,Size(5,5),0,0);
        imwrite("gauss.jpg",dst);
        
        //中值滤波
        //src:输入图像
        //dst::输出图像
        //模板宽度,为奇数
        medianBlur(src,dst,3);
        imwrite("med.jpg",dst);
        
        //均值滤波
        //src:输入图像
        //dst:输出图像
        //模板大小
        //Point(-1,-1):被平滑点位置,为负值取核中心
        blur(src,dst,Size(3,3),Point(-1,-1));
        imwrite("mean.jpg",dst);

        //双边滤波
        //src:输入图像
        //dst:输入图像
        //滤波模板半径
        //颜色空间标准差
        //坐标空间标准差
        bilateralFilter(src,dst,5,10.0,2.0);//这里滤波没什么效果,不明白
        imwrite("bil.jpg",dst);

        waitKey();

        return 0;
}

处理效果:

原图:

[学习opencv]高斯、中值、均值、双边滤波_第1张图片

高斯滤波:

[学习opencv]高斯、中值、均值、双边滤波_第2张图片

中值滤波:

[学习opencv]高斯、中值、均值、双边滤波_第3张图片

均值滤波:

[学习opencv]高斯、中值、均值、双边滤波_第4张图片

双边滤波,大家看真的有效果吗,我怎么调参数都是这幅图:

[学习opencv]高斯、中值、均值、双边滤波_第5张图片

转载于:https://www.cnblogs.com/tiandsp/archive/2013/04/20/3031862.html

你可能感兴趣的:([学习opencv]高斯、中值、均值、双边滤波)