中值滤波是基本的图像处理算法之一。
如上图,对于每个3*3的矩阵而言,中间像素(红色框)的值dout=((p11+p12*2+p13)+(p21*2+p22*4+p23*2)+(p31+p32*2+p33) ) / 16。
那么问题来了,如何实现3*3矩阵的提取呢?
明德扬的FPGA系列教程里面提供的是用shift_ram这个IP核来实现。在网上有看到类似用shift_ram来实现的文章,但是个人觉得基础薄弱点的童鞋很难理解,那么这里我结合个人的理解讲一下明德扬的中值滤波算法的实现。
首先我们需要定义一个shift_ram
定义完成后生成一个如下图所示的shift_ram的IP核文件