直方图均衡化(histogram equalization)是一种通过直方图变换实现灰度映射以增强图像的方法。 一般来说,直方图均衡是一种非常好的方法,可以在增强图像对比度的同时对图像灰度值进行归一化。 其基本思想是以均匀分布的方式表示原始图像的直方图,从而增加像素灰度值的动态范围,从而达到提高整体图像对比度的效果。
由于是由各种不同的像素值来构成图像的,而能够直观地反映不同像素值分布情况的是直方图,而且此分布情况可被当作图像一个很重要的特征,所以在实际图像处理过程中,在特征提取、图像匹配等方面,直方图算法都起到了很好的辅助功能。直方图均衡旨在增强图像,有利于人类视觉效果或促进机器识别。在直方图均衡过程中,映射公式如下:
公式里,n代表了像素数量的总和,nk代表了当前灰度级(即是为相同像素值或者相同像素范围内)的像素个数,L是图像中像素级的总数。
我们用matlab实现以下功能:对5*5 double数据图像进行拉伸。注意:在算法原则设定下0值的数据在映射后依旧保持0值。
表1.未经直方图均衡化的数据表格
根据图像的对25个图像数据信息统一后,完成数据的灰度值映射如下图所示:
表2.经过直方图均衡化的数据表格
以上就是直方图均衡化的步骤以及简单例子。
此处使用MATLAB提供了直方图的histeq()处理函数。然而,为了便于对算法验证和后续的FPGA电路设计建模,我将直接在MATLAB中按照基本逻辑存储运算单元实现此算法,并且对比两者之间的实现效果。
直方图算法就是通过原图像建立查找表,把灰度为Gray的原始图像(x,y),根据建立的查找表改