另一种点处理 histogram processing
特点:T不再由人为指定,由方法自动得出
直方图:横轴为灰度级的个数,纵轴是该灰度级所拥有的像素的数目,反应了灰度级统计的分布
h(rk) = nk , k=0…L-1—— rk是某个灰度 nk是该灰度的像素个数
h(rk) 求积分所得的数目为像素的数目n
归一化的直方图
p(rk) = nk/n for k= 0…L-1 就恰好变成了每个灰度出现的概率,p就是指概率直方图
归一化好处是可以用概率统计方法
直方图的均衡化 Histogram Equalization
使用场景:某个室内环境,有光源使得折射环境比较稳定,但是室外的光照是很不稳定的,导致采集到的图像亮度会发生很大的变化,影响到识别算法,但我们希望在不同的光下图像的变化不要太大,这时候就要用到均衡化。
因为我们发现表现较好的图像灰度都趋于均匀。比如下面的图,但是要怎么做才能让灰度平均呢?
下面用一个实例来解释,统计出直方图h(r)之后,可以看出灰度是8
第一步:除n变成均值直方图p(r)
第二步:算出直方图均衡图r,本来应该是积分,但是因为r是离散的,所以应该是累加,也就是第二个公式
算完之后应该是一个递增的图像,按说sk是0~1之间的数,但是这时候算出sk之后需要乘灰度级,然后四舍五入取整,这样带能得到映射关系
S0=0.19*71.33约等于1 所以原来的灰度0映射到灰度1,其余的也是这样
映射之后,可以再算一下p,就会发现很平均
直方图匹配Histogram Matching
输入直方图尽量向目标直方图的分布匹配
r是输入图像z是目标图像
假设r的直方均衡图为:
z的直方均衡图为:
因为要让输入图像向目标靠拢嘛,所以就是让T(r)=s=G(z)
这样如果先求出z就是z=G的逆函数(s)——也就是函数中的同y不同x,两个函数y值相同,x值不同,那么函数1的x1就对应函数2的x2
这样zk就对应rk了
也就是原来是r的灰度要映射到z上去
但现在还有个问题就是,假如我在T中找到一个S值是G中没有的,怎么找对应关系?假设这个S是5,但是G的离散值里没有5,那我就找G=4没有4就找G=3,直到找到为止