Q:什么是图像直方图?
A:一般来说描述图像明暗程度的二维统计图,横轴是亮度(由暗到明),纵轴是该亮度出现的频率(像素个数)。
Q:什么是直方图均衡化?
A:以下是维基百科中对直方图均衡化的概述:
直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。
这种方法通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景雜訊的对比度并且降低有用信号的对比度。、
具体原理以及实现方法:
定义:hi(x):原始图像的直方图
ho(y):修正后的图像的直方图
y=f(x):变换函数
1. 根据上图以及上述定义,显然,x到δx之间的像素数量一定等于y到δy之间的像素数量。则他们的出现频率也相等,即阴影面积相等。顾当δy比较小时,可以近似认为:
所以:hi(x)*δx = ho(y)*δy (a)
(这一步的推导总是觉得有问题,希望有人能帮忙改正。本人的数学基础还需要补啊!)
2. 令 δx 和 δy 无限趋近于0,可以将式(a)转化成如下形式:
ho(y) = hi(x)*(dx/dy) (b)
从这个式子出发,(1) 若我们已经知道了原始图像(通常都是已知的),又知道变换函数的话,就可以马上得到均衡化处理后的直方图; (2) 若我们已经知道了原始图像,也已经知道了均衡化处理后的直方图,那么就可以求得变换函数。
第(2)点是我们比较感兴趣的地方。
3. 将式(b)稍作变化:
dy/dx = hi(x) / ho(y) (c)
对于理想的均衡化效果来说,得到的直方图是完全平的。因此 ho(y) 和 1/ho(y) 都是常数。
则式(c)可以表示成: dy/dx = K*hi(x) (K是一个常数) (d)
4. 将dx移到右边,得到:dy = K*hi(x)*dx
5. 两边同时积分,得到:y = K ∫ hi(x)dx (e)
6. 下面首先引入一个函数 C(x)
C(x) 是一个求和函数,自变量x是亮度值,C(x)表示所有亮度小于等于x的像素点的数目的和。
C(x) = ∑(0-x) Number(i), where Number(i) equals the Number of the pixels whose brightness value = i and i∈(0,x].
7. 在认为的连续情况下:∫ hi(x)dx = C(x);
因此,式(e)可以转换为:y = K*C(x) (f)
8. 最后是关于如何计算K:
K = ( L-1 )/N
其中,0 -- L-1 代表图像中所能够得到L个亮度值,N表示整幅图像的像素点的数量。
9. 因此,最后我们得到的直方图均衡化公式是:
y = ( L-1 )/N*C(x)
个人想法:
直方图有已经运用在图像匹配上,能不能运用到识别中?