CrazyBingo

【连载7.3】【VGA+USB】灰度图像的均值滤波算法实现

0
阅读(127) 评论(0)

详见07_ HDL_VIP_Examples下“02_VIP_OV7725_Gray_Med”工程。

 

图像处理算法可以在RGB域处理,也可以在灰度域处理,牛逼的还可以在Bayer处理。但是大部分目标识别、跟踪、检测等图像处理算法,都是灰度域处理的,因为灰度除了没有色度,以及包含了基本图像处理所需的信息,包括纹理/目标/姿态等。

因此从本节开始,我们将基于灰度域进行基本的FPGA图像处理算法的实现。前面一节我们已经得到了灰度视频(灰度相机直接就可以得到灰度视频,不需要前一节),现在我们可以大刀阔斧,全面开始HDL-VIP算法的研究与实现了!!!

本章截杀的中值滤波算法,输入的视频源为Gray数据流,最终工程实现的VIP的RTL block如下所示:

1.jpg

备注:灰度相机(MT9V034 AR0144等)不需要RAW8_RGB888以及RGB888_YCbCr444模块,直接从中值滤波后开始。

 

7.3.1 图像滤波算法的介绍

降噪顾名思义是削弱不该有的噪声,严格意义上做不到去噪,只能一定程度的削弱噪声的存在。我们的传感器在工作工程中,必然会有电源噪声、随机噪声、固定噪声等干扰。那么如果有效的去除图像中的噪声,同时又能较好的保持图像的边缘,就是降噪的精髓。

2.jpg

典型的图像滤波算法,入门级别的有均值滤波、中值滤波、高斯滤波等,也有NB一点的非局部均匀、双边滤波、2D降噪、3D降噪、BM3D等。安防监控IPC芯片,最后拼的就是一个重要的指标就是图像的降噪:如何能用较低成本的Sensor,通过降噪及其他图像增强算法,得到画质优秀的视频。如果你有更牛逼的算法,可以试试下图,挑战一下极限:

3.jpg

滤波的原理就是求平均,可以是对帧内周边像素求平均(空域降噪),也可以是帧间的像素求平均(时域降噪),前者能够较好的保持图像的运动拖影但是对纹理的保持不够擅长,而后者能够较好的去除在时间上波动的噪声,但是由于前后帧之间的时间差,会引入拖影(也有叫法说是鬼一个)。狠一点的3D降噪可以采用数帧图像去做降噪,可以在极低的照度下得到较好的图像,但是也伴随着巨大的拖影。

当然,除了采用算法去除图像中的噪声,也可以拼了命的优化电源的噪声,如果你还没有达到极致的话;采用更好的,更先进的,靶面更大的Sensor,或者更好的镜头,可以直观的提升噪声特性,只不过付出的成本较高。