FPGA实现实时视频加权中值滤波
时间:10-29 09:46 阅读:816次
*温馨提示:点击图片可以放大观看高清大图
简介:本文设计的是一种加权中值滤波算法,窗口大小是5(列)*1(行),适用于灰度图像实时视频处理,可以有效淡化视频竖条纹。同时为了保持图像的细节,采用如下图所示的加权窗口。
同时考虑到一场视频最左边和最右边的2列数据的特殊性,其窗口对应为:
最左边两列
最右边两列
代码接口定义如下表所示。
简单介绍下设计原理:由于采用的是5*1的窗口,不需要大规模数据缓存,窗口内相邻的视频数据相差一个时钟周期,使用触发器将原始视频数据缓存5级,分别对应5个寄存器信号。在同一时钟周期内的5个寄存器信号即为窗口内的5个数据,在同一时钟周期内可进行并行处理。
接下来,需要对窗口内的视频数据以16位基数进行加权处理,得到数值除以16后用来替换原有像素灰度值。
R_sum16 = R_data_5*2 + R_data_4*3 + R_data_3*6 + R_data_2*3 + R_data_1 *2
最左边两行:
R_sum16 = R_data_5*4 +R_data_4*6 + R_data_3*6
最右边两行:
R_sum16 = R_data_3*6 + R_data_2*6 + R_data_1*4