基于硬件描述语言的图像快速中值滤波算法

2012-04-27 11:02浙江工业职业技术学院
电子世界 2012年1期
关键词:椒盐中值灰度

浙江工业职业技术学院 李 博

1.概述

由于煤矿井下环境恶劣,各种强电设备的电磁干扰较重,井下视频监控图像往往夹杂着大量的噪声。市场上普通红外摄像机的视频图像往往被噪声淹没,视频图像的缺损对管理人员监控井下实时情况造成障碍,对煤矿生产造成安全隐患。保护有用信号、抑制噪声是图像预处理的关键,由电气开关动作及电磁干扰引起的脉冲噪声是井下最典型和严重的噪声形式,其特点是噪声点处的灰度值与周围像素点的灰度值相差较大。椒盐噪声即是饱和的脉冲噪声,对图像的损害更大[1]。

井下视频图像椒盐噪声去噪具有数据量大、实时性高等要求,采用普通软件实现的图像处理器难以满足海量数据处理的实时性要求。针对图像预处理阶段运算结构较简单的特点,用硬件的方法实现分布式的算法结构,各功能块可以并行工作,对高速数字信号处理效果非常理想。中值滤波属于非线性空间滤波,用中值滤波的方法去除图像中的椒盐噪声,效果显著。本文应用硬件描述语言,采用一种快速的中值滤波改进算法进行椒盐噪声滤波,处理速度快,滤波效果好。

2.算法原理

脉冲噪声的概率密度函数可由下式给出:

如果b>a,灰度值b显示为一个亮点,a显示为一个暗点。当Pa和Pb均不为零且其值近似相等时,脉冲噪声成为椒盐噪声。中值滤波方法是非线性图像增强技术,可以做到既去除噪声又保护图像边缘,对干扰脉冲和点状噪声具有良好的抑制作用,对图像边缘能较好地保持。中值滤波的基本原理是把数字图像灰度值序列中一点的值用该点的一个邻域中各点值的中值代替。例如,把一组数(xi1,xi2,…,xin)按大小顺序排列:把某点的特定形状的邻域作为一个窗口,中值滤波器是一个含有奇数个像素的滑动窗口,用窗口内各点像素值的中值代替窗口中间点的像素值。设输入序列为{xi,i∈I},I为窗口长度为n的像素点集合,则滤波器输出值为:

3.算法优化

中值滤波算法需将每个窗口内所有像素点灰度值进行比较、排序,并以滤波器输出值替换对象点的灰度值,所以中值滤波算法在运行过程中要进行大量的比较和赋值运算。一个n×n个像素的方形滤波窗口一次要进行n2(n2-1)/2次排序比较运算,例如,要使用3×3型窗口处理一帧352×288的视频图像,所需的时间约为73毫秒。CIF格式的实时视频监控图像一秒钟有30帧画面,每帧约33毫秒,所以,采用传统的中值滤波算法是不可能满足实时性要求的。必须进行算法优化,提高运行速度,才能实现实时滤波的目标。

优化的思路是将二维滤波阵列分解为一维,先求出滤波窗口中水平各行像素灰度值的中值,再求出水平各行中值的中值,从而得出滤波结果。改进的算法将一个本来含有n2个像素的二维阵列简化为(n+1)个仅含n个像素的一维阵列进行取中值运算,进行一次快速中值滤波只需进行n(n2-1)/2次运算,运算次数减少为原来的1/n,运算速度提高n倍。快速中值滤波虽然将二维阵列分解为一维运算,但最终的滤波结果既包含窗口中的行信息,又包含列信息,所以用多次一维中值滤波代替二维中值滤波的处理方案是可行的。

对传统中值滤波算法进行并行及流水线结构改进,如图1所示。

并行机制就是对同一段时间内需要处理的所有任务分别采用各自独立的处理通道同时进行处理,使处理时间从多个任务所需时间之和降至最慢任务所需的时间。图中将3行数据同时用三个比较器进行比较,然后将三行的中值再用一个比较器比较得出最终结果。这样总处理时间只是其中关键模块的处理时间,处理速度是顺序执行的两倍。

图1

图2

图3

图4

流水线作业的实质是在明显制约系统速度的关键路径上插入寄存器,使信号在时钟的下一拍到达目的地,这样用寄存器截断了长路径,缩短了寄存器到寄存器之间的最大延时,因而可以提高整个系统的速度。如上图所示,本来系统的最大延时为A和B的运算时间之和,现在在A与B之间加入寄存器后,系统的最大延时降为以前的一半,从而使系统的处理速度再提高一倍。由此可知,对于3×3模板的中值滤波算法经过并行和流水结构进行硬件优化后,处理速度是以前的四倍。

另外,在图像的各个边缘。由于无法用3×3窗口覆盖,所以无法直接调用该中值滤波排序模块。参考常用的图像硬件处理系统的做法[2],本文将图像边缘像素简单地设成“0”,并不影响整个中值滤波的效果。因此只需加一个判断窗口位置的模块,如果窗口处于边缘,则设为定值,否则,调用优化后的排序模块[3]。

4.算法实现

基于硬件描述语言的快速中值滤波程序设计流程图如图2所示,可以利用QuartusⅡ编译环境提供的参数化宏模块实现行数据存储缓冲器FIFO1和FIFO2,提高编程效率和程序模块化程度。

图像的第n行数据以数据流的形式在时钟同步下存入n+1行数据缓冲器FIFO2中,当第n行数据结束后,第n行数据在时钟同步下依次从FIFO2中读出写入到n行数据缓冲器FIFO1中,同时第n+1行数据依次存入FIFO2中。当摄像机输出图像的n+2行数据时,FIFO1中存放的图像的第n行数据,FIFO2中存放的是图像的第n+1行数据。

5.结论

在QuartusⅡ中运行基于硬件描述语言的快速中值滤波程序,得到如图4仿真波形。

由仿真结果可知,中值滤波算法工作正常,每计算一个3×3窗口的中值仅需要1个时钟周期的时间。在50MHz工作频率下,使用快速中值滤波算法优化一帧352×288的视频图像,耗时约为6毫秒。而CIF格式的实时视频监控图像每帧约33毫秒,所以中值滤波操作仅占用很小一部分时间资源,不影响实时视频图像的连续性。在中值滤波器的应用中,同样的3×3模板中值滤波若在TS201型DSP上处理,所需时间约为18毫秒。显然基于硬件描述语言的快速中值滤波比基于DSP的解决方案有更好的实时性优势[4]。

对数字图像处理标准图Lena加入50%的椒盐噪声,然后采用本文介绍的方法进行快速中值滤波,效果如图4所示。

将中值滤波后的图像与原始图像作比较可以发现,中值滤波算法导致图形边界稍微变得模糊了一些,但不明显,而椒盐噪声干扰被很好地抑制,验证结果证明基于硬件描述语言的快速中值滤波确实有效。实践证明,对矿井下数字视频信号进行快速中值滤波后,视频图像的质量得到了极大的提高,效果良好。

[1]Nasser Kehtarnavaz,Mark Gamadia.Real-Time Image and Video Processing[M].Morgan& Claypool Pubilshers,2006.

[2]王香菊.图像去噪方法及应用[J].科技情报开发与经济,2007,17(27):23-25.

[3]Aggelos K.Katsaggelos,Rafael Molina.Super Resolution of Images and Video[M].Morgan & Claypool Pubilshers,2007.

[4]彭波.用于数字监控系统的图像去噪算法的研究与实现[J].中国农业大学学报,2004,9(5):62-66.

猜你喜欢
椒盐中值灰度
采用改进导重法的拓扑结构灰度单元过滤技术
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
Lagrange中值定理的巧妙应用
高等数学中拉格朗日中值定理的教学处理
基于最大加权投影求解的彩色图像灰度化对比度保留算法
微分中值定理教法研讨
基于灰度线性建模的亚像素图像抖动量计算
后中值波电流脉冲MIG焊工艺
椒盐芝麻烧饼
基于噪声检测的高密椒盐噪声自适应滤波算法