图像中值滤波算法及其FPGA的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
邮局订阅号:82-946120元/年技术创新
嵌入式与SOC
《PLC 技术应用200例》
您的论文得到两院院士关注
图像中值滤波算法及其FPGA 的实现
Image Median Filter Algorithm and FPGA Implementation
(湖南大学)
侯法柱彭楚武方亮
HOU Fa-zhu PENG Chu-wu FANG Liang
摘要:图像滤波是图像预处理的重要部分,但由于滤波过程中需要处理的数据量较大,采用软件的方法难以满足实时性的要求。
利用现场可编程门阵列(FPGA)的并行处理能力,提出了一种基于FPGA 的快速中值滤波算法,相对与传统的中值滤波算法有较大的改进,减少了数据的比较次数,处理速度得到提高,并使用Matlab 和Modelsim 进行联合仿真,结果证明该算法滤波效果良好。
关键词:现场可编程门阵列;中值滤波;图像预处理;硬件描述语言中图分类号:TP911.73文献标识码:A
Abstract:Image filtering is an important part of the image preprocessing.However,this process needs to deal with large amount of data,using software methods can not meet the requirements of real-time.Making use of parallel processing features of the field-pro -grammable array,this paper proposed a new algorithm of median filter based on FPGA.There was a greatly improved in the process -ing speed,compared with the conventional median filter.The results show that the algorithm can achieve a good filtering effect.Key words:FPGA;median filter;image preprocessing;VHDL
文章编号:1008-0570(2011)01-0069-03
1引言
在图像的采集和传输过程中,由于获取图像的工具和方法等因素的影响,不可避免地产生各种类型的噪声,从而使图像质量降低,进而影响后续处理的效果。
因此,需要对图像进行一些图像滤波、图像增强等预处理,以提高图像的视感质量。
在图像预处理中,由于处理的数据量较大,选用软件实现会比较慢,因
此选用硬件的方法来实现比较适合。
现场可编程门阵列(FPGA)是现在运用非常广泛的可编程逻辑器件,FPGA 在设计上可以实现硬件的并行流水线(pipeline)技术,而这些是在DSP 上无法实现的。
因此,对图像的预处理选用FPGA 来实现是比较理想的方案。
中值滤波是一种非线性的滤波方法,既可以消除随机噪声和脉冲干扰又可以很大程度的保留图像的边缘信息,在图像平滑和数据分析处理等多个领域中得到广泛的应用。
本文就是采用FPGA 来实现一种快速的中值滤波器的设计,并用Model -sim6.1g 和VHDL 语言来进行仿真验证。
2图像中值滤波原理
2.1传统中值滤波
中值滤波(Median Filtering)是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术。
其基本原理是对图像中的每一个合法的像素点领域中的像素按照灰度级进行排序,然后将该组的中间值输出,作为该像素点的值。
传统的中值滤波定义如下:
g(x,y)=median{f(s,t)}s,t ∈S xy
其中:g(x,y)和f(s,t)分别为输出和输入的像素灰度值,S 为模板窗口。
S 可以为线形、
方形、十字形等。
传统的中值滤波算法需要对模板窗口中的所有的像素进行排序,然后取中间值输出。
排序的过程中要对所有像素的值进行比较和交换,像素间的比较次数是影响排序速度的重要因素。
对于一个像素数为N 的模板窗口,需要进行N(N-1)/2次比较。
因此,传统的算法虽然简单,但运算量较大,所需的硬件单元较多,速度慢,无法满足实时性要求。
2.2快速中值滤波
针对传统中值滤波在实现中的缺点,文献中提出了一种快速滤波算法,将有m ×m 像素的二维阵列的每一列进行排序,再对每一行排序,最后取对角线像素的中值即为所求的中值。
对于3×3的模板窗口,列排序运算需要3×3=9次比较,行排序同样也需要9次比较,将对角线上的三个像素进行比较取中值需要
3次比较运算。
对一组9个像素取中值一共需要进行21次比较运算。
为了以最少的比较次数找到中值,本文利用文献中对策论一节介绍的算法,其效率远远优于对整个序列排序,其算法如下:
首先对窗口中的每一行的3个像素进行升序排序,分别得到3个有序序列,然后将这3组有序序列按其中值(2、5、8)大小进行升序排序。
如图1所示,对于最终所得的窗口,在其中值最小的这组数据中,l 和2不可能是中值,因为窗口中至少有5个数据比它们大;在其中值最大的这组数据中,8和9不可能是中值,因为窗口中至少有5个数据比他们小;在中值这组数据中,不能确定有4个以上的数据比它们大或者小。
这样3,4,5,6,7这5个数中的中间值就是最后窗口的中值。
5个元素求中值需要6次比较,但是4,5,6已经有序,故省去了2次,可知最终需要16次比较可以找到9个元素的中值。
图1中值滤波算法
侯法柱:硕士研究生
69--
技术创新
《微计算机信息》2011年第27卷第1期
120元/年邮局订阅号:82-946
《现场总线技术应用200例》
嵌入式与SOC
3滤波器硬件实现
图像滤波器主要有3部分组成:滤波窗口生成模块、行列计数器模块、
中值滤波模块。
3.1滤波窗口生成设计
对图像的中值滤波首先要生成3×3的滤波窗口,利用一个3进制的计数器和12个寄存器来存放3×3窗口模板中的数据,第一个时钟读第一行第一列数据,第二个时钟读第二行第一列数据,第三个时钟读第三行第一列数据。
用一个地址发生器来产生读取数据的地址,该部件由一个计数器和一个状态机组成,对于256×256的图像,设初始地址为addr=0,窗口地址生成的顺序为:A11=addr,A21=A11+256,A31=A21+256,A12=addr +1,A22=A12+256,A32=A22+256,A13=addr+2,A23=A13+256,A33=A23+256,每输出3个数据,计数器输出地址(addr)增加1,读入新一列数据,依此类推。
产生地址的状态机部分代码如下,其中con1=256:
case pre_state is
when addr0=>addr_out<=addr;
//地址A11
addr_in<=addr+con1;//A11+256next_state<=addr1;when addr1=>addr_out<=addr_in;//地址A21
addr_in<=addr_in+con1;//A21+256
next_state<=addr2;when addr2=>
addr_out<=addr_in;//地址A31next_state<=addr0;//循环end case
窗口模块结构如图2所示。
图23×3滤波窗口的实现
其中,CNT 为计数器将时钟信号延迟3个时钟,前面的3个寄存器的作用是将串行数据,转换为模板窗口的一列,实现数据的并行输出。
后面的9个寄存器用来存放3×3的滤波窗口,每3个时钟周期A1、A2、A3将一列的数据输出,把数据填到窗口的第一列,并把原来窗口的第一列推入第二列,第二列推入第三列。
从而形成3×3的滤波窗口,在一个时钟周期内并行输出9个数据作为中值滤波的输入。
刚开始时,需要9个时钟周期生成3×3的滤波窗口,之后会每相隔3个时钟周期就会产生一个新的窗口。
3.2行列计数设计
对图像进行中值滤波时,当中心像素位于图像的边缘时,3×3的滤波窗口读到的部分数据并非其领域,此时滤波器的输出是无意义的。
通常,图像的边缘不包含重要的信息,故可以将边缘的像素置为零。
该模块主要是用来判断当前中心像素的位置,
从而进行边缘控制。
对于M ×N 的图像,计数控制如图3所示。
图3计数控制流程图
当行计数值row=1或row=M 、列计数值col=1或col=N 时,滤波窗口中心像素位于边缘,直接输出零,否则进行滤波后输出。
3.3中值滤波器设计
本文采用3×3的滤波窗口,如图4所示。
第一级是3个3输入的比较器,完成行排序;第二级先对3行的中值比较,然后按中值大小从小到大将3行排序;第三级将3号与4号比较取其大值,6号与7号比较取其小值;第四级对上一级产生的两个值和5号再比较,最后输出的就是滤波的中值。
图4中值滤波器结构图
4滤波算法的FPGA 实现及结果
图5中值滤波仿真图
本文设计的滤波器采用Altera 的Cyclone Ⅱ系列中的EP2C20F484C7实现,该芯片内部有18752个LE,52个M4K-RAM,26个乘法器和4个锁相环等。
为了能够进行滤波仿真,利用Matlab 将一幅256×256图像转化为激励文件,然后使用
70--
邮局订阅号:82-946120元/年技术创新
嵌入式与SOC
《PLC 技术应用200例》
您的论文得到两院院士关注
Modelsim6.1进行仿真,并将结果输出在Matlab 中显示。
图5是在Modelsim 中利用Testbench 对窗口生成和滤波器的仿真,d11…d33为滤波窗口,gray_in 是图像灰度值输入,filtout 为滤波输出,从第10个时钟周期开始输出,之后每隔3个时钟输出一个滤波值。
图6中a 为加入1%椒盐噪声的原图,b 为Matlab 处理后的图像,c 为本文的滤波处理效果,其四周的黑线是由于边缘像素置零。
通过对比,该滤波算法有比较好的效果。
a 加入1%噪声
b Matlab 滤波效果
c 本设计滤波效果图6滤波效果图
5结论
图像预处理包括很多种算法,本文主要介绍了中值滤波算法,先介绍了传统的中值滤波和已有的算法改进,在此基础上提出采用基于FPGA 实现的滤波算法,对3×3的滤波窗口只需要比较16次即可求出中值,提高了滤波的速度,充分利用了FPGA 的并行处理能力,适合实时图像的滤波。
对于不同的滤波窗口或滤波算法只需要对相应的模块设计进行修改。
本文作者创新点:提出了一种基于FPGA 实现的快速中值滤波算法,该算法只需比较16次即可求出中值,并在FPGA 上验证实现,能有效地去除图像中的噪声。
采用一种新的方法将串行数据转换为3×3的滤波窗口。
参考文献
[1]王成,吴继华,范丽珍等.Altera FPGA/CPLD 设计[M].北京:人民邮电出版社,2005.
[2]冈萨雷斯.数字图像处理[M].北京:电子工业出版社,2003.
[3]付昱强.基于FPGA 的图像处理算法的研究与硬件设计[D].南昌:南昌大学,2006.
[4]Sara Baase,Allen Van Gelder.计算机算法-设计与分析导论[M].北京:高等教育出版社,2001.
[5]万海军,何东键,徐尚忠.基于FPGA 的图像中值滤波算法硬件实现[J].微计算机信息,2008,7-3:280-282.
作者简介:侯法柱,(1981-),男(汉族),河南新乡人,湖南大学电气与信息工程学院硕士研究生,主要研究方向是图像采集与处理;彭楚武(1949—),男(汉族),湖南长沙人,教授,研究方向机电一体化、微机实时控制系统等。
Biography:HOU Fa-zhu,male,born in November,1981,Han,master of College of Electrical and Information Engineering,Hu -nan University.Research Field:Image Acquisition and Process -ing.
(410082湖南大学电气与信息工程学院)侯法柱彭楚武方亮通讯地址:(410082湖南省长沙市湖南大学电气与信息工程学院13舍310室)侯法柱
(收稿日期:2010.05.24)(修稿日期:2010.08.24)
(上接第44页)
II The design of the receiving and storage software Figure 6
4Summary
By testing,the temperature and pressure data collector based on HART protocol is better than the traditional pressure and tem -perature collection instruments.It has the following advantages:
(1)High intelligence.It can realize two-way digital communi -cations,has the capabilities of self-diagnostic and remote diagnos -tic,with inquiring function,and has great capacity.
(2)Using the power lines for data transferring,which reduce the cost and failure rate,and realized the quick dependable com -munications.
(3)Can set the parameter through the surface host-computer,easy maintenance
(4)High accuracy,strong anti -interference,long -distance transmission.References
[1]HART Communication Foundation Document Number:HCF -SPEC-54HART FSK Physical Layer Specification[S].
[2]Weimin,The principle and application of the Smar HT2012HART Modem,Anhui Vocational and Technical College of elec -tronic,2004.5
[3]Helimin,《The User Guide of the MCU ’s Peripheral equipment 》,
buaapress,1992
[4]Wangjun,Design of Smart Pressure Transmitter Based on HART 6,Process Automation Instrumentation Vol.29No.7July 2008[5]Lijie,Data Remote Communication and Management of Flowmeter Based On HART Protocol.Microcomputer Information.Vol.362009
Biography:SONG Quan -you (1963-),Man (The Han nationali -ty),Henan Province,Henan Vocational and Technical College of Communications,Associate Professor,Master Degree,Major in Communication and Information System.
(Communication Institute,Henan Vocational and Technical College of Communications,Zhengzhou 450052,China)SONG Quan-you GUO Bin
Mailing Address:(Communication Institute,Henan Vocational and Technical College of Communications,Zhengzhou 450052,China)SONG Quan-you
(收稿日期:2010.06.04)(修稿日期:2010.09.04)
71--。