MATLAB中histeq的原理以及自写的具体实现函数

直方图是数字图像处理中一个简单而重要的常用工具,它从总体上刻画了一幅图像的灰度内容。

具体来说,直方图描述的是图像中具有各灰度级的出现的概率(像素的个数),其横坐标为灰度级,纵坐标为图像中具有该灰度级的像素个数。由于灰度级的大小为0-255,故横坐标的数值范围为0-255.

其语法格式为:

J=histeq(I,hgram);

J=histeq(I,n);

[J,T]=histeq(I);

注:hgram为归一化(各元素均在[0,1]上)的灰度直方图。

[J,T]=histeq(I);返回图像J的同时也返回变换向量。

直方图的基本数学原理

直方图均衡化方法可以产生一幅灰度级分布概率均匀的图像。以概率论中的概率密度和分布函数为基础,在这里我们举例来理解直方图的概念。

比如有如下数据

10 10 8 6
10 8 6 6
10 10 8 8
4 4 4 4
4 6 6 6

则其灰度直方图为

代表着数值为4的个数有5个,数值为6的个数有6个,数值为8的个数有4个,数值为10的个数有5个

由灰度分布直方图,得其任意一灰度级数x(x∈[4 10])概率密度表达式:



通过上述原理,我们不难发现,概率密度表示对应的某一灰度级数在图片中出现的概率,某一灰度级数的分布函数值则表示小于等于该灰度级数的所有灰度值在图片中所占概率。正如前文所述,直方图均衡化作用在于将原始直方图变为更均匀分布的图片。因此,基于上述数学原理,我们便可在此基础上推出直方图均衡化的实现原理:

猜你喜欢

转载自blog.csdn.net/yutong5818/article/details/80304012