![数字图像处理及应用:使用MATLAB分析与实现](https://wfqqreader-1252317822.image.myqcloud.com/cover/293/25111293/b_25111293.jpg)
2.8 灰度直方图
直方图是进行数据统计的一个简单、高效和常用的工具,灰度直方图也是数字图像处理中一个方便、有效的常用工具。灰度直方图是基于图像灰度值和像素统计分布的形象表示,它概括地表示了一幅图像的灰度级信息。任何一幅图像的直方图都包括了该图像的许多特征信息,某些特定类型的图像甚至可由直方图来完全描述。
2.8.1 直方图的定义与性质
1. 直方图的定义
直方图是统计学中的常用工具之一,在数字图像处理中灰度直方图是灰度级的函数,它描述了图像中具有该灰度级的像素的个数,其横坐标是灰度级,纵坐标是该灰度出现的频率(像素的个数)。
对于连续函数表示的图像,其灰度直方图也有另一种定义方式。在图2-16所示的图像中,有一条灰度级为D1的轮廓线,在更高的灰度级D2处有第二条轮廓线。A1表示第一条轮廓线所包围区域的面积,同样,以A2表示第二条轮廓线所包围的区域的面积。
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P62_3646.jpg?sign=1738867211-sQuj0FqDaSXilAxSkDId8DfRobPEh8xB-0-1d26f0bae7f4a7f0c2b411b5cf570c1b)
图2-16 一幅图像的轮廓线
在一幅连续图像中,将灰度级为D的轮廓线所包围的面积称为灰度级D的阈值面积函数,用A(D)表示,则直方图可定义为
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P62_15373.jpg?sign=1738867211-JNYcC5O8cDYCei36aGxl40MA665SMKQZ-0-e76ff3ecad03db1977fbc47cd0a15329)
因此,一幅连续图像的直方图是其面积函数的导数的负值。负号的产生是因为随着D的增加面积函数A(D)的值在减少。若将图像看成是一个二维的随机变量,则面积函数相当于其累积分布函数,而灰度直方图则相当于其概率密度函数。
对于离散函数,固定ΔD为1,则上述定义为
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P63_15376.jpg?sign=1738867211-cCpO3wZWTpNDEG1UeuOf5TlpjrNV5fTb-0-82f126b6889889b5f3b12109fd3954bc)
对于数字图像,任一灰度级D的面积函数就是大于或等于该灰度值的像素个数。
2. 直方图的性质
直方图具有以下性质:
(1)直方图是一幅图像中各像素灰度值出现次数或频数的统计结果,它只反映该图像中不同灰度值出现的频率,而不能反映某一灰度值像素所在的位置信息。即直方图仅包含了该图像中某一灰度值的像素出现的概率,而丢失了其所在位置的信息。
(2)任一幅图像,都能唯一地确定一个与之对应的直方图。但不同的图像,可能有相同的直方图。也就是说,图像与直方图之间是一种多对一的映射关系。
(3)由于直方图是对具有相同灰度值的像素统计计数得到的,若某一幅图像由若干子图像区域构成,那么各子区域直方图之和就等于原图像的直方图。
2.8.2 直方图的作用
1. 数字化参数
直方图给出了一个简单、直观的可视化指标,可用于判断一幅图像是否合理地利用了全部被允许的灰度级范围。若图像亮度具有超出数字化器所能量化的范围,则这些灰度级将被简单地置为0或255,这时,根据直方图的定义和意义,在其一端或两端将产生尖峰。对直方图的快速检查可以使数字化中产生的问题及早暴露出来,以便及时纠正。
2. 选择边界阈值
假定一幅图像背景是浅色的,其中有一个深色的物体,图2-17所示为这类图像的直方图。物体中的深色像素产生了直方图上的左峰,而背景中大量的灰度级产生了直方图上的右峰。物体边界处处于两个峰值之间灰度级的像素数目相对较少,从而产生了两峰之间的谷。选择谷作为灰度阈值将得到合理的物体的边界。
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P63_3665.jpg?sign=1738867211-4kMZA7HetJ01xruUJlljdHGwCePLOMba-0-6e016f10e63ed409edd10169f739f861)
图2-17 双峰直方图
在某种意义上来说,选择对应于两峰之间的最低点的灰度值作为阈值来确定边界是较合适的。由式(2-13)可知,直方图是面积函数导数的负值。在谷底的附近,直方图的值相对较小,意味着面积函数随阈值灰度级的变化很缓慢。如果选择谷底处的灰度作为阈值,将可以使其对图像内物体的边界的影响达到最小。如果欲测量原图像的面积,选择谷底处作为阈值可使测量对于阈值灰度变化的敏感度降至最小。
3. 计算综合光密度
某些情况下,综合光密度是图像质量一个很有用的度量,利用直方图可直接计算出综合光密度值。综合光密度用IOD来表示,以二维图像为例,设D(x,y)表示二维图像的灰度分布,则综合光密度为
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P64_15378.jpg?sign=1738867211-IgO9SOjx90SO4CbB7EdShit7BX0Z3uhJ-0-83723cd4eb6347be83ec23ad10dc928e)
其中,a和b是图像区域的边界。对于数字图像,则有
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P64_15380.jpg?sign=1738867211-F06SSCk8lE3dxBrvFvEUNpr3q9y1l6q6-0-8337a93c0fcafc2b9ce4a7d20e5ee676)
其中,D(i,j)是像素点(i,j)处的灰度值。NL和Ns分别是图像行和列的数目。令Nk代表灰度级为k时所对应的像素的个数,则式(2-16)可以化为
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P64_15382.jpg?sign=1738867211-HZWMrl3ARk9jSOEKKbdOjsQkIpkwUVcD-0-c3ab04a7eedfe2a2572264aabaf7ef9c)
由于Nk=H(k),因此有
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P64_15394.jpg?sign=1738867211-h4bSLiqzmy0A71eEZKUoYzDEB41j26eG-0-b5b61de5ba8cdccc565f24aaac22ede7)
即综合光密度是用灰度级加权的直方图之和。
令式(2-16)等于式(2-17),同时使灰度级的增量趋于0,则可以得到适用于连续图像的综合光密度公式为
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P64_15386.jpg?sign=1738867211-OqRJoeRQzgE0cFpVdaXpCwYkhI6hB1aD-0-3a412a3847939017bb56735ceda7cf1b)
以及
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P64_15387.jpg?sign=1738867211-GHlig9EULHDOmYxRiGJTDgcZPchJp7v0-0-b0b21fda2358fbd49f303e21ef5bd2d2)
若图像中的物体被阈值灰度级为T的边界描绘出来,则物体边界内的IOD值可以采用如下公式计算,即
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P64_15389.jpg?sign=1738867211-kSWYaKKrGO1hEQpJ6mEuq0S7vWldwd19-0-5bd3b615b917172fd24ab15052a9b0a5)
内部灰度级的平均值MGL等于IOD与面积之比值,即
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P64_15390.jpg?sign=1738867211-jvPIu8BgpTVXd7A1mI0J4ha4VtdXaqV7-0-dca5eb66d49d34fc6c134356e757b3b5)
2.8.3 直方图与图像的关系
对于任一幅图像,直方图是唯一的,若已知一幅图像的函数形式,则可计算其直方图。由于直方图是面积函数关于灰度级的导数的负值。因此,如果能从图像本身的表达式得出面积函数,则有可能获得直方图。如图2-18所示,设图像是中心在原点的圆对称高斯脉冲,则图像函数的极坐标表示为
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P65_3704.jpg?sign=1738867211-SllhQEJ1PT7kWAou2RPSYdK4UOZP35tE-0-41a760648b8da0a5c1c02212ca0d95c6)
图2-18 圆形高斯点
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P65_15396.jpg?sign=1738867211-PYxHY4Zp0jk6s2ulqqRsO1Gn4jEQalQv-0-08cb5bd564df4d38da05df4acc8de3b6)
由于灰度级为常数P的轮廓线是半径为r(P)的圆,根据式(2-22)可得
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P65_15398.jpg?sign=1738867211-4u5LwG1pjnBRSIXrnaef365qcH7sSecq-0-0bedc479ba7cdb153f468093785474b4)
因此可得
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P65_15400.jpg?sign=1738867211-UV3eIU5yNULGT0EZQW1nWdF9hFjqZrvE-0-e3f37de2906c4130d61e48d40862245a)
该轮廓线所包围的面积为
A(P)=π[r(P)]2=—πln(P)
对面积函数进行微分,可得到直方图函数,即
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P65_15403.jpg?sign=1738867211-fHpcAMljOrvxNda5C4MHuscj1ekIFvgW-0-3956e868ac28a698e217c4314a5c40fd)
曲线如图2-19所示。
![](https://epubservercos.yuewen.com/ED2C5A/13467200603426206/epubprivate/OEBPS/Images/Figure-P65_3719.jpg?sign=1738867211-DxTXjTzcwTmcxn6WDDtMT2hA4qmAJ68w-0-80f591e12a704e15c436a02ae62931c6)
图2-19 圆形高斯点的直方图