MATLAB应用在基于噪声检测的图像均值去噪法

发布者:kappa20最新更新时间:2011-05-28 关键字:MATLAB  噪声检测  图像均值去噪法 手机看文章 扫描二维码
随时随地手机看文章

  引言

  图像是用各种观测系统以不同形式和手段观测客观世界而获得的,可以直接或间接作用于人眼并进而产生视知觉的实体,是人类感知世界的视觉基础,是人类获取信息、表达信息和传递信息的重要手段。研究表明,人类获取的视觉图像信息在人类接受的信息中的比重达到75%,“百闻不如一见”便是非常形象的例子之一。在高度信息化条件下的今天,数字图像越来越得到普及和应用。

  然而,人们在获取和传输数字图像的同时,难免于图像数据被外界噪声所污染,妨碍了人们对图像信息的理解。由此,图像去噪技术应运而生。图像去噪,即在尽可能地不损失原图像细节的前提下,去除图像中无关的噪点。现有的图像去噪方法[11很多,如:

  1 均值滤渡器

  均值滤波器是一种典型的线性去噪方法,因为其运算简单快速,同时又能够较为有效地去除高斯噪声。因而适用面较广。

  许多滤除噪声方法都是在此基础上发展而来的。其缺点是严重破坏了图像的边缘,模糊了图像。

  2 低通滤波器

  低通滤波器,信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的;而在较高频段,感兴趣的信息常被噪声所淹没。因此。一个能降低高频成分幅度的滤波器就能减弱噪声的看的见的影响。这是一种频域处理法。在分析图像信号的频率特性时,一幅图像的边缘、跳跃部分以及颗粒噪声代表图像信号的高频分量,而大面积的背景区则代表低频分量。用滤渡的方法滤除其高频部分就能去掉噪声,使图像得到平滑。但同时,有用的高频成分也滤除了。因此这种处理是以牺牲清晰度为代价的。

  3 中值滤波器

  中值滤波器是一种消除噪声的非线性处理方法,它是由Tueky在1971年提出的。它的基本原理是把数字图像或数字序列中一点的值用该点的一个邻近各点值的中值代替。中值定义如下:对一个数字序列的元素进行排序,如果元素个数为奇数,则取排序后序列的中间值。如果序列元素个数为偶数,则取排序后序列的中间两个值的均值。

  把一个点的特定长度或形状的领域称作窗口。在一维情况下,中值滤波器是一个含有奇数个像素的滑动窗口。窗口正中问那个像素的值用窗口内各像素值的中值代替。

  该滤波器是一种典型的非线性处理方法。它的优势在对图像中脉冲噪声消除极为有效,且能够较好地保护图像边缘信息。

  弱点是因为涉及大量排序运算,运算速度较慢,对图像的实时处理有影响。图像一般要传化成数字图像后才可以使用计算机对其进行各种处理。数字图像,是以数字的形式而存在的。利用MATLAB(矩阵实验室)进行处理时,我们简单地理解它为一定大小的数字矩阵。矩阵中的每个效字代表图像的一个像索点。由此可以知道,对数字图像的处理,实际上就是对一个数字矩阵的运算处理。

  为了研究方便,我们的方法是人工的给原图像添加噪声·主要是不同强度的正态分布随机噪声和脉冲噪声。在MATLAB中,正态分布噪声是由randn函数实现的,而脉冲噪声,即平常所说的椒盐噪声,是由imnoise(Io,’saIt 8L pepper,i)实现的。其中Io是原图像矩阵,i取值。至1之间,表示噪声的强度。[page]

  通过研究,发现一种新的改进的均值滤波器[2]。在考虑如何对图像的噪声进行处理时,难以避免的,需要面临噪声点的检测问题。因为一张含噪图像中,只有一部分的像素受到了噪声的污染,而其余的像素仍保持原值。无条件地对所有的像素点进行滤波,显然在去除噪点的同时,使原图像发生了失真。所以为了更有针对性地处理图像中的躁点,最好的做法就是先对噪声进行检测。然后利用非噪声点的平均值来代替每个像素的灰度,而不是上面传统方法中的盲目运算。其下面通过实例来验证这种方法的优越性:

  采用尺寸大小为162×120的图像文件shoes.jpg。使用im-眦d函数将其载人到MATLAB中,为了简便。我们先用瑁b29ray函数将其转换为单维的灰度图像,灰度范围[o,255]

  (见图1)。在原图基础上加入噪声密度为o.2的脉冲噪声,可以用imnoise函数加入椒盐噪声,也可以用randn加入正态分布的随机噪声,这样就得到了含噪的图像。芝麻盐状的雪*点随机地分布在图像矩阵巾(见图2)。

 

原灰度图像
加噪后的图像[page]

  一般来说,图像中像素的灰度值是连续渐变的。

  而如果存在噪点,那么在原图像素和噪点之间的灰度值会发生突然的变化。基于此,首先取待检测点的上、下、左、右四个邻域大小为3×3,计算各邻域的平均值,如果四个邻域的均值都与待检测点的差的绝对值大于既定的阈值,则判断该点为噪点,反之,有一个邻域的均值与待测点的差小于阈值。则判断该点为正常像素点。其中;阕值是我们根据图像的含噪情况人为设定的一个值,一般在100和200之问。同时。建立与待检测图像大小相同的矩阵,称为噪声标识矩阵。其中的点与原图像矩阵中的点一一对应。并预设该矩阵中的值全为1,如果一像素被判断为噪声,则置标识矩阵中相应元素为o.这样,就可以实现前面判断过程所得出的结果被后续的检测所使用,已经被判定为噪声的像素不再参与领域均值的计算。

  这样,我们就可以用一个循环,来对图像矩阵中的每个像素逐个进行判断,方便地检测到了噪声点。

  接下来,就可以利用中值滤波的方法,去除图像中的噪点了,将预先判断为噪点的图像矩阵中的点,如(a。b)=(70.S5)的点的值是230,与邻域点的均值的差大于两值150。因此翔断它是一个噪点。这样,我们就用它邻域内的八个点中有效的点来取均值代入。依次执行,挨个计算、代人。这样就得到了一个新的图像数据矩阵,最后我们用i眦Ilow函数显示处理后的图像(见图3)。可以看到。效果非常明显。

处理后的图像


  4 结语

  去噪后的图像不仅噪声强度受到限制,而且图像细节得到了最大限度的保持,解决了妨碍人们获取图像信息的同胚。在航空航天、通信工程、生物医学、军事公安、文化艺术等领域都具有一定意义。


关键字:MATLAB  噪声检测  图像均值去噪法 引用地址:MATLAB应用在基于噪声检测的图像均值去噪法

上一篇:基于DSP的抖动测量的方案
下一篇:纳米器件电流-电压(I-V)特性测试

推荐阅读最新更新时间:2024-03-30 22:14

基于谐波检测中的数字低通滤波器的MATLAB设计
由于电力系统中非线性电子元件的大量使用,使得谐波污染问题日益严重,当谐波含量超过一定限度时就可能对电网和用户造成极大的危害,且增加线路损耗,降低线路传输能力,干扰通信信号等。因此,应该积极寻找一种治理谐波污染的有效手段。 目前有源电力滤波器(APF)是治理电网谐波污染的一种有效手段,APF的补偿原理是实时产生一个与系统中的无功和谐波电流大小相等、方向相反的补偿电流,用以抵消非线性负载产生的无功和谐波电流,使流入电网的电流全是有功分量,因此无功和谐波电流的实时检测就成为实时补偿的关键。而谐波及无功电流的检测实质就是低通滤波器的设计。本文利用MATLAB中的FDATool实现了对数字低通滤波器模型的快速设计,并采用VHDL语言在FP
[测试测量]
基于谐波<font color='red'>检测</font>中的数字低通滤波器的<font color='red'>MATLAB</font>设计
Matlab与C/C++混合编程接口及应用
  1 引言   Matlab 是当前应用最为广泛的数学软件,具有强大的数值计算、数据分析处理、系统 分析、图形显示甚至符号运算等功能 。利用这一完整的数学平台,用户可以快速实现十分 复杂的功能,极大地提高工程分析计算的效率 。但与其他高级程序 相比,Matlab 程序 是一种解释执行程序,不用编译等预处理,程序运行速度较慢 。   C/C++语言是目前最为流行的高级程序设计语言之一 。它可对操作系统和应用程序以 及硬件进行直接操作,用C/C++语言明显优于其它解释型高级语言,一些大型应用软件如 Matlab 就是用C 语言开发的。   在工程实践中,用户经常遇到Matlab 与C/C++混合编程的问题。本文基于Mat
[嵌入式]
直流无刷电机的工作原理及Matlab/Simulink仿真分析
前言 系列文章将更新直流无刷电机的工作原理、仿真控制以及应用STM32开发板与驱动板完成对直流无刷电机的实际控制。 一、直流无刷电机简介 直流无刷电机(Brushless Direct Current Motor,BLDC)没有了直流有刷电机的电刷及换向器等结构,线圈绕组不参与旋转而是作为定子,永磁体作为转子,通过控制线圈电流方向来改变磁场方向,从而使转子持续旋转。 与直流有刷电机相比直流无刷电机使用寿命长、噪音低、转速快,但是价格较高,控制较为复杂。 下图为直流有刷电机与直流无刷电机的结构图对比。 二、直流无刷电机的工作原理 通电导体产生磁场,方向由安培定则确定。 磁场具有同性相吸,异性相斥的特性,BLDC正是利用通电线
[单片机]
直流无刷电机的工作原理及<font color='red'>Matlab</font>/Simulink仿真分析
一种不跳动的机电心脏设计
  尽管人工心脏成功延长了一些心脏病人的生命,但一直存在的几个设计缺陷仍然限制了它们的使用。目前,这些电动机械心脏所依靠的是容积血泵,而容积血泵的体积过于庞大。这些血泵的确很大,甚至连最新式的自行运作心脏都不能够轻易地装入较小的胸腔中。另外,容积血泵具有的运动、循环加载部件也比工程师考虑到稳定性所希望看到的要多。德克萨斯心脏研究所正在研发的一种新型机电心脏,将采用一种不同的血液泵和不同的精密控制算法,恰好就能够解决这两个问题。   与采用一个容积血泵来模仿一颗自然心脏的跳动不同,德克萨斯心脏研究所的全人工心脏(TAH)设计采用的是一对连续流动轴流泵。一个肺部循环泵把缺氧血液输送到肺脏并把充氧血液带回到心脏;而一个全身循环泵则把充
[医疗电子]
一种不跳动的机电心脏设计
基于MATLAB的实时数据采集与分析研究
  1、引言    数据采集系统涉及多学科,所研究的对象是物理或生物等各种非电或电信号。根据各种非电或电信号的特征,利用相应的归一化技术,将其转换为可真实反映事物特征的电信号后,经A/D转换器转换为计算机可识别的有限长二进制数字编码,以此作为研究自然科学和实现工业实时控制的重要依据,实现对宏观和微观自然科学的量化认识,典型的数据采集系统组成如图1所示。    在采集过程中,将传感器获取的参数通过A/D转换送入内存,然后由CPU对其进行分析、运算和处理,如数字滤波、量纲变换、误差修正、数字显示等。在本文中,尝试通过利用MATLAB的数据采集工具箱对自主设计的数据采集系统 进行模拟仿真,结果实现了对设计系统的模拟操作检验与数据分
[工业控制]
基于SIMULINK的心电信号源系统设计分析
  心电信号主要频率范围为0.05"100Hz,幅度约为0"4mV,信号十分微弱。由于心电信号中通常混杂有其它生物信号,加之体外以500Hz工频为主的电磁场干扰,使得心电噪声背景较强,测量条件比较复杂,为医学研究、救治和教学带来一定困难。本文通过对心电信号的特征分析,提出了基于MATLAB/SIMULINK的心电信号仿真方法,采用快速原型技术通过输入/输出卡,将虚拟仿真信号转化生成实际的物理电信号,并与实际硬件电路连接起来,构成心电信号的半实物仿真模型。    基本原理   心电信号   一个典型的心电信号如图1示,它由P波、Q波、R波、S波和T波组成,在诊断过程中可以根据这些特征波的间隔幅值以及P-R间隔、S-T间隔和
[模拟电子]
MathWorks发布新版MATLAB和Simulink,新增数百项新特性
MathWorks 宣布,发布 MATLAB 和 Simulink 产品系列版本 2021a。版本 2021a (R2021a) 带来数百项 MATLAB® 和 Simulink® 特性更新和函数更新,还包含 3 款新产品和 12 项重要更新。MATLAB 现支持在实时脚本中使用动态控件,以及在实时脚本中使用任务添加绘图,同时无需编写代码。Simulink 现支持用户将 C 代码作为可重用的 Simulink 库导入,并可加快仿真速度。R2021a 还推出了针对卫星通信、雷达和 DDS 应用领域的新产品。如需了解详情,请观看版本 2021a 简介视频。 R2021a 推出的新产品包括: ·Satellite Communi
[半导体设计/制造]
MathWorks发布新版<font color='red'>MATLAB</font>和Simulink,新增数百项新特性
Matlab中实现FPGA硬件设计
摘要:System Generator for DSP是Xilinx公司开发的基于Matlab的DSP开发工具同时也是一个基于FPGA的信号处理建模和设计工具。文章介绍了在Matlab中使用System Generator for DSP实现FPGA硬件设计的方法,同时给出了一个应用实例。 关键词:Matlab;FPGA;System Generator;DSP 近年来,在数字通信、网络、视频和图像处理领域,FPGA已经成为高性能数字信号处理系统的关键元件。FPGA的逻辑结构不仅包括查找表、寄存器、多路复用器、存储器,而且还有快速加法器、乘法器和I/O处理专用电路。FPGA具有实现高性能并行算法的能力, 是构成高性能可定
[半导体设计/制造]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved