由上述公式列出求图像均值的步骤:
(1)获取当前窗口所有像素。
(2)计算当前窗口所有像素之和。
(3)将(2)结果除以当前窗口数据总数。
(4)滑动窗口到下一个窗口,直到遍历完整幅图像。
滤波采用滑动窗口方法实现整幅图的遍历,因此,采用流水线结构来设计是最合适的。对于流水线结构来说,每个像素的运算方法是一致的,需要考虑的只是边界像素的处理问题。
以5x5的均值滤波窗口为例,如上图所示,首先看一下二维窗口求和模块。
一般情况下,先将二维的计算步骤化为一维的操作。假设现在完成第一行的求和操作,接下来需要“等”下一行的求和操作完成。在FPGA中,等待的实现方法就是进行缓存。二维操作转换为一维操作后的结构如下图所示:
接下来的问题就是如何进行一维向量求和,对于1x5的向量求和而言,当前数据需要“等到”下4个数据到来之后才能得到连续5个数据,并执行加法操作。以及预期的是,还是需要把前几个数据单独缓存起来,一个指定位宽的寄存器即可满足要求。同步5个连续的输入数据如下图所示。
最后的问题是求取窗口的均值,需要将上述计算出来的和除以一个归一化系数,也就是整个窗口的像素数目。在FPGA里卖弄不直接进行除法操作,而是通过近似的乘加方法来实现。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有