对比度受限的自适应直方图均衡化(CLAHE)
直方图均衡化
引言
图像增强的方法主要有:
直方图均衡化
直方图均衡化的概念
定义:通过图像灰度直方图均衡化处理,使得图像的灰度分布趋向于均匀,图像所占有的像素灰度间距拉开,加大了反差,改善视觉效果,达到图像增强的目的。
映射函数:原始图像灰度r的累计分布函数
S
=
T
(
r
)
=
(
L
−
1
)
∫
0
r
p
r
(
w
)
d
w
S=T(r)=(L-1)\int_0^rp_r(w)dw
S=T(r)=(L−1)∫0rpr(w)dw
S = T ( r ) , 0 ≤ r ≤ L − 1 S=T(r),0≤r≤L-1 S=T(r),0≤r≤L−1
T
(
r
)
T(r)
T(r)满足下列两个条件:
(1)
T
(
r
)
T(r)
T(r)在区间
0
≤
r
≤
L
−
1
0≤r≤L-1
0≤r≤L−1中为单调递增函数
(2)当
0
≤
r
≤
L
−
1
0≤r≤L-1
0≤r≤L−1时,
0
≤
T
(
r
)
≤
L
−
1
0≤T(r)≤L-1
0≤T(r)≤L−1
- 条件(1)要求 T ( r ) T(r) T(r)为单调递增函数是为了保证输出灰度值不少于相应的输出值,防止灰度反变换时产生人为缺陷。
- 条件(2)保证输出灰度的范围与输入灰度的范围相同
直方图均衡化的计算
对于离散值,用概率(直方图值)与求和来代替处理概率密度与积分。
一幅数字图像中灰度级
r
k
r_k
rk出现的概率近似为:
P
r
(
r
k
)
=
n
k
n
,
k
=
0
,
1
,
2...
,
L
−
1
P_r(r_k)= \frac{n_k}{n},k=0,1,2...,L-1
Pr(rk)=nnk,k=0,1,2...,L−1
用累计分布函数作变换函数进行图像灰度变换,其离散形式为:
S
k
=
T
(
r
k
)
=
(
L
−
1
)
∑
j
=
0
k
p
r
(
r
j
)
=
(
L
−
1
)
∑
j
=
0
k
n
j
n
k
=
0
,
1
,
.
.
.
,
3
S_k=T(r_k)=(L-1)\sum_{j=0}^kp_r(r_j)=(L-1)\sum_{j=0}^{k}\frac{n_j}{n}\qquad k=0,1,...,3
Sk=T(rk)=(L−1)j=0∑kpr(rj)=(L−1)j=0∑knnjk=0,1,...,3
上式表明,均衡后各像素的灰度值 S k S_k Sk,可直接由原图像的直方图算出。这个变换称为直方图均衡或直方图线性变换。
简单举例
自适应直方图均衡化(AHE)
简介
由于图片明暗分布的问题,对一张图片进行全局的直方图均衡化可能导致明部或者暗部的细节丢失。为了优化均衡化效果,我们对可以对不同区域进行直方图均衡化以获得更加合适的效果。
要实现区域直方图均衡化有两种方法:
1、将图片均分成几片区域各自进行直方图均衡化;
2、对于一个特定像素,去其领域构建
S
(
r
)
S(r)
S(r)映射函数并将结果影射到该像素中;
两种方法各有其缺点。前者会使得图片出线许多区块(亮度不均),后者计算量庞大(对每个像素的领域都要进行一次直方图均衡化)。
而对于方法一,在对各区块进行线性插值之后,可以削弱图片的区块效应。这种方法叫做:自适应直方图均衡化(Adaptive histogram equlization,简称AHE。)
限制对比度自适应直方图均衡化(CLAHE)
https://blog.csdn.net/u010839382/article/details/49584181
matlab实现:
J = adapthisteq(I)
J = adapthisteq(I,Name,Value)