一、定义
直方图均衡化,通过一种灰度映射使输入图像经过转换后,在每一灰度级上都有相近似的输出图像,输出的灰度值是均匀的。经过这样处理的图像具有较高的对比对和较大的动态范围。
对于离散的灰度级,直方图均衡化有如下关系:
其中Db是转换过后的像素的灰度值,Dmax是输入图像经过直方图统计后得到的最大的灰度值,A0是一幅图像面积,也就是所有的像素值H(i)是灰度级的各级的统计结果。Da是当前像素的灰度级。
直方图均衡化就的作用就是,对于当前的输入像素,需要首先求出小于当前像素灰度值的所有像素统计值的和,然后与该图像中的最大灰度值进行相乘,最后除以图像的面积。
二、原理
具体的计算步骤如下:
1.首先需要统计出该图像的直方图分布H(i)
2.其次需要计算出各个灰度级下的直方图累加和
3.找到图像的灰度最大值Dmax,然后将Dmax与对应灰度级的累加和相乘
4.除以总的像素面积,完成图像直方图的转换
三、FPGA实现
使用system generator搭建算法模型如下:
四、实现效果
分别找了灰度效果不同的图比较如下,从效果来看,直方图均衡化算法还是挺不错的。