前言
这篇文章主要讲解一下用FPGA实现图像的均值滤波算法,为什么要写这篇文章呢?
主要原因:在图像领域里会对一些视频数据要做各种算法处理,去噪算法是用到最多的算法;当然图像去噪算法有很多种,例如均值滤波、中值滤波、高斯滤波、引导滤波等。学习就从最基础的算法开始,逐步提高自己的水平。
开始我们的FPGA学习之旅吧.......
图像均值滤波算法原理
对于图像均值滤波算法,我参考了书籍《图像处理》冈萨雷斯第三版。
图像均值滤波属于线性滤波算法,在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围 8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值,如下图所示:中心点为目标像素,它的最终的值要用周边的8个像素求和后的平均值代替。 公式:
对上述图像算法的通俗理解就是用上图的模板在一幅M*N的图像按照从左到右的顺序移动,每移动一次计算出一个图像数据,直到所有图像都计算完为止;明白原理后开始进入程序设计吧!
图像均值滤波程序设计
整个系统框架设计由3部分组成:image_change模块、image_storage模块、matrix_mode模块,如下图所示。下面开始详细介绍一下每个子模块的功能吧!
- 1. image_mean_top程序接口
名称 |
方向 |
位宽 |
说明 |
piexl_clk |
Input |
1 |
工作时钟 |
reset |
Input |
1 |
复位信号(active high) |
Oimage_VS_in |
Input |
1 |
原始图像输入的场信号 |
Oimage_HS_in |
Input |
1 |
原始图像输入的行信号 |
Oimage_data_in |
Input |
WIDTH |
原始图像数据信号 |