opencv3学习之五种滤波器的简单应用

其实以下几种滤波器:方框滤波器、均值滤波器、高斯滤波器、中值滤波器、双边滤波器,呈现出来的效果,肉眼看起来并没有什么区别,感觉都是将图像进行模糊处理。但实际上这几种滤波器适用的情况各不相同,很多时候我们可以扬长避短,选择最合适最优化的滤波器。比如:























//17.boxfilter

/*#include <opencv2/opencv.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/core/core.hpp>

using namespace cv;

int main(){

    Mat image=imread("/Users/oumoemoe/Downloads/S2017.jpg");

    namedWindow("1");//如果把窗口名字命名为数字就能正常显示,但如果以汉字来命名则只能显示一张图片,为什么呢?

    namedWindow("2");

    

    imshow("1", image);

    

    Mat out;

    boxFilter(image, out, -1, Size(5,5));//-1表示从图像的正中心开始,size(5,5)表示以图像中心为中心所处理的邻域范围

    imshow("2", out);

    waitKey(0);

    return 0;

}*/

//18.blur

/*#include <opencv2/opencv.hpp>

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;

int main(){

    Mat image=imread("/Users/oumoemoe/Downloads/S2017.jpg");

    namedWindow("1");

    namedWindow("2");

    imshow("1", image);

    

    Mat out;

    blur(image, out, Size(3,3));

    imshow("2", out);

    

    waitKey(0);//blur是标准化后的boxfilter,两者的具体区别是什么呢

    return 0;

}*/

//19.GaussianBlur

/*#include <opencv2/opencv.hpp>

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;

int main(){

    Mat image=imread("/Users/oumoemoe/Downloads/S2017.jpg");

    namedWindow("1");

    namedWindow("2");

    imshow("1", image);

    

    Mat out;

    GaussianBlur(image, out, Size(3,3), 0,0);//第四个和第五个参数指的是高斯核函数在XY方向上的偏差

    

    imshow("2", out);

    

    waitKey(0);//blur是标准化后的boxfilter,两者的具体区别是什么呢

    return 0;

}*/

//21.medianblur

/*#include <opencv2/opencv.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/core/core.hpp>

using namespace cv;

int main(){

    Mat image=imread("/Users/oumoemoe/Downloads/girl.png");

    namedWindow("1");

    

    Mat out;

    out=image.clone();

    medianBlur(image, out, 7);

    imshow("1", out);

    waitKey(0);

    return 0;

}*/

//22.bilateralFilter

#include <opencv2/opencv.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/core/core.hpp>

using namespacecv;

int main(){

    Mat image=imread("/Users/oumoemoe/Downloads/girl.png");

    namedWindow("1");

    

    Mat out;

    bilateralFilter(image, out,25, 25*2,25/2);

    imshow("1", out);

    waitKey(0);

    return0;

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值