Emgu学习之(五)——图像模糊处理
Visual Studio Community 2015 工程和代码:http://pan.baidu.com/s/1Qia0Q
内容
在这篇文章中将提到以下内容:
- 中值模糊
- 高斯模糊
图像模糊能有效的去除图像的噪点。
“平滑处理也称模糊处理,是一项简单且使用频率很高的图像处理方法。平滑处理的用途有很多,但最常见的是用来减少图像
上的噪点或者失真。”——《学习OpenCV(中文版)》
中值模糊
中值滤波是指以一个像素点为中心点,在这个中心点的正方形邻域内求所有像素的中间值,然后用这个中间值替换邻域内所有
点的像素值。中值滤波器可以有效的去除图像中的椒盐噪声和斑点噪声。
Emgu的Image类提供了SmoothMedian方法,这个方法只需要一个参数,即在执行中值滤波时的卷积核的大小。卷积核是
一个奇数行和列的矩阵,卷积核越大,滤波器的效果越明显。以下是使用SmoothMedian方法对一张满是椒盐噪声的图片进行处
理的代码和结果:
var image = new Image<Bgr, byte>(Properties.Resources.ai);
imageBox1.Image = image;//显示原图像
imageBox2.Image = image.SmoothMedian();//使用5*5的卷积核
代码效果如下:

高斯模糊
高斯滤波用卷积核与输入图像的每个点进行卷积,将最终计算的结果作为这个点的值。也就是说图像的每个点都是由其本身和
邻域内的点经过高斯滤波卷积核进行加权平均得到的。
高斯核其实就是一个矩阵,这个矩阵符合高斯分布,即矩阵中心的值最大,其余根据距离中心元素的距离递减,构成一个高斯
小山包:

在使用高斯模糊的方法时,我们需要指定高斯卷积核的高度和宽度(必须是奇数),还有高斯小山包的坡度参数,坡度参数分
为X方向和Y方向。如果坡度参数为0,那么方法会根据核的大小自动帮我们计算,如果只设置了X方向的值,那么Y方向采用X方向
的值。
Emgu的Image类提供了SmoothGaussian方法进行高斯模糊,SmoothGaussian有两种重载实现,一种我们只需要传入
卷积核大小参数,另外一个我们还需要传入X、Y方向的坡度参数。
var image = new Image<Bgr, byte>(Properties.Resources.ai);
imageBox1.Image = image;//显示原图像
imageBox1.Image = image.SmoothGaussian();
执行效果:

Emgu学习之(五)——图像模糊处理的更多相关文章
- 从零开始学习jQuery (五) 事件与事件对象
本系列文章导航 从零开始学习jQuery (五) 事件与事件对象 一.摘要 事件是脚本编程的灵魂. 所以本章内容也是jQuery学习的重点. 本文将对jQuery中的事件处理以及事件对象进行详细的讲解 ...
- 前端学习 第五弹: CSS (一)
前端学习 第五弹: CSS (一) 创建css: <link rel="stylesheet" type="text/css" href="my ...
- C#可扩展编程之MEF学习笔记(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...
- Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition
Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition Property animation系统还提供了对ViewGroup中的View改变 ...
- 六、Android学习第五天——Handler的使用(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 六.Android学习第五天——Handler的使用 注意:有很多功能是不 ...
- Emgu学习之(四)——图像阈值
http://www.cnblogs.com/CoverCat/p/5043833.html Visual Studio Community 2015 工程和代码:http://pan.baidu.c ...
- Emgu学习之(二)——图像读取、显示、保存
visual Studio Community 2015 工程和源代码:http://pan.baidu.com/s/1o6u5Fdw 内容 在这篇文章中将提到以下内容: 从文件中读取图像 Image ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- java之jvm学习笔记五(实践写自己的类装载器)
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...
- 文本分类学习 (五) 机器学习SVM的前奏-特征提取(卡方检验续集)
前言: 上一篇比较详细的介绍了卡方检验和卡方分布.这篇我们就实际操刀,找到一些训练集,正所谓纸上得来终觉浅,绝知此事要躬行.然而我在躬行的时候,发现了卡方检验对于文本分类来说应该把公式再变形一般,那样 ...
随机推荐
- 九、双端队列LinkedBlockDeque
一.简介 JDK通过BlockQueue阻塞队列实现了生产者-消费者模式,生产者向队列添加数据,消费者从队列里面消费数据. 但是在有些场景里面,我们是无法区分生产者消费者的,或者说既是生产者,也是消费 ...
- CodeForces 616A(水题)
while(t--) 最后结果t=-1 #include <iostream> #include <string> #include <cstring> #incl ...
- C#学习笔记(基础知识回顾)之值类型和引用类型
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...
- 1142 奖学金 sort做法
个人博客:doubleq.win 1142 奖学金 2007年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目 ...
- encodeURIComponent() 函数的使用
说明:encodeURIComponent() 函数可把字符串作为 URI 组件进行编码. 维护项目中,遇到一个登录的问题:(用户的loginName为33195221,密码为147258369+), ...
- 使用input做简单的上传图片
css 代码: .container{ width: 200px; height: 200px; border: 1px solid #666; } HTML 代码: <input type=& ...
- 已注册成Portal联合服务器的Server,如何修改机器名?
1.产品版本 ArcGIS for Server 10.2.2 2.修改说明 本环境中,Portal for ArcGIS和ArcGIS for Server两个产品安装在同一台机器上.安装前已将完全 ...
- C++学习笔记(7)----类的数组中构造函数和析构函数的调用顺序
C++类的数组中构造函数和析构函数的调用顺序(2) 对于如下的代码: #include<iostream> using namespace std; class CBase { priva ...
- php中http_build_query函数
http_build_query ( array $formdata [, string $numeric_prefix ] ) 使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求 ...
- C#-XML-数据传输
http://www.cnblogs.com/fengxuehuanlin/p/5631664.html 关于xml是属于一个比较重要的东西,在平时开发的过程中,这块内容最主要的是要掌握XML内容的读 ...