直方图均衡化

简介: 直方图均衡化是一种图像处理技术,通过改变图像灰度级分布,增强图像对比度。手动实现包括计算灰度直方图、像素总数、灰度分布频率、累积分布频率,然后归一化映射到新灰度级,最终得到增强对比度的图像。该方法适用于改善灰度集中或明暗对比不明显的图像,但全局处理可能导致背景干扰增强,丢失细节,且某些图像可能过度增强。局部直方图均衡化可作为改进方案。

直方图均衡化


image.png





直方图均衡化手动实现:

image.png

假设上图为一图片的像素图

第一步:计算原始图像的灰度直方图nk。

n(0)=3 原始图像的灰度级为0的像素的个数是3 按这样可得出n(1),n(2)....n(9)

可得nk = [3,2,4,4,1,1,4,1,2,3]

image.png

第二步:计算原始图像的像素总个数。

N = 5 * 5=25.

第三步: 计算原始图像的灰度分布频率

image.png

第四步:计算原始图像的灰度累积分布频率

image.png

第五步:将归一化的sk乘以L-1在四舍五入,以使的得的均衡化后图像的灰度级与归一化前的原始图像一致

image.png  四舍五入之后值为1也就是原始图像中灰度级0对应均衡化后的灰度级1 即0 -->1 将原图像0改为1 类似s1 s2    这种映射关系就是变换函数T(r)的作用

第六步: 根据以上映射关系,参照原始图像的像素,可以写出直方图均衡化之后的图像  如下图

image.png

以上即为手动计算直方图均衡化   如下图结果

image.png

根据图6和图8,说明一下直方图均衡化是如何增强图像对比度的。在图6中,原始图像灰度值为4,5,7的像素的个数为1,因此在图8中,这三个像素值点分别归并到相邻的灰度值中。因为有三个灰度值归并,因此在均衡化处理后,出现了三个空位,由这些空位将原来相邻的灰度值展开(举个例子:5和6相邻,均衡化后,变成5和7相邻),故而展宽了对比度,但是归并也带来了某些相邻像素对比度的降低(举个例子:4和5相邻,均衡化后,变成5和5相邻)。这也说明了直方图均衡化方法对灰度分布比较集中的图像的处理效果比较明显。



直方图均衡化的缺点:

       如果一幅图像整体偏暗或者亮,那么直方图均衡化的方法很适用,但直方图均衡化是一种全局处理方式,他对处理的数据不加选择,可能会增加背景干扰信息的对比度并且降低有用信号的对比度(如果图像某些区域对比度很好,而另一些区域对比度不好,那采用直方图均衡化就不一定适用)此外均衡化后图像的灰度级减少,某些细节会消失,某些图像(如直方图有高峰)经过均衡化后对比度不自然的过分增强,针对直方图均衡化的缺点,已经有局部的直方图均衡化方法出现


相关文章
|
计算机视觉 Python
直方图与直方图均衡化
直方图与直方图均衡化
|
7月前
|
计算机视觉
普通直方图均衡化
普通直方图均衡化。
32 2
|
7月前
|
资源调度 API 计算机视觉
【OpenCV】—非线性滤波:中值滤波、双边滤波
【OpenCV】—非线性滤波:中值滤波、双边滤波
|
7月前
|
存储 编解码 资源调度
【OpenCV】—线性滤波:方框滤波、均值滤波、高斯滤波
【OpenCV】—线性滤波:方框滤波、均值滤波、高斯滤波
370 2
|
7月前
|
计算机视觉
图像直方图
以下是内容摘要: 本文介绍了直方图在图像处理中的应用,包括图像增强和图像分割。直方图均衡化用于改善图像的亮度分布,而根据直方图可获取分割阈值以实现图像分割。此外,直方图对比有助于图像分类。直方图是表示图像亮度分布的图表,通过分析直方图的峰值可判断图像属于低调、中间调还是高调。直方图均衡化则能将图像转换为灰度分布更均匀的新图像。
67 0
|
7月前
|
算法 计算机视觉
OpenCV对图像进行Otsu二值分割、Canny边缘检测、Harris角点检测实战(附源码)
OpenCV对图像进行Otsu二值分割、Canny边缘检测、Harris角点检测实战(附源码)
106 0
直方图均衡化
直方图均衡化
42 0
C++-灰度图上色GrayToColor
C++-灰度图上色GrayToColor
|
计算机视觉
灰度直方图及直方图均衡化
灰度直方图及直方图均衡化
94 0
|
API 计算机视觉 Python
OpenCV_07 直方图:灰度直方图+直方图均衡化
直方图是对数据进行统计的一种方法,并且将统计值组织到一系列实现定义好的 bin 当中。其中, bin 为直方图中经常用到的一个概念,可以译为 “直条” 或 “组距”,其数值是从数据中计算出的特征统计量,这些数据可以是诸如梯度、方向、色彩或任何其他特征。
211 0