[opencv] 直方图均衡化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/simonyucsdy/article/details/81839060

       直方图用于表示数字图像中每一灰度出现频率的统计关系,是最简单有效的工具,直方图能给出图像灰度范围、每个灰度的频度和灰度的分布、整幅图像的平均明暗和对比度等概貌性描述,由此可以看出图像的灰度分布特性

       灰度直方图是灰度级的函数, 反映的是图像中具有该灰度级像素的个数, 其横坐标是灰度级r, 纵坐标是该灰度级出现的频率( 即像素的个数) pr( r) , 整个坐标系描述了图像灰度级的分布情况。即若大部分像素集中在低灰度区域, 图像呈现暗的特性; 若像素集中在高灰度区域, 图像呈现亮的特性。

           先确定灰度等级例如[1,2,3,4,5,6],再统计每个灰度像素出现次数[5,4,5,6,2,14],最后画直方图。

      反映了图像的清晰程度,直方图均匀分布时,图像最清晰,所以判断一幅图是否清晰,就要看是否合理的利用了所有的灰度。

       直方图均衡化

通过均衡化函数将直方图改造成均匀的直方图,图像进行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等。效果是提高对比度,达到最清晰的效果(是一种图像增强手段)。

注意:避免灰度变化。  

    图1所示就是直方图均衡化, 即将随机分布的图像直方图修改成均匀分布的直方图。基本思想是对原始图像的像素灰度做某种映射变换, 使变换后图像灰度的概率密度呈均匀分布。这就意味着图像灰度的动态范围得到了增加, 提高了图像的对比度。

clip_image001

通过这种技术可以清晰地在直方图上看到图像亮度的分布情况, 并可按照需要对图像亮度调整。另外,这种方法是可逆的, 如果已知均衡化函数, 就可以恢复原始直方图。

设变量r 代表图像中像素灰度级。对灰度级进行归一化处理(归一化方法), 则0≤r≤1, 其中r= 0表示黑, r= 1表示白。对于一幅给定的图像来说, 每个像素值在[ 0,1] 的灰度级是随机的。用概率密度函数clip_image003来表示图像灰度级的分布。

扫描二维码关注公众号,回复: 3137577 查看本文章

为了有利于数字图像处理, 引入离散形式。在离散形式下, 用clip_image005 代表离散灰度级, 用clip_image007 代表clip_image003[1] , 并且下式成立:clip_image009[12]

其中, 0≤clip_image005[1]≤1, k=0, 1, 2, …, n-1。式中clip_image011[12] 为图像中出现clip_image005[2]这种灰度的像素数, n是图像中的像素总数, 而clip_image013[12]就是概率论中的频数。图像进行直方图均衡化的函数表达式为:

clip_image015[12]

式中, k为灰度级数。相应的反变换为:

clip_image017

OpenCV的直方图均衡化:

。。。

猜你喜欢

转载自blog.csdn.net/simonyucsdy/article/details/81839060