FPGA实现中值滤波
1、前言
由于椒盐噪声是图像产生、传输过程中比较常见的噪声。所以中值滤波去椒盐噪声也是应用比较常规的操作。
椒噪声就是强度为零的噪声,产生原因可能是sensor存在坏点。盐噪声就是强度为满的噪点,原因可能是增益过大或者坏点。
2、滤波原理
例如以掩模窗口为3的椒噪声为例讲解一下原理,首先对九个像素点进行排序,P22这个像素点由于是椒噪声,强度最低,根据排序肯定排在序列的两端,其余值根据强度值进行排列,中值滤波是取一个像素某个领域内的中间值作为这个像素点的值,那么P22的椒噪声无疑会被滤除掉。
3、FPGA实现思路
由于需要获得前后三行像素点的值,所以需要缓存这三行,这里需要用到FPGA的一个IP核叫shift_register。输出后通过寄存器打三拍就获得掩模窗口了。然后就可以进行排序。获得中间值后就可以赋值输出了。
4、实验效果
芯片:CYCLONE IV
软件:QUARTUS II 17.1
图片分辨率:1024*768
为了对比方便,左边未经过中值滤波处理,右边已经将椒盐噪声去除,效果明显。