FPGA设计——图像处理(中值滤波)

阅读: 评论:0

FPGA设计——图像处理(中值滤波)

FPGA设计——图像处理(中值滤波)

1. 概述

本设计采用FPGA技术,实现CMOS视频图像的中值滤波,并通过以太网传输(UDP方式)给PC实时显示。

2. 硬件系统框图

CMOS采用MT9V011(30万像素),FPGA采用ALTERA公司的CYCLONE IV,以太网卡采用REALTK公司的100M网卡芯片,硬件框图如下:

硬件平台采用ETree的FPGA开发板,如下图所示:

3. 算法原理

中值滤波需要对3×3矩阵窗里的像素进行排序,然后找到中间值替换原始像素。

中值滤波对消除椒盐噪声非常有效,在图像处理中常用于保护边缘信息。


4. 算法实现

实现中值滤波关键是实现3×3矩阵窗内的实时排序,这里可以使用全比较法,为窗内的每个像素定义一个计数器cntn(n=0,1,2,3,4,5,6,7)来记录比较结果,最后cntn为4的值便是中间值,将对应的像素替换成原始像素即可。

always @(*)if(cmos_vsync)cnt0 <= 0;elsecnt0 <= (taps0x>taps0x) + (taps0x_r0>taps0x) + (taps0x_r1>taps0x) +(taps1x>taps0x) + (taps1x_r0>taps0x) + (taps1x_r1>taps0x) +(taps2x>taps0x) + (taps2x_r0>taps0x) + (taps2x_r1>taps0x);
... ...
always @(posedge cmos_pclk)if(cmos_vsync)begincmos_href_o  <= 0;cmos_vsync_o <= 0;cmos_data_o  <= 0;end elsebegincmos_href_o  <= cmos_href_r1;cmos_vsync_o <= cmos_vsync;cmos_data_r0 <= (cnt0==4)?taps0x:(cnt1==4)?taps0x_r0:(cnt2==4)?taps0x_r1:(cnt3==4)?taps1x:(cnt4==4)?taps1x_r0:(cnt5==4)?taps1x_r1:(cnt6==4)?taps2x:(cnt7==4)?taps2x_r0:(cnt8==4)?taps2x_r1:8'h01;cmos_data_o <= cmos_data_r0;end


5. 最终效果

下图为原始图片效果。

中值滤波后的效果图如下,图像中的数字变骨感一些。

转载于:

本文发布于:2024-01-29 15:43:12,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170651419916331.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:中值   图像处理   FPGA
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23