基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE

基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE
本设计是基于FPGA的视频图像直方图均衡,实现的效果是可以实时地将摄像头采集的图像进行直方图均衡,具体过程是FPGA控制摄像头采集环境图像,然后数据一路送给SDRAM缓存,另一路放到直方图均衡模块,接着从SDRAM读取出缓存的数据也送到直方图模块进行均衡,最后将直方图模块的输出通过VGA进行显示。

第一张图:将摄像头采集到的图像数据直接通过VGA显示出来,不经过任何处理过程。

第二张图:将图像数据使用直方图均衡技术进行均衡,然后均衡后的结果通过VGA显示出来,通过与第一张图进行对比可以看到增强效果非常明显。

当然你可能会问为什么均衡前后的图像都与原图差距这么大,这主要是因为使用的摄像头比较廉价,只有30W像素。
第三张图:用于FPGA仿真的测试图。

前面的两张图是实际板子得到的图像,从现在开始我们从理论仿真验证程序是不是对的,不仅要动手能力好,还要理论水平高。

第四张图:PDF建立图。

直方图均衡可以大致分成三步,概率密度函数(或者说频数)PDF建立阶段,累积分布函数CDF建立阶段,查询CDF用于均衡阶段。

这张图展示的是PDF是怎么建立起来的,也就是看在遍历图像所有像素点时,对用灰度值的频数是否会自动加1. 即 PDF[val] = PDF[val] + 1

第五张图:CDF建立图。

这个图是表示在一张图像遍历结束后通过CDF[0] = PDF[0]; CDF[val] = CDF[val – 1] + PDF[val], val > 0 建立CDF。

第六张图:CDF查询图。

当CDF有了之后就可以输入一个灰度值然后映射一个新的灰度值并输出了。

第七张图:FPGA建立的CDF表。

与下面的Matlab建立的CDF进行比较,看是否是一样的,也就是看FPGA的程序有没有问题。

第八张图:Matlab建立的CDF表。

我们把Matlab的CDF当做理论值,如果FPGA的CDF表与Matlab的一样,那么说明程序正确,否则FPGA程序出错了。

经过对比可以看到FPGA的CDF表完全正确。

第九张图:FPGA与Matlab处理结果的对比图。

用FPGA得到的效果图与Matlab得到的效果图之间所有像素点的像素值差异要么是0,要么是1,这个误差主要是在均衡时产生的,因为FPGA在灰度映射时的精度没有Matlab高,所以会有一点点误差,不过这个误差是在允许范围内。

因此可以看出FPGA的程序完全正确。

基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE_第1张图片
基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE_第2张图片
基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE_第3张图片
基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE_第4张图片
基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE_第5张图片
基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE_第6张图片
基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE_第7张图片
基于FPGA的视频图像直方图均衡 图像处理 图像增强 VGA对比度增强CLAHE_第8张图片
ID:6950667485058336

你可能感兴趣的:(fpga开发,图像处理,音视频)