基于FPGA的灰度形态学滤波器实现
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)
评论