#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

//均值滤波模糊处理
int demo_blur()
{
  char win1[] = "window1";
  char win2[] = "window2";
  Mat img1, img2;

  img1 = imread("D://images//4.jpg");
  if (img1.empty())
  {
    cout <<"could not found img..." << endl;
    return 0;
  }
  imshow(win1,img1);
  blur(img1,img2,Size(9,9),Point(-1,-1));
  imshow(win2, img2);
  return 0;
}

//高斯滤波
int demo_gaussian_blur()
{
  char win1[] = "window1";
  char win2[] = "window2";
  Mat img1, img2;

  img1 = imread("D://images//timg1.jpg");
  if (img1.empty())
  {
    cout << "could not found img..." << endl;
    return 0;
  }
  imshow(win1, img1);
  //blur(img1, img2, Size(9, 9), Point(-1, -1));
  GaussianBlur(img1, img2, Size(9, 9), 11, 11, 4);
  imshow(win2, img2);
  return 0;
}

//中值滤波
int demo_median_blur()
{
  char win1[] = "window1";
  char win2[] = "window2";
  Mat img1, img2;

  img1 = imread("D://images//2018092701.jpg");
  if (img1.empty())
  {
    cout << "could not found img..." << endl;
    return 0;
  }
  imshow(win1, img1);
  //blur(img1, img2, Size(9, 9), Point(-1, -1));
  //GaussianBlur(img1, img2, Size(9, 9), 11, 11, 4);
  medianBlur(img1, img2, 5);
  imshow(win2, img2);
  return 0;
}

//双边滤波
int demo_bilateral_filter()
{
  char win1[] = "window1";
  char win2[] = "window2";
  Mat img1, img2;

  img1 = imread("D://images//timg1.jpg");
  if (img1.empty())
  {
    cout << "could not found img..." << endl;
    return 0;
  }
  imshow(win1, img1);
  //blur(img1, img2, Size(9, 9), Point(-1, -1));
  //GaussianBlur(img1, img2, Size(9, 9), 11, 11, 4);
  //medianBlur(img1, img2, 5);
  bilateralFilter(img1, img2, 15, 100, 3, 4);
  imshow(win2, img2);
  return 0;
}

int main()
{
  //demo_blur();
  //demo_gaussian_blur();
  //demo_median_blur();
  demo_bilateral_filter();

  waitKey(0);
  return 0;
}

opencv3 图片模糊操作-均值滤波 高斯滤波 中值滤波 双边滤波的更多相关文章

  1. 【OpenCV】邻域滤波:方框、高斯、中值、双边滤波

    原文:http://blog.csdn.net/xiaowei_cqu/article/details/7785365 邻域滤波(卷积)   邻域算子值利用给定像素周围像素的值决定此像素的最终输出.如 ...

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

    http://www.cnblogs.com/tiandsp/archive/2013/04/20/3031862.html [学习opencv]高斯.中值.均值.双边滤波 四种经典滤波算法,在ope ...

  3. opencv-11-中值滤波及自适应中值滤波

    开始之前 在上一篇我们实现了读取噪声图像, 然后 进行三种形式的均值滤波得到结果, 由于我们自己写的均值滤波未作边缘处理, 所以效果有一定的下降, 但是总体来说, 我们得到的结果能够说明我们的算法执行 ...

  4. OpenCv高斯,中值,均值,双边滤波

    #include "cv.h" #include "highgui.h" #include <iostream> using namespace s ...

  5. OpenCV计算机视觉学习(4)——图像平滑处理(均值滤波,高斯滤波,中值滤波,双边滤波)

    如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice &q ...

  6. Python+OpenCV图像处理(七)—— 滤波与模糊操作

    过滤是信号和图像处理中基本的任务.其目的是根据应用环境的不同,选择性的提取图像中某些认为是重要的信息.过滤可以移除图像中的噪音.提取感兴趣的可视特征.允许图像重采样等等.频域分析将图像分成从低频到高频 ...

  7. Atitit   图像处理 平滑 也称 模糊, 归一化块滤波、高斯滤波、中值滤波、双边滤波)

    Atitit   图像处理 平滑 也称 模糊, 归一化块滤波.高斯滤波.中值滤波.双边滤波) 是一项简单且使用频率很高的图像处理方法 用途 去噪 去雾 各种线性滤波器对图像进行平滑处理,相关OpenC ...

  8. 学习 opencv---(8)非线性滤波:中值滤波,双边滤波

    正如我们上一篇文章中讲到的,线性滤波可以实现很多种不同的图像变换.然而非线性滤波,如中值滤波器和双边滤波器,有时可以达到更好的实现效果. 邻域算子的其他一些例子还有对 二值图像进行操作的形态学算子,用 ...

  9. python实现模糊操作

    目录: (一)模糊或平滑与滤波的介绍 (二)均值模糊 (1) 原理 (2)代码实现-----均值模糊函数blur() (三)中值模糊------mediaBlur函数 (四)高斯模糊------Gau ...

随机推荐

  1. 一种 jquery 检索方案

    整理自:http://www.cnblogs.com/linjiqin/archive/2011/03/18/1988464.html <!DOCTYPE HTML PUBLIC "- ...

  2. 中 varStatus的属性简介

    varStatus是<c:forEach>jstl循环标签的一个属性,varStatus属性.就拿varStatus="status"来说,事实上定义了一个status ...

  3. WCF日志跟踪SvcTraceViewer.exe

    参考: https://msdn.microsoft.com/zh-cn/library/ms732023.aspx https://msdn.microsoft.com/zh-cn/library/ ...

  4. Oracle临时表和SQL Server临时表的不同点对比

    文章来源:http://www.codesky.net/article/201109/141401.html 1.简介 Oracle数据库除了可以保存永久表外,还可以建立临时表temporary ta ...

  5. timer用作timestamp及其他

    niosii中使用时间戳是很有用的,可以查看代码的执行时间是多少,在使用timestamp的过程中遇到一些问题现在做一下记录. 1.硬件部分构建软核没什么,就加一个timer就行了,加完之后自动获得基 ...

  6. RecyclerView 初体验

    网上看了很多 RecyclerView 的教程,也结合学长的代码,终于实现了一个不错看的过去的List 可以通过左滑删除Item 长按Item或者点击按钮,可以对Item进行拖拽 更具体的内容会写在代 ...

  7. Vant async-validator 表单校验

    感谢:尤大大的 vue.有赞的 vant.async-validator.以及 asseek 链接:https://www.jianshu.com/p/d58fe749b97f 在下不才在 assee ...

  8. C#获取文件的MD5码

    using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Send ...

  9. Centos7手工安装Kubernetes集群

    安装Kubernetes集群有多种方式,前面介绍了Kubeadm的方式,本文将介绍手工安装的方法. 安装环境有3台Azure上的VM: Hkube01:10.0.1.4 Hkube02:10.0.1. ...

  10. 【转】使用JMeter 完成常用的压力测试(一)

    本文介绍了 JMeter 相关的基本概念.并以 JMeter 为例,介绍了使用它来完成最常用的三种类型服务器,即 Web服务器.数据库服务器和消息中间件,压力测试的方法.步骤以及注意事项. 讲到测试, ...