均值滤波计算_基于FPGA的中值滤波算法实现

把之前图像处理的文章加上原创标识,重新发表一遍。

在实时图像采集中,不可避免的会引入噪声,尤其是干扰噪声和椒盐噪声,噪声的存在严重影响边缘检测的效果,中值滤波是一种基于排序统计理论的非线性平滑计数,能有效平滑噪声,且能有效保护图像的边缘信息,所以被广泛用于数字图像处理的边缘提取,其基本原理是把数字图像或数字序列中的一点的值用该点邻域内所有点的中值来代替。

中值滤波对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。这些优良特性是线性滤波方法所不具有的。此外,中值滤波的算法比较简单,也易于用硬件实现。所以,中值滤波方法一经提出后,便在数字信号处理领得到重要的应用。

中值滤波方法是,对待处理的当前像素,选择一个模板,该模板为其邻近的若干个像素组成,对模板的像素由小到大进行排序,再用模板的中值来替代原像素的值的方法。

         当我们使用3x3窗口后获取领域中的9个像素,就需要对9个像素值进行排序,为了提高排序效率,排序算法思想如图3-18所示

(1)      对窗内的每行像素按降序排序,得到最大值、中间值和最小值;

(2)      把三行的最小值相比较,取其中的最大值;

(3)      把三行的最大值相比较,取其中的最小值;

(4)      把三行的中间值相比较,再取一次中间值;

(5)      把前面的到的三个值再做一次排序,获得的中值即该窗口的中值。

02123cf33c6f26f5d1fc14636d31f8b9.png

排序算法思想

中值滤波的3x3矩阵的生成和均值滤波是完全类似的。我们求中值的方法是,先对3x3矩阵的每行按从大到小进行排序,然后利用排序法求出最大值那一列的最小值,求出之间数那一列的中间值,求出最小值按一列的最大值,最后将求出的三个值再排序,这三个值的中间值就是这个3x3矩阵的中间值。

ccb54dfa71297efb803ae1a3ee695a7a.png

 中值滤波计算

如图所示仿真,可以推算出,这个中值完全是正确的,最后将求出的中值输出,这样中值定理便完成了。

b9ea1c2616de96de1b520b8a1c80e2c6.png

3x3矩阵的中值输出

         我们在求中值的时候消耗了三个时钟周期,最后输出写RAM使能信号时,需要将per_clken延时3个时钟周期,保证图像数据与写RAM使能对齐、同步性。这里延时的写法和前面文章中所讲的是完全相同的!查看视频效果。

47e3fa07e212f728b5594ecdf274a214.png

视频是新配的,核心代码相同。

中值滤波和均值滤波比较:中值滤波与均值滤波分别是非线性滤波和线性滤波的代表,这两种滤波非常的相似,但滤波的效果却有很大的差别,均值滤波相当于低通滤波,有将图像模糊化的趋势,对椒盐噪声基本无能为力。中值滤波的优点是可以很好的过滤椒盐噪声,缺点是容易造成图像的不连续。中值滤波有效的移植了最大值和最小值,图像会变得均匀,对椒盐噪声有很好的滤出效果!所以本系统最终选择采用中值滤波的方法。

6a0824fad038b3b60061dc92ff49488d.png

灰度lena

a7f56204e42c2a6cc6f387a7e3d082fa.png

均值滤波lena

1d03788e4a799b46986ce16cf441d449.png

中值滤波lena

上图为灰度图,中间为均值滤波图像,下图为中值滤波后的图像。通过对比发现,均值滤波后的lena变得更模糊,亮度也变高,而中值滤波后的lena清晰度较好,也是有效的过滤掉了椒盐噪声,由于我们这是所选取的图片椒盐噪声不明显,感兴趣的读者可以自己去试着找一幅带椒盐噪声的图片去处理一下。这里需要强调的一下是滤波后的图像会有部分边缘缺失,这是因为我们在求取均值或中值时,生成的3x3矩阵,在缓存第一行数据时,第二三行数据是没有的,同样缓存到前两行第三行数据也是没有的,但这个时候我们就已经开始了求均值或中值的运算,那么这个时候输出的像素点其实是作废的,这里我们并没有过多的关心这些像素点,只是专注于学习中值滤波。

如果你想获得本文的所有课件和工程代码,请关注本人的个人微信订阅号:硅农 或扫描下方二维码关注订阅号,在后台回复图像处理,即可获得本文的所有课件、资料、和工程源码哦!

b65b63732217fc67f107693b68995757.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值