【杂碎笔记】【计算机与机器视觉 by E.R.Davies】Chapter4

来源:互联网 发布:无法优化游戏的问题 编辑:程序博客网 时间:2024/05/29 18:33

4 阈值技术

4.1 介绍

图像分割将物体从背景中提取出来以便进行后续的处理。分割成的不同区域内在某些参数上具有一致性。
不幸的是,图像分割似乎是人类意识的产物,计算机很难精确地分割不同物体。
通过计算均匀度来进行分割很大程度上是无效的,例如单向光打到一个球体,导致亮度是连续变化的。
尽管如此,均匀性测量在图像分割概念中达到了足够的准确性,所以值得在实际应用中采用。

4.2 区域增长方法(region-growing methods)

亮度接近的点不断被包含进来,最终得到分割的图像。显然,这需要一套规则来界定某个亮度的点是否应该被包含。然而这不足以做出可行的策略,实际上很容易错误地混合两个区域或分割一个区域。噪声和不相连的线成为构建简单标准、确定他们是否是边界的困难。遥感应用上,通常难以严厉的将两个区域分离,无法得到连续的边界使图像分割通常需要人参与来交互完成。Hall(1979)发现实际上区域增长通常太大,所以通过边界检测限定增长是这个方法正常的必要保证。
所以。区域增长进行分割在实际应用中相当复杂。另外,区域增长法通常需要迭代运算,来改善某个点是否属于该区域的假设。
这项技术非常复杂,因为在对区域图像操作时,通常会考虑全局的点,每个点的亮度会被计算很多次,使该方法的计算密度非常大。所以,我们以后不讨论这个方法了因为我们更关注低计算量、可以实时处理的方法。

4.3 阈值化(thresholding)

最常用的确定阈值的方法是分析直方图,如果找到显著的最小值,即被解释为所需的阈值。
难点有下:
1:谷部可能很宽,难以确定显著的最小值。
2:可能会有很多极小值,难以确定最显著的一个。
3:谷部的噪声会占据最优的阈值位置。
4:分布可能没有明显的谷部因为噪声的存在或者背景光明显的变化。
5:主要的峰值比其它的大会使最小值偏斜。
6:直方图可能多峰的,导致确定哪个峰与阈值相关很困难。
最严重的问题是最后一点,

解决阈值选择中偏斜的问题

对应问题5,当一个峰比另一个峰高时,阈值选择会发生偏斜。
如果两个峰的相对高度已知,“固定比例”方法可用于阈值选择。然而,这并不常见。
一个更有用的途径是,通过减小极值增加中间值的方法来防止偏斜。首先,注意到中间值对应图像中的边界,因此,一个基本的策略是保留亮度梯度较大的点而忽略其它点。一个处理它的方法是构建散点图。横坐标为亮度(I),纵坐标为梯度(G)。该图会由三个主要部分构成:1.低I低G、2.高I低G、3.中I高G。其中区域3对应边界。

基于寻找亮度分布中谷部的方法

使用参数衡量直方图的权重代替梯度。
一种简单的策略是首先定位所有梯度较大的点,然后寻找这些点以及邻近点的亮度直方图。这意味着两个主要的众数被显著的减弱。
这种途径会包含边界像素本身,为了最好的结果,这些点应该被移除。一个经证实良好的方法是统计经过拉普拉斯滤波器的响应结果的直方图。这种滤波器提供二阶导数的一个各向同性估计。这能使梯度较高的地方权重为0,使边缘的两肩权重增加。

4.4 适应性阈值(adaptive thresholding)

当光照不均匀时,图像各处的阈值需要适应性的变化。有如下几种方法:
1.对背景建模。
2.对于每个点,通过邻域的亮度分布计算阈值。
3.将图像分割成子图像并对他们分别处理。

最后一种方法“显然”的会在边界处带来问题,但是当这个问题解决,这种方法效果更好。
一种解决方法:在一些场景特别是自动化装配应用中,可以获得不包含物品的背景,这用一种严格的方式解决了适应性阈值。然而,物品会带来阴影、各种反射,这种效果是非线性的,不仅要考虑物体和背景的亮度差,还要考虑物体间的反射。在一些场景下,这种方法行不通。在另一些场景中,背景可能变化缓慢,可以通过如下方式建模:
首先选择一个表现的接近亮度函数的等式,例如,二次变分(quadratic variation):I=a+bx+cy+dx2+exy+fy2
接下来,建立一个参数空间:a,b,c,d,e,f
最后,选择最优的一组参数,作为背景模型。

4.5 阈值选择更完全的方式

介绍三种被广泛应用且具有严密的数学依据的方式。
1:基于方差的阈值化。
假设图片中有L个级别的灰度的点,用ni表示第i级的点的个数,总点数N=Li=1ni,每个灰度的概率pi=niN,Li=1pi=1
阈值取k,将点分为两类,得类中方差σ2B和总方差σ2T
σ2B=π0(μ0μt)2+π1(μ1μt)2
σ2T=Li=1(iμT)2pi
其中:
π0=ki=1pi
π1=Li=k+1pi=1π0
μ0=ki=1ipi/π0
μ1=Li=k+1ipi/π1
μT=Li=1ipi
化简得:
σ2B=π0π1(μ1μ0)2
取阈值k使η=σ2Bσ2T最小。
由于总方差一定,只需找类内方差最小的k。
2:基于熵的阈值化。
同样的,阈值k将灰度分为两类,概率分布:
A:p1Pk,p2Pk,...,pkPk
B:pk+11Pk,pk+21Pk,...,pL1Pk
其中:
Pk=ki=1pi
1Pk=Li=k+1pi
各自的熵为:
H(A)=ki=1piPklnpiPk
H(B)=Li=k+1pi1Pklnpi1Pk
取阈值k使总熵H(k)=H(A)+H(B)最大。
3:极大似然阈值化。
用已有的分布匹配亮度直方图,例如高斯分布:
pi(x)=1(2πσ2i)1/2e(xμi)22σ2i

4.6 全局谷部求阈值(GVM)

s(u)=u  if u>0
s(u)=0  if u<=0
Fj=maxi,k{12[s(hihj)+s(hkhj)]}
当有很多峰谷时,替换为:
Kj=maxi,k{s(hihj)s(hkhj)]12[}

4.7 GVM的实践结果

4.8 直方图凹度分析

4.9 结论

0 0
原创粉丝点击