目录

在Matlab使用高斯滤波器

在Octave高斯滤波器去除噪音

保持两个高斯直行


在Matlab使用高斯滤波器

本文首先使用Matlab展示示例,我要做的是在Matlab中演示过滤中的代码和效果。

基本上,Matlab构建过滤器和应用过滤器是非常常见,甚至琐碎的。

Matlab,我们要做的是定义两件事:

第一:我们将定义内核的大小;(请记住,这就是我们之前谈论的内容)

>> hsize = 31;

在这个例子它将是31乘31。注意是核大小为奇数,注意我才可以把中心像素画下来。

第尔:我们将定义sigma的大小;

我要让sigma为5。

Matlab有一个非常棒的小函数fspecial。

>> sigma = 5;
>> h = fspecial('gaussian', hsize, sigma);

在fspecial中,您可以为其指定参数,其中一个是您想要的过滤器类型。我们选择"gaussian"。

您还必须给它hsize和sigma,才能完成这个函数的操作。

您也可以给它矩形尺寸和多个sigma。完成后,它将为您构建这些过滤器。

事实上,Matlab有一个叫做冲浪的美丽小功能。

>> surf(h);

对,如果你用正确的颜色图画出来,它会把你画成一个曲面,你会看到这个:

您还可以将其显示为俯瞰的图像,

>> imagesc(h);

运行代码后效果如图:

但更重要的是,你可以取你的图像,这是我们这里熊猫的图像:

我可以用这个h对它进行过滤:

>> outim = imfiler(im, h);
>> imshow(outim);

这是我们刚建立的过滤器,然后我可以展示它。那会是什么样子?

这将是一只模糊的熊猫。

此代码是构建过滤器并将其应用于Matlab中的图像所需的全部代码。

这很容易。

同样,根据sigma的大小,我们得到不同的平滑量。

所以这里我们使用三个不同的sigma:1,3和10。代码如下:

>> for sigma = 1:3:10h = fspecial('gaussian', fsize, sigma);out = imfiler(im, h);imshow(out);pause;end

我们使用不同大小的sigmas建立我们的高斯,我们过滤并显示它们,结果如图:

如你所看,我们得到了不会模糊,一般模糊,很模糊的三个不同效果。(注意模糊是由sigma大小决定,而不是内核大小)

这就是在Matlab中构建这些过滤器所需的全部内容。


在Octave高斯滤波器去除噪音

我们谈一下使用滤波器去除噪声,让我们看看它是如何运作的。

让我们加载一个完美的图像。

>> img = imread('saturn.png');
>> imshow(img);

代码运行结果如下:

然后通过添加一些噪音来破坏它。

>> noise = randn(size(img)) .* 25;
>> noise_img = img + noise;
>> imshow(noise_img);

代码运行结果如下:

我应该为这个sigma命名以避免以后混淆。

>> noise_sigma = 25;
>> noise = randn(size(img)) .* noise_sigma;
>> noise_img = img + noise;
>> imshow(noise_img);

最后,我们知道如何创建高斯滤波器。我们定义一个内核大小和一个sigma。

>> filter_size = 11;
>> filter_sigma = 2;

接着我们可以使用图像包中的fspecial函数。所以首先加载包,然后创建过滤器。

>> pkg load image;
>> filter = fspecial('gaussian', filter_size, filter_sigma);

现在,我们可以应用此过滤器来消除噪音。

>> smoothed = imfilter(niose_img, filter);
>> imshow(smoothed);

注意imfilter中参数的顺序:首先是图像,然后是过滤器。

代码运行后:

请注意滤镜是如何平滑的,或者更确切地说是模糊了图像。

像噪音一样的细微颗粒现在被弄模糊了。但是过滤器也对原始图像产生了很大影响。

因此,去除噪音并不神奇。你不可能完全回到最初的状态。

在视觉上,它可能看起来不太令人印象深刻,但是考虑到噪声图像与平滑图像相比,图像处理程序的进一步表现非常不同。

继续,自己运行此代码,你尝试不同的参数来生成噪音和平滑。

保持两个高斯直行

最后,至少要警告或澄清一句话。

我们说过,作为高斯滤波器的宽度,这是模糊平滑的方差。

上次我们谈到Sigma或Sigma平方作为噪声函数的方差时,增加了多少噪声。

在一种情况下,滤波器σ是空间中的宽度,与噪声一样,它是一个值的方差。噪声σ越大,就越有可能产生大的噪声值。

噪声信号越大,添加的噪声越大,模糊滤波器σ(sigma)越大,模糊程度就越大。

所以,你必须是一个合理的sigma,因为他们都使用正态分布。

但是一个超过了一个空间,一个超过了强度。

我们可以在这里展示这两个sigma,顺便说一下,在这里我使用的是从0到1的图像。如图:

在最上面的一行中,没有进行平滑过滤,我们在噪声中有一个0.2的sigma。

0.2对于范围只有0到1,或者-0.5到0.5,那么这是一个很大的噪音。

sigma为0.1噪音较小。

sigma为0.05的噪音更小。

但是我们可以用高斯来平滑这些噪音。

在sigma=0.2时,我们越平滑,红色线的噪音就越模糊。如图:

因此,对于同样数量的平滑,噪声越小,同样数量的平滑就越平滑。

这里的红色圈起来的图像是最平滑的。

但这是向你们展示这两个sigma,这两个高斯。

从上下文来看,它几乎总是清晰的,但是有人会说:“等一下,我认为信号越大,噪音就越大。

现在你告诉我Sigma越多,越模糊,我们拥有的噪音就越少。”

我回答:“sigma为2!”

这结束了有关过滤和噪音的文章。(以后发现有用的相关过滤和噪音的文章会继续补充)

我们将开始进一步新的内容的图像处理。

总结:

1.目前滤波这单元我们学到了,移动平均线和加权移动平均线的概念;

2.相关滤波:均匀权重(移动平均)、不均匀权重的(加权移动平均)。

3.加权移动平均思想最终优化为使用正态分布的高斯滤波器。

4.高斯滤波器针对不同维度有不同的公式。


——学会编写自己的代码,才能练出真功夫。

3.过滤——高斯滤波器之Matlab、Octave实战、保持两个高斯直行_5相关推荐

  1. 用MATLAB编写限幅滤波程序,双二阶滤波器之MATLAB设计及C语言实现

    本文中的例子和代码放在Github First,什么是双二阶滤波器?wiki上是这么说的:二阶.递归.线性,含有两个极点和两个零点,"双二阶"的名字来源于它的传递函数是两个二次多项 ...

  2. 干货分享 基于MATLAB的带噪图像的高斯滤波论文

    基于MATLAB的带噪图像的高斯滤波 摘要:图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声.脉冲噪声.高斯噪声等.椒盐噪声含有随机出现的黑白 ...

  3. 基于MATLAB的带噪图像的高斯滤波

    基于MATLAB的带噪图像的高斯滤波 摘要:图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声.脉冲噪声.高斯噪声等.椒盐噪声含有随机出现的黑白 ...

  4. 图像处理中的滤波器之均值滤波,中值滤波,高斯滤波

    1.均值滤波 原理: 均值滤波采用线性的方法,使用模板内所有像素的平均值代替模板中心像素灰度值 特点: 不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去 ...

  5. OpenCV 高斯滤波

    高斯噪声:噪声的概率密度分布是正态分布 高斯噪声用途:去除高斯噪声 如果原图是彩色图片,可以对RGB三个通道分别做高斯平滑. cv2.GaussianBlur(src,ksize,sigmaX,sig ...

  6. 高斯滤波的理解与学习

    高斯滤波的理解与学习 微信公众号:幼儿园的学霸 目录 文章目录 高斯滤波的理解与学习 目录 前言 高斯函数 一维高斯函数 二维高斯函数 高斯滤波过程 高斯核求解 利用高斯核滤波 高斯滤波步骤 高斯滤波 ...

  7. 【OpenCV 4开发详解】高斯滤波

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  8. 图像滤波之高斯滤波介绍

    1 高斯滤波简介 了解高斯滤波之前,我们首先熟悉一下高斯噪声.高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声.如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的, ...

  9. 图像处理:高斯滤波算法

    目录 前言 概念介绍 基本原理 卷积核的大小 卷积核的形状和权重比 卷积核的归一化 结论 Opencv实现高斯滤波 Python手写实现高斯滤波 参考文章 前言 在此之前,我曾在此篇中推导过图像处理: ...

最新文章

  1. Java的IO:BIO | NIO | AIO
  2. Android 物联网 传感器
  3. 12864液晶使用例程
  4. 提高代码的运行效率 (3)
  5. x220linux蓝牙驱动,ThinkPad X230 Bluetooth 蓝牙驱动程序下载(Windows 7/Vista)
  6. android gson解析json
  7. git系列之-放弃修改
  8. linux mount iso文件系统,在linux系统上永久挂载ISO像镜文件
  9. python三大框架_python 三大框架的 介绍。
  10. 聪明人为何无法征服世界?
  11. 计算距离春节还有多长时间
  12. RDLC报表横向放纸不能横向打印问题解决
  13. 如何下载PLSQL Developer历史版本?
  14. FleaPHP 开发指南 - 2. FleaPHP 中的 MVC 模式
  15. 银行家算法资源分配问题(例子!!!)
  16. Python中的3D绘图命令~放到论文或PPT里太加分了
  17. 和菜鸟一起学证券投资之消费物价指数CPI
  18. [计算机网络] CSMA/CD 协议限定数据帧最小长度为 64B 不变,根据给定的数据传输速率计算得到争用期长度
  19. 小米VR nolo 安装调试简介
  20. iOS:App跳转到App Store评分

热门文章

  1. 红橙Darren视频笔记 点赞效果 动画练习
  2. js学习 字符串常用方法
  3. 设置python的中文字体显示
  4. carla安装之clang版本问题
  5. pycharm不能输入代码或删除代码
  6. mysql教程排序_MySQL中的排序函数field()实例详解
  7. 对称加密和非对称加密大概介绍和区别
  8. day31 java的多线程(1)
  9. 论述计算机与外设的访问控制方法,试论述计算机与外设访问控制的方法有多少种各有什么优缺点...
  10. vuex状态持久化_Vuex持久化存储之vuex-persist