图像处理中直方图匹配以及灰度拉伸

一、基本知识

图像对比度是指:一副图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,差异范围越大代表对比度越大;一般来说图像对比度越大,图像越清晰醒目,色彩也越鲜明艳丽;对比度小让整个画面都灰蒙蒙;

图像饱和度是指:图像的鲜艳程度,也是色彩的纯度。饱和度取决于图像中该色中含色成分和消色成分的比例;纯的颜色饱和度都大;

图像的亮度是指:图像的明暗程度;

 

直方图均衡化以及灰度拉伸都是属于图像对比度增强的方法;

 

二、灰度拉伸

灰度拉伸是通过对对比度拉伸达到对对比度进行增强的目的;

公式为:

 

三、直方图均衡化及直方图匹配:

首先直方图均衡化是采用累积函数的方式来实现的;至于为什么选用累积函数来实现均衡化在于

          1.像素不论怎么映射,一定要保证图像中原来的大小关系不变,较亮的区域依然较亮,较暗的区域依然较暗,只是对比度增加,不改变图像明暗特征;

          2.映射过去的函数不能越界;

而累积函数分布函数是单调增函数且值域在0到1符合条件;一副图像的灰度级可看成是区间[0,L-1]内的随机变量;

其中w是积分的假变量,公式右边是随机变量r的累积分布函数。在由莱布尼茨准则

可以转化为

 

对于离散的图像来说

四、一个例子来说明到底如何进行直方图匹配的过程:

 假设一副图像的大小为64*64像素(M*N=4096)的3比特图像(L=2^3=8)的灰度分布表

 则根据上表就可以算出S0~S7

就可以得到均衡化后的直方图

这样可以得到均衡化后的直方图只有5个不同的灰度及,r0被映射到了s0=1;r1被映射到了s1=3;r2被映射到了s2=5;r3、r4被映射到了S=6;r5 6 7都被映射到了S=7;如下图就是均衡后的直方图:

接下来我们看需要待直方图匹配;

我们先得到了S0=1;S1=3;S2=5;S3=6;S4=6;S5=7;S6=7;S7=7 。  接下来我们需要对规定直方图进行同样的均衡化;

通过计算的结果发现G函数并不是严格单调的,违反了条件的一一对应关系,所以找到Zq的最小值与SK最接近作为对应标准;例如S0=1;与G(Z3)=1就是完美匹配,因此S0对应Z3,也就是直方图均衡后的图像每个值为1的像素映射为直方图规定话后图像的值为3的像素;最后结果如下图:

 

 

以上例子节选来自《数字图像处理第三版》内容;

 

五、实际opencv例子结果

程序的源代码如下图所示:

 

测试原图为:

 

 

 

由于选取图像不是很特别,只是用来验算的。从结果上面来看整体目标是实现了,灰度拉伸只是线性的拉宽对比度,对图像的整体影响不大。而灰度直方图均衡化却对图像的整体效果有影响,对直方图的改变也比较大;

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

  

 

posted @ 2017-12-04 16:53  鑫情91  阅读(5241)  评论(0编辑  收藏  举报