基于FPGA的灰度形态学滤波器实现

发布者:二进制心灵最新更新时间:2010-12-18 来源: 柳国普 张桂林 张 宁关键字:FPGA  滤波器  灰度形态学 手机看文章 扫描二维码
随时随地手机看文章

  摘  要: 阐述了灰度形态学滤波的原理和基本操作,给出了3×3结构元素灰度形态学滤波器的硬件结构,详细描述了该滤波器在Xilinx公司的XC2S400E芯片上实现的过程和仿真的方法,并说明了需要注意的问题。

  数学形态学滤波是数字图像处理和计算机视觉研究中的一种新方法,已广泛应用于计算机视觉、图像处理、视觉检测、纹理和场景分析等方面。上述这些应用都有时间限制,要求实时处理。数学形态学滤波作为一种非线性滤波技术,其理论基础是集合论,具有天然的并行结构,便于硬件电路实现[1]。但形态学滤波的硬件实现是以牺牲硬件资源为代价的。对于一幅较大的灰度图像,如果采用常规器件实现,硬件结构会相当庞大。

  随着微电子技术的发展,现场可编程门阵列(Field Program Gates Array,FPGA)器件已经朝着高密度、低压、低功耗的方向发展。由于FPGA芯片门数不断增加,PLL/DLL、Distributed RAM、Block RAM等片内资源以及设计所需的IP库越来越丰富,所有这些使得基于FPGA的数学形态学滤波器实现成为可能。本文综合考虑了数学形态学滤波器的并行特性和FPGA器件的特点,在Xilinx公司的XC2S400E芯片上实现了灰度图像的开操作形态学滤波器。

  1 灰度形态学滤波基本知识[2]

  数学形态学是一种数字图像处理的新方法,其研究的主要目的在于描述图像的基本结构和特征,主要内容是在积分几何和随机集合论的基础上,设计一整套变换、概念和算法,以描述图像的各个象素之间的关系。它的基本思想是用具有一定形态的结构元去度量和提取图像中的对应形态以达到对图像分析和识别的目的。形态学的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。

  形态学的基本运算有4种:膨胀、腐蚀、开和闭。灰度图像的腐蚀和膨胀过程可直接从图像及结构元素的灰度级函数计算出来。对图像中的某一点f(x,y),灰度形态学腐蚀运算的定义为:

  灰度形态膨胀即以结构元素g(i,j)为模板,搜寻图像在结构基元大小范围内的灰度和的极大值。腐蚀运算过程则是以结构元素g(i,j)为模板,搜寻图像在结构基元大小范围内的灰度差的极小值。灰度的形态膨胀和形态腐蚀运算的表达式与图像处理中的卷积积分非常相似(即以和、差代替连乘,用最小、最大运算代替求总和)。

  灰度形态学开运算的定义为:

  开运算是采用相同的结构元先做腐蚀再做膨胀的迭代运算。闭运算是采用相同的结构元先做膨胀再做腐蚀的迭代运算。开运算和闭运算的基本作用是对图像进行平滑处理:开运算可以去掉图像中的一些孤立子域和毛刺,闭运算可以填充一些小洞和将2个邻近的目标连接起来。[page]

  在形态算法设计中,结构元素的选择十分重要,其形状和尺寸的选择是能否有效地提取信息的关键。一般情况下,结构元素的选择按照下面原则进行:

  (1)结构元素必须在几何上比原图像简单,且有界。

  (2)结构元素的凸性非常重要,一般选择凸性子集。

  2 灰度形态学滤波器的硬件实现

  2.1 结构元素选择及简化[3]

  本文所述形态学滤波的目的是检测256×256大小12位灰度图像f中的弱小目标,选择3×3大小的扁平结构元素和原始图像做开操作,其结构为:

  2.2 电路原理设计[4][5]

  输入图像f与结构元素g1腐蚀就是求f中每行相邻3个象素的灰度最小值。对于1幅静止图像,可以采用1个1×3的窗体从图像第1行第1列开始,自左向右滑动,依次取出窗口内的3个象素灰度值,比较得到灰度最小值并按顺序存储。第1行做完后,再在第2行滑动,直至图像的最后1行的最后3个象素。存储后的图像即为f与g1腐蚀的结果图像。对于实时串行输入图像,只需让图像灰度数据流从1×3的窗体通过,取出窗体内的3个象素灰度值,比较后得到的最小值数据流就是腐蚀后的图像灰度数据。

  求3个数的最小值可以先求2个数的较小值,将结果再与第3个数比较即可得到最小值。设计的关键是如何利用第1组数据的中间结果快速完成第2组数据的比较。针对图像是串行输入流以及FPGA内部资源足够丰富的特点,设计了二级流水比较器,其逻辑框图如图1所示。图像第1行第1列的灰度值输入后锁存到12位的触发器,待第2个数据输入后与之比较,较小值锁存到中间的12位触发器,而第2个数据存储到左边的12位触发器。当第3个数据输入后与前2个数据的较小值比较,得到第1组数据的最小值,同时第1组数据中的第2个值作为第2组数据的第1个值,将与第3个数据(第2组数据的第2个值)比较。这样,图像数据输入到1×3腐蚀单元,2个象素周期之后即可得到最小值输出数据流。

  将图1中的12位锁存器替换深度为256字节的FIFO,即可得到1×3腐蚀逻辑框图。与1×3腐蚀过程类似,f与g1腐蚀的最小值数据流输入到1×3腐蚀单元,2行延迟时间之后即可得到f与g腐蚀的图像灰度数据流。[page]

  膨胀的结构图与腐蚀的结构图类似,只不过是求相应的最大值。在图1中,A、B二处分别加入非门即可得到膨胀单元的结构图。将腐蚀单元和膨胀单元级联即可得到如图2所示的f与g开操作结构图。整个结构采用流水线方式设计,使串行输入的灰度数据能够得到并行处理,这样就极大地满足了图像处理的实时性要求。

  将腐蚀结构图和膨胀结构图次序交换即可得到形态学滤波闭操作结构图。对于不同大小的结构元模板,其结构图与3×3的结构类似,在此不再赘述。

  2.3 FPGA实现

  虽然开操作结构图很复杂,但图中实际用到的器件只有12位比较器、12位2选1选择器、深度为256的FIFO以及12位锁存器等。本文选用Xilinx公司的ISE5.2软件为设计平台,以上器件均可以由ISE5.2自带的CORE Generator生成。鉴于开操作的结构特点,整个滤波器采用元件例化的方式设计。求3×3最小值和3×3最大值的部分元件例化VHDL代码如下:

  选用XC2S400E芯片,综合后所用主要资源如下:

  Number of Slice Flip Flops: 212 out of 9 600 2%

  Number of 4 input LUTs: 306 out of 9 600   3%

  Number of occupied Slices: 260 out of 4 800 5%

  Number of Block RAMs: 4 out of 40           10%

  Total equivalent gate count for design: 69 920[page]

  3  仿真设计及注意事项

  本设计在ModelSim SE 5.6e软件平台下仿真。输入图像大小为256×256,仿真需要的数据量相当大,而且还要求各输入数据的时序一致,仿真测试文件中数据输入采用读文件的方法无法保证数据输入的时序同步。同样,滤波输出的数据量也非常大,直接看波形显然行不通。因此本设计先在C++ Builder环境下将图像文件中的灰度数据转换为测试向量,然后拷贝到仿真测试文件中。虽然测试文件相当大,但可以保证图像灰度值同步输入。对于仿真结果输出,采用写文件的方法,将形态学滤波的输出写入到文件中。通过计算机比较仿真输出文件和同一幅图像在C++ Builder环境下生成的滤波结果文件是否有差异,即可判断功能仿真的正确性。时序仿真时数据输出的时间也要保存到仿真结果文件中。

  设计时要注意以下问题:

  (1)滤波器要求严格的时序关系,宜采用同步设计。

  (2)实际使用时图像是连续输入的,需要用场信号将滤波器复位。

  (3)行延迟FIFO宜采用XC2S400E片内的Block RAM生成。

  (4)对于256×256的输入图像和3×3的结构元,理论上的有效结果图像大小是254×254。在实际使用中,对于不同大小的结构元,滤波结果输出会滞后几个行周期,在图像输入完以后,象素时钟信号也会撤销,而此时形态学滤波还没有结束,所以输出的图像大小比理论值还要小。不过没有输出的滤波结果数据绝大部分都是无效数据,只有几个象素是有效的。如果需要得到未能输出的几个有效数据,可以在一帧图像输入结束之后再人为地加入几个时钟脉冲。

  (5)为了方便下一级处理单元接收滤波数据,输出图像的大小也应设为256×256,相应的地址生成器也应设为256×256,同时需要将无效数据设置为某个定值。

  4  结束语

  根据实际应用要求,本文设计了3×3结构元素的形态学开操作滤波器,将其简化后设计了相应的硬件原理框图,并在XC2S400E上实现。该设计已经成功地应用到实际中。在本文设计的开操作滤波器基础上,通过简单地改变结构元素或改变滤波子模块次序,即可得到其他性能的形态学滤波器。同时FPGA器件的可编程特性,可以方便地对电路进行改进,以进一步提高电路的性能。

  参考文献

  1 刘志敏,杨杰.基于数学形态学的图像形态滤波.红外与激光工程,1999;28(4)

  2 杜峥,张桂林,王超.红外弱小目标预处理及检测方法研究.计算机与数字工程,2003;31(4)

  3 Singh B,Siddiqi M U.A Simplified Algorithm for Approximate Separable Decomposition of Morphological Templates.Pattern Recognition,1996;29(9)

  4 Shih F Y,Mitchell O R.Decomposition of Grey-Scale Morphological Structuring Elements.Pattern Recognition,1995;24(3)

  5 Robin F,Renaudin M,Privat G et al.Functionally Asynchronous Array Processor for Morphological Filtering of Greyscale Images.IEEE Proceedings:Computers and Digital Techniques,1996;143(5)

关键字:FPGA  滤波器  灰度形态学 引用地址:基于FPGA的灰度形态学滤波器实现

上一篇:基于FPGA的HD-SDI下变换的研究与设计
下一篇:基于数据选择器和D触发器的多输入时序电路设计

推荐阅读最新更新时间:2024-05-02 21:13

让机器人眼明脑快的奥秘:嵌入式视觉系统
传统的机器人需要人事前进行编程,而新一代工业机器人的核心特征是智能化。科研团队逐渐将工业机器人研发重点由基础技术研发向应用开发转变,使工业机器人更加智能化,具有更强的感知能力、更好的机敏性,并且可以自主执行任务    要实现工业机器人智能化,就必须让机器人拥有明亮的“双眸”和灵活的“大脑”。为了实现这个目标,中科院自动化所高技术创新中心主任原魁研究员率领团队潜心攻关,长期专注于智能机器人关键技术研究与应用,在高性能嵌入式机器人视觉系统、视觉导引AGV技术、工业机器人自动编程技术等方面取得了突出的创新成效。    他们开发的高性能嵌入式机器人视觉系统能够在FPGA(现场可编程门阵列)上实现80多种图像处理算法,处理速度远高
[嵌入式]
基于FPGA的IRIG-B(DC)码解码
摘要:在分析了IRIG-B(DC)码码型特点的基础上,提出了一种IRIG-B(DC)时间码解码的设计方法。该方法由少量外围电路与一片现场可编程门阵列(FPGA)芯片组成,来实现对IRG-B(DC)码的解码、1 PPS信号输出、实时时间显示以及串行异步通信。与传统的方法相比,该设计方案具有体积小、成本低、工作稳定等优点,完全能够替代传统的B码机箱的功能。 关键词:IRIG-B(DC);FPGA;硬件描述语言;串行通信 随着电力自动化水平的提高,电力对时间的同步要求越来越迫切、时间同步的精度要求越来越高。采用GPS全球卫星定位系统的时间同步功能,是提高电力生产和管理自动化水平、确保运行质量的一条最佳途径。国家电力公司、各大电网
[嵌入式]
基于<font color='red'>FPGA</font>的IRIG-B(DC)码解码
DSP和FPGA构成的感应发电机励磁控制系统
    介绍了针对3/3相双绕组感应发电机设计的励磁系统,该系统由DSP和FPGA构成。给出了控制系统的接口电路和实验结果。     1 系统简介     3/3相双绕组感应发电机带有两个绕组:励磁补偿绕组和功率绕组,如图1所示。励磁补偿绕组上接一个电力电子变换装置,用来提供感应发电机需要的无功功率,使功率绕组上输出一个稳定的直流电压。     图1中各参数的含义如下:     isa, isb, isc——补偿绕组中的励磁电流;     usa, usb, usc——补偿绕组相电压;     ipa, ipb, ipc——功率绕组电流;     upa, upb, upc——功率绕组相电压;
[嵌入式]
FPGA中内嵌专用硬核
        内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高FPGA的乘法速度,主流的FPGA 中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SERDES),可以达到数十Gbps的收发速度。 Xilinx公司的高端产品不仅集成了Power PC系列CPU,还内嵌了DSP Core模块,其相应的系统级设计工具是EDK和Platform Studio,并依此提出了片上系统(System on Chip)的概念。通过PowerPC、Microb
[嵌入式]
基于FPGA+DDS的控制设计
  1 引言   随着数字信号处理和集成电路的发展,要求数据处理速度越来越高,基于单片机+DDS(直接数字频率合成)的频率合成技术已不能满足目前数据处理速度需求。针对这一现状,本文提出了基于FP—GA+DDS的控制设计.能够快速实现复杂数字系统   的功能。   2 AD9911简介   AD99ll是ADI公司推出的一款单片DDS器件,内部时钟频率高达500 MHz,具有2、4、8、16级FSK、ASK、PSK等调制方式,可完成线性和非线性扫频等功能,内部集成有10位电流型D/A转换器、超高速比较器、4~20倍可编程参考时钟倍乘器、32位的可编程频率寄存器、14位的可编程相位偏置寄存器、10位幅度调制偏置寄存器;具有
[嵌入式]
基于<font color='red'>FPGA</font>+DDS的控制设计
亚科鸿禹全面展示中国首片820万门FPGA
近日,亚科鸿禹作为Altera中国大陆唯一的板级设计合作伙伴,正在参加Altera于2010年8至9月,在上海、杭州、南京、北京、深圳、西安、成都等几大城市举行的巡回技术研讨会。 在本次技术巡展中,亚科鸿禹展示了中国大陆第一片实物StratixIV820——全球最大的单片820万AISC门的FPGA芯片,同时推出了基于StratixIV820的三个重量级新产品。 亚科鸿禹星火(StarFire)系列原型验证板最新的三个型号分别是:StarFire-H820,StarFire-T820,StarFire-DC820。H820是亚科鸿禹经典的V系列的升级版,提供更齐全的视音频接口,涵盖了几乎所有数字电视、机顶盒以
[嵌入式]
集系统级FPGA芯片XCV50E的结构与开发
摘要:VirtexE系列是XILINX公司生产的新型FPGA芯片,可用来进行数十万逻辑门级的系统设计和百兆赫兹级的高速电路设计。文中介绍了XCV50E芯片的结构特性、设计流程和配置过程,给出了具体的电路图和配置流程图。 关键词:FPGA 可配置逻辑块 设计流程 配置 XCV50E是XILINX公司VirtexE系列系统级FPGA芯片中的一员。其主要资源有71693个系统门、65536位块内存和176个用户I/O口(其中包括83对差分I/O口)。 主要特性有:1.8V超低核心电压、支持20种高速总线标准、八个全数字延迟锁定环、0.18微米6层金属工艺、支持IEEE 1149.1边界扫描。VirtexE系列FPGA芯片具有卓越
[半导体设计/制造]
Actel推出全新SoftConsole开发工具针对以CoreMP7为基础的设计提供更广泛支持
免费的软件编程开发环境集成了 Actel 的全套 FPGA 开发工具 Actel 公司宣布针对该公司的 CoreMP7 推出免费的软件开发环境 SoftConsole ; CoreMP7 是业界唯一一款面向现场可编程门阵列 (FPGA) 的 32 位 ARM7 微控制器核。 SoftConsole 以广泛使用的开放源 Eclipse 集成设计环境 (IDE) 和 ARM7 GNU 编译器和调试工具为基础,为编写和调试 CoreMP7 软件编程提供了具成本效益和可靠的手段,让设计人员基于 Actel 的单芯片 Flash FPGA 快速
[新品]
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved