冈萨雷斯《数字图像处理》学习笔记(5)--图像分割

一、点、线和边缘检测

这里用的图像检测方法主要是滤波操作。模板在图像中任意一点的响应R由下式给出:

R=i=19ωizi

其中, zi 是与模板系数 ωi 相关的像素的灰度。
下面是点检测的模板:
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割

线检测的模板如下(分别检测水平,45度,垂直和-45度的线):
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割

在谈边缘检测前,先看些基础知识:
二维函数的梯度定义如下:

f=[fxfy]

幅值定义为:mag(f)=[(fx)2+(fy)2]12
可以用下列两种方式近似:
mag(f)(fx)2+(fy)2
mag(f)|fx|+|fy|
边缘检测使用如下两个准则之一来找到图像中灰度快速变化的位置:

  1. 寻找灰度的一阶导数的幅度大于某个指定的阈值。
  2. 寻找灰度的二阶导数有零交叉的位置。

我们可以从下面的图看出为什么要使用上面两个准则。
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割

很明显一阶导数幅度大的地方表示图像灰度变化十分剧烈,同理二阶导数的零交叉点也是灰度变化十分剧烈的位置。

又根据导数在数值上可近似为差分。我们利用如下滤波器可以达到边缘检测的目的。
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割

LoG检测器
考虑高斯函数:

G(x,y)=ex2+y22σ2

该函数的拉普拉斯算子是(即二阶微分):
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割
使用它卷积的效果: 平滑图像,降低噪声,产生一幅双边缘图像。因此可以通过双边缘之间的零交叉来定位边缘。

二、霍夫变换

采用Hough变换时,我们考虑一个点 (xi,yi) 和所有通过该点的直线。很明显,有无数条经过点 (xi,yi) 的直线,这些线对某些a值和b值来说,均满足 yi=axi+b 。将该公式写为 b=axi+yi 并考虑ab平面(也称为参数空间),可对一个固定点 (xi,yi) 产生单独的一条直线。此外,第二个点 (xj,yj) 也有这样一条在参数空间上与它相关的直线,这条直线和与 (xi,yi) 相关的直线相交于点 (a,b) ,其中a’和b’分别是xy平面上包含点 (xi,yi)(xj,yj) 的直线的斜率和截距。事实上,在这条直线上的所有点都有在参数空间中相交于点 (a,b) 的直线。下图说明了这些概念。
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割
但这种方法在直线趋近于垂直时,a 的值将趋于无穷大。因此我们用法线来表示直线:

xcosθ+ysinθ=ρ

下图(a)说明了 ρθ 的几何意义。图(b)中每一条曲线表示通过 (xi,yi) 的一族直线。图(c)是将参数空间离散化进行计算。
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割
霍夫变换把参数空间细分为累加器单元。其中, DρD(D是图像中两个对角之间的最远距离)。90θ90。最初每一个累加器单元数值设置为0。然后对图像中的每一个点 (xk,yk) ,使用所有离散化后的 θ 值代入公式 ρ=xkcosθ+yksinθ 求出相应的 ρ 值(将 ρ 值四舍五入为沿 ρ 轴最接近的允许单元值 )。同时相应的累加器单元加1。上面的过程结束后,累加器表上记录下来的每个单元 (i,j) 的数值Q就意味着在xy平面上有Q个点位于线 xcosθj+ysinθj=ρi 上。该表中最大的所对应的 (ρ0,θ0) 就是xy平面上共线点数数目最多的直线方程的参数。

三、阈值处理

全局阈值处理

冈萨雷斯《数字图像处理》学习笔记(5)--图像分割

使用 Otsu 方法进行最佳全局阈值处理

类间方差最大化的思想是方差越大,越接近正确分割图像的阈值。下面给出类间方差的表达式(假设选定一个阈值k,C1是灰度级为[0,1,2,3,…,k]的一组像素,C2是灰度级为[k+1,..,.L-1]的一组像素):
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割
其中,p1(k) 是集合C1发生的概率, p2(k) 是集合C2发生的概率:
P1(k)=i=0kpi
P2(k)=i=k+1L1pi

m1(k) 是集合C1像素的平均灰度, m2(k) 是集合C2像素的平均灰度, mG 是全局均值:
m1(k)=i=0kipi
m2(k)=i=k+1L1ipi
mG(k)=i=0L1ipi

定义类间方差与图像总灰度方差的比值为:η(k)=σB2(k)σG2
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割

使用移动平均值的图像阈值处理

zk+1 表示第 k+1 步扫描时所遇到的点的灰度,那么这个新点处的移动平均由下式给出:

m(k+1)=m(k)+1n(zk+1znk)

使用下式实现分割:
f(x,y)={1,f(x,y)>Kmx,y0, other situation

其中K是[0,1]区间的常数, mxy 是输入图像中点(x,y)处的移动平均。
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割

四、分水岭图像分割

构建大坝(Dam Construction)

最简单的构建大坝的方法就是利用形态学运算——膨胀
下图展示了第n-1步淹没的两个集水盆地:
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割
接着展现了第 n 步淹没的结果:
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割
最后构建水坝:
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割

为了说明下文,令M1和M2表示两个区域中的最小值点坐标的集合。将集水盆地点的坐标集合与这两个在溢出的第n-1步的最小值点的坐标集合联系起来,在第n-1步溢出处,两个最小值分别表示为 Cn1(M1)Cn1(M2)。它们代表上图第一幅图的两个灰色区域。再令C[n-1]表示这两个集合的并集。上图第一幅图有两个连通分量,第二幅图只有一个连通分量。令q表示第二幅图的连通分量。注意到,第一幅图的两个连通分量可以由“与”操作(qC[n1])从q中提取出来。

分水岭算法

M1, M2 表示图像g(x,y)的区域最小值的坐标的集合, C(Mi) 表示与区域最小值 Mi 联系的集水盆地的点的坐标集合。令Cn(Mi) 表示集水盆地与淹没阶段n的区域最小值 Mi 联系的的点的坐标集合,最后令T[n] 表示满足 g(s,t)<n 的坐标(s,t) 的集合。根据上面的理解,可看出 Cn(Mi) 是由下式给出的一幅二值图像:

Cn(Mi)=C(Mi)T[n]

接下来,我们令C[n]表示在阶段n 中已被水淹没的集水盆地的并:
C[n]=i=1RC(Mi)

我们可以理解为:C[n-1]中的每一个连通分量都恰好包含在T[n]的一个连通分量。下面是分水岭算法的步骤:
冈萨雷斯《数字图像处理》学习笔记(5)--图像分割