您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页图像的中值滤波算法及其FPGA实现_胡越黎

图像的中值滤波算法及其FPGA实现_胡越黎

来源:筏尚旅游网


#1672#

计算机测量与控制.2008.16(11) ComputerMeasurement&Control

文献标识码:A

设计与应用

文章编号:1671-4598(2008)11-1672-04 中图分类号:TP751;TN409

图像的中值滤波算法及其FPGA实现

胡越黎1,计慧杰1,吴 频2,宣祥光2

(11上海大学机电工程与自动化学院,上海 200072;21上海飞乐股份有限公司技术中心,上海 200050)

摘要:图像滤波是图像预处理过程中重要的组成部分,而基于FPGA的滤波算法相对软件算法而言具有高度的并行性,能满足实时图像处理的要求,同时也具有灵活的硬件可编程性;简要说明了中值滤波的原理,介绍并比较了标准中值滤波和多级中值滤波的特点和适用范围;针对滤波算法的邻域性特点,设计了基于FPGA的滤波器整体架构,并设计了标准中值滤波和多级中值滤波两种滤波算法的FPGA实现方案和功能仿真,同时通过实验结果对两种算法的滤波效果进行比较说明。

关键词:图像预处理;均值滤波;中值滤波;噪声检测;FPGA实现

ResearchonImageFilteringAlgorithmandItsFPGAimplementation

HuYueli1,JiHuijie1,WuPin2,XuanXiangguang2

(11SchoolofMechatronicsEngineeringandAutomation,ShanghaiUniversity,Shanghai 200072,China

21TechnologyCenter,ShanghaiFeiloCo.,Ltd.Shanghai 200050,China)

Abstract:Imagefilteringplaysanimportantroleinimagepreprocessing.TheFPGAbasedsolutionforfilteringalgorithmsnotonlyprovidesaneffectivemethodtorealizereal-timeparallelprocessingoflargevolumeofdatabutalsopossessestheflexibilityofhardwareprogrammability.Principleofthemedianfilterisintroduced.Thenthestandardmedianfilterandthemulti-levelmedianfilterarepresen-tedandtheirfeaturesarediscussed.Accordingtotheneighboringfeatureoffilteringalgorithms,thewholestructureoftheimagefilterisstudiedandrealizedintheFPGA,andtheFPGAimplementationofthealgorithmsoftwokindsofmedianfiltersareproposedaswell.

Keywords:imagepreprocessing;meanfilter;medianfilter;noisedetection;FPGAimplementation

0 引言

图像信号在形成、传输和记录的过程中,由于成像系统、传输介质、工作环境和记录设备等的固有缺陷,不可避免地产生各种类型的噪声,降低了图像的质量,进而影响后续处理(如边缘检测、图像分割、特征提取、模式识别等)的效果或准确性。因此,对噪声图像进行滤波是必要预处理过程。但滤波算法在去除噪声的同时难免对图像造成一定程度的模糊,造成细节信息的丢失。许多文献对滤波算法进行分析与比较[1],并提出了一系列改进的算法。

[4]

可编程门阵列FPGA的发展给数字信号处理算法开辟了全新的道路,它不仅具有高速的并行运算能力,其设计的灵活性也远远高于专用ASIC和通用DSP。由于FPGA在灵活地改变内部算法时,无需更改外部电路,因此越来越多地被应用于实时图像的预处理算法中。

本文分析了去除噪声常用的中值滤波算法,介绍两种中值滤波算法在FPGA上实现的方法,并给出了以FPGA实现滤波器总体结构的设计方案。

[2-3]

为数据序列中间位置上的值一般不是噪声点的值,从而达到抑制噪声的目的。112 标准中值滤波

标准中值滤波对邻域中的像素按灰度级进行排序,然后选择该组的中间值作为输出像素值。

标准中值滤波对平均分布的噪声抑制效果差,对脉冲声有较好的抑制效果。由中值滤波算法的定义可推知,在n@n的滤波窗口内,若噪声像素点的数量大于n(n+1)/2,则该噪声不会被滤除,为了提高中值滤波的去噪效果,必须增大滤波器窗口。另一方面,若窗口中的图像边缘细节的像素数小于n(n+1)/2,则该细节像素将会被其他像素的灰度值取代,造成了图像细节的模糊。为了保护图像细节边缘,又要求缩小滤波窗口,这是标准中值滤波算法的一个矛盾。113 多级中值滤波

为了改善标准中值滤波效果,Nieminen和Neuvo提出了/多级中值滤波0[6]。

设f(i,j)为图像在(i,j)处的灰度值,W是一个(2N+1)@(2N+1)的滤波窗口。在W内定义4个子窗口:

W1(i,j)=f(i+m,j),-N[m[N

W2(i,j)=f(i+m,j+m),-N[m[NW3(i,j)=f(i,j+m),

令:

Zk(i,j)=med[f(#,#)IWk(i,j)]T1(i,j)=min[Zk(i,j),1[k[4]

T2(i,j)=max[Zk(i,j),1[k[4]

其中,med[]、min[]和max[]分别表示对方括号内的所有元素取中值、最小值和最大值。则多级中值滤波的输出可表

-N[m[N

W4(i,j)=f(i+m,j-m),-N[m[N

1 滤波算法的原理及特点

111 中值滤波

中值滤波[5]基于排序统计理论,是抑制噪声的非线性信号处理技术。其核心运算是以模板中的数据进行排序,使得某个亮点(暗点)的噪声在排序过程中被排在数据序列的两侧。因

收稿日期:2008-01-22; 修回日期:2008-02-27。基金项目:上海市科委技术攻关基金项目(025911323)

作者简介:胡越黎(1959-),男,博士,副教授,主要从事图像处理、MCU设计等方向的研究。

第11期示为:

胡越黎,等:图像的中值滤波算法及其FPGA实现

所示。

#1673#

y(i,j)=med[T1(i,j),T2(i,j),f(i,j)]

多级中值滤波经过4个方向上的中值滤波,提高了与中心像素点有边缘相关性的像素的权重,同时由于进行了最大值与最小值滤波,使第三次滤波时中心像素的权重相对于标准中值滤波算法得到了增强。因此在滤除噪声的同时,中心点及其边缘相关性较强的像素点的灰度值得到了保护,对于处理靠近图像细节边缘的脉冲噪声点,该方法能较好地保护细节。

2 滤波器整体结构的FPGA设计

图像滤波器主要有3部分:滤波窗口生成模块、行列计数器模块和滤波算法模块。其中,滤波算法模块主要介绍上文介绍的标准中值滤波和多级中值滤波的硬件实现方法。211 滤波窗口设计

图像预处理算法往往针对邻域像素操作。以3@3的窗口为例,利用2个FIFO和6个寄存器对图像的行、列数据进行存储,设计滤波窗口如图1所示。

图3 计数控制模块

由图3可知,当行计数值i=1或i=M,或列计数值j=1或j=N,即滤波窗口中心像素处于图像边缘时,直接将输出信号置为零,而在其它时刻则输出算法模块的滤波值。对于实时采集输入的图像数据流,可以采取的计数方法是:在行有效期间以像素时钟对j进行计数,在行消隐期间对j复位;在场有效期间以行有效同步信号对i进行计数,在场消隐期间对i复位。213 滤波算法设计21311 标准中值滤波

对于3@3窗口的中值滤波,采用图4所示的6级比较电路输出中值,其输入数据为图1所示的滤波掩膜所在的图像数据。第一级比较电路由3个三输入比较器C组成,每个比较器的输出数据依序排列(参见图示)。将3组比较结果中最小的3个数放在一起、中间的3个数放在一起、最大的3个数放在一起,参加第二级比较。第二级比较电路的原理与第一级类似,输出out1和out9分别是输入数据中的最大值和最小值,这2个数据将被舍去不参加下一级比较。参加第三级比较的有7个数据,其原理类似于前两级比较电路,输出out2和out8分别是该7个数据的最大值和最小值,并且被舍去,仅留下5个数据参加第四级比较。剩下的几级比较电路以类似于先前的原理进行比较。如此,经过6级比较后即可得到9个数据的标准中值滤波输出值out5,而out1,out2,,,out9分别是这9个数据从最大到最小的顺序排列值。此外,为了保证流水线操作过程中数据的同步性,在第三级和第五级比较电路中需要插入数据寄存器R缓存当前该级中不参与比较的数据。

图1 3@3滤波窗口的FPGA实现

图1中,每个FIFO的地址长度为图像的宽度,即1个FIFO存储1行图像数据,用于图像行数据缓存;6个寄存器分3组两两串接,实现每行数据上列像素的缓存,从而形成一个3@3的滤波窗口,在一个像素时钟周期内并行输出9个数据作为后续算法模块的输入。

212 图像行列计数器设计

对二维图像进行邻域操作时,随着窗口的滑动,中心像素将运动到图像的边缘,但边缘点是不存在邻域的,故此时滤波窗口输出的邻域数据是无意义的。图2所示是滤波窗口变化过程,窗口从(a)到(d)变化的过程中,窗口均是无意义的。

(b)和(c)所示的

图2 滤波窗口变化过程

通常,图像边缘不包含重要信息,很多处理算法将边缘点取为零,因此要设计地址计数器和控制逻辑判断当前被处理像素的位置。对于一幅M@N的图像,设计计数控制模块如图3

图4 标准中值滤波结构图

21312 多级中值滤波

对于3@3窗口的多级中值滤波,采用图5所示的4级比

#1674# 计算机测量与控制 第16卷

较电路。第一级比较电路由4个三输入比较器C组成,分别求出4个子窗口的中值。第二级和第三级比较电路均由2个2输入比较器组成,按类似于标准中值滤波模块的比较方法求出第一级输出的4个数据的最大值和最小值。最后将这2个最大、最小值与窗口中心像素的值进行比较,得出多级中值滤波的输出值。同样地,为了保证流水线操作时数据的同步性,在第二级和第三级比较电路中插入数据寄存器R缓存窗口的中心像素。

波数据,这种流水线操作的方式大大提高了处理速度,非常适合实时的图像处理系统。

两种滤波算法在FPGA上的资源消耗情况如表1所示。其中,前者使用的资源消耗大约是后者的2倍,这主要是因为算法复杂度的关系。从图4和图5的结构也可看出,标准中值滤波需要13个比较器、2个寄存器、而多级中值滤波只用了9个比较器、3个寄存器。而两者的处理速度差不多,后者的流水级数比前者还少2级。

表1 FPGA资源消耗情况

Slices

标准中值滤波多级中值滤波

414199

FlipFlops240104

4inputLUT

788381

4 实验结果

对第3节中设计的两种滤波模块进行功能仿真,利用MATLAB将灰度图像的文件转换成8位0~255的仿真数据,作为滤波模块的输入,经滤波处理后将数据经MATLAB还原成图像文件显示。用该法对算法模块进行仿真,不仅简单有效,还能由图像直接比较滤波效果。这是系统模块化设计的一种方法,设计者能独立地开发算法模块并观察处理结果,而无

图5 多级中值滤波结构

3 滤波算法的FPGA实现

本文设计的图像滤波模块采用Xilinx的VirtexIIProP30FPGA实现,该芯片具有3万多个逻辑单元、2Mb的片内RAM、136个18@18的乘法单元以及时钟管理单元等。

图6 中值滤波仿真波形

图6的(a)和(b)分别是标准中值滤波和多级中值滤波两种算法的仿真波形。从图中可看出,经过时钟上升沿的同步复位后,图6(a)和6(b)分别延迟6个和4个时钟周期后输出第一个滤波数据,而之后的每一个时钟周期都输出一个滤

图7 标准中值滤波与多级中值滤波预处理比较

第11期胡越黎,等:图像的中值滤波算法及其FPGA实现

时处理有很高的应用价值。

参考文献:

#1675#

需依赖其它模块(如采集、显示模块)。

图7是由上海大学微电子中心自主研发的一款8位MCU芯片(MV-05)及其测试平台的部分图像。由图7(c)可以看出,标准中值滤波很好地去除了椒盐噪声,但也在一定程度上模糊了图像:图中的圆孔和竖线变得模糊不清,尤其是图中右下角的数字几乎已经不能分辨;采用多级中值滤波的图7(d)虽然还存在极少数未滤除的椒盐噪声点,但图像的清晰度几乎没有下降,右下角的数字/220清晰可见。比较图7(c)和7(d),不难看出多级中值滤波对图像的细节部分有较好的保护作用,滤波后图像仍能保持较高的清晰度。

[1]宁 媛,李 皖.图像去噪的几种方法分析比较[J].贵州工业

大学学报(自然科学版),2005,34(4):63-66.

[2]ChangJJ.Modified2Dmedianfilterforimpulsenoisesuppression

inareal-timesystem[J].IEEETransactionsonConsumerElec-tronics,1995,41(1):73-80.

[3]NGPE,MAKK.Aswitchingmedianfilterwithboundarydis-criminativenoisedetectionforextremelycorruptedimages[J].IEEETransactionsonImageProcessing,2006,15(6):1506-1516.

[4]尚 明.FPGA技术的应用与发展趋势[J].科技咨询,2007,

14:10-12.

[5]朱 捷,朱小娟,贺 明.基于FPGA的实时图像中值滤波设计

[J].计算机测量与控制,2007,15(6):798-800.

[6]NIEMINENA,NEUVOY.Commentsontheoreticalanalysisof

theMax/medianfilter[J].IEEETransactionsonAcoustics,Speech,andSignalProcessing,1988,36(5):826-827.

5 总结与展望

图像的预处理包括很多算法,如去噪处理等。而为了有效

地去除噪声,应根据噪声类型采用不同的滤波方法。本文分析研究了几种滤波算法的原理和特点,并提出了基于FPGA实现的滤波器的总体设计方案。以该方案为基础,在不改变3@3方形窗模块和行列计数器模块的前提下,只要改变其中的算法实现模块,便可以根据需要实现其它不同的对图像邻域进行操作的算法,如边缘检测等,这在提高运算速度、实现图像实

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务