图像分割—基于边界的图像分割

文章目录

      • 1. 边缘分割技术
      • 2. 边缘检测
        • 2.1. 部分常用的边缘检测算子处理效果展示
          • 2.1.1. 梯度算子
          • 2.1.2. Roberts算子
          • 2.1.3. Prewitt算子
          • 2.1.4. Sobel算子
      • 3. 边缘连接
        • 3.1. 局部处理法
          • 3.1.1. 基本原理
          • 3.1.2. 边缘跟踪
            • 3.1.2.1. 光栅跟踪
            • 3.1.2.2. 全向跟踪
        • 3.2. Hough变换
          • 3.2.1. 基本思想
          • 3.2.2. Hough变换检测直线算法
          • 3.2.3. Hough变换的扩展

1. 边缘分割技术

边界对图像来说是至关重要的信息,人可以仅通过图像边缘、轮廓就能对图像整体产生较完整的认识,例如漫画、简笔画等待。基于边界的图像分割技术是基于灰度不连续性进行的分割方法,其基础就是边缘检测

2. 边缘检测

利用梯度、差分、拉普拉斯算子及高通滤波等处理方法进行图像锐化,增强图像边缘,再进行一次阈值化处理,便可以将边缘增强的方法用于边缘检测

图像分割—基于边界的图像分割_第1张图片

2.1. 部分常用的边缘检测算子处理效果展示

2.1.1. 梯度算子

∇ f = [ G x G y ] = [ ∂ F ∂ x ∂ F ∂ y ] \nabla f=\begin{bmatrix} G_x \\ G_y \\ \end{bmatrix}=\begin{bmatrix} \frac{\partial F}{\partial x} \\ \\ \frac{\partial F}{\partial y} \\ \end{bmatrix} f=[GxGy]=xFyF

2.1.2. Roberts算子

[ 1 0 0 − 1 ] [ 0 1 − 1 0 ] \begin{bmatrix} 1 & 0 \\ 0 & -1 \\ \end{bmatrix}\begin{bmatrix} 0 & 1 \\ -1 & 0 \\ \end{bmatrix} [1001][0110]

2.1.3. Prewitt算子

[ − 1 0 1 − 1 0 1 − 1 0 1 ] [ 1 1 1 0 0 0 − 1 − 1 − 1 ] \begin{bmatrix} -1 & 0 & 1 \\ -1 & 0 & 1 \\ -1 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} 1 & 1 & 1 \\ 0 & 0 & 0 \\ -1 & -1 & -1 \\ \end{bmatrix} 111000111101101101

2.1.4. Sobel算子

[ − 1 0 1 − 2 0 2 − 1 0 1 ] [ 1 2 1 0 0 0 − 1 − 2 − 1 ] \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} 1 & 2 & 1 \\ 0 & 0 & 0 \\ -1 & -2 & -1 \\ \end{bmatrix} 121000121101202101

图像分割—基于边界的图像分割_第2张图片

3. 边缘连接

由于噪声的原因,边界的特征很少能够被完整地描述,在亮度不一致的地方会中断。典型的边缘检测算法后面总要跟随着连接过程和其他边界检测过程,用来规整边界像素,成为有意义的边界。

简单来说大概有两类方法:

3.1. 局部处理法

3.1.1. 基本原理

对做过边缘检测的图像的每个点 ( x , y ) (x,y) (x,y)的特性在一个小的邻域中进行分析,所有相似的点被连接形成一个享有共同特性像素的边界。

图像分割—基于边界的图像分割_第3张图片

所分析的特性一般是像素之间梯度算子的响应强度梯度方向

  • 通过比较梯度强度确定两个点之间的连接性:
    对于点 ( x ′ , y ′ ) (x',y') (x,y),判断其是否与领域内的点 ( x , y ) (x,y) (x,y)相似,当 ∣ ∇ f ( x , y ) − ∇ f ( x ′ , y ′ ) ∣ ⩽ T |\nabla f(x,y)-\nabla f(x',y')|\leqslant T f(x,y)f(x,y)T时可以判定两个像素之间的梯度强度相近。
  • 通过比较梯度方向确定两个点之间的连接性:
    对于点 ( x ′ , y ′ ) (x',y') (x,y),判断其是否与领域内的点 ( x , y ) (x,y) (x,y)的方向角相似,当 ∣ α ( x , y ) − α ( x ′ , y ′ ) ∣ ⩽ T |\alpha(x,y)-\alpha(x',y')|\leqslant T α(x,y)α(x,y)T时可以判定两个像素之间的有相互连接的趋势。

若梯度强度和梯度方向都小于所设置的阈值,则可以说像素 ( x , y ) (x,y) (x,y) ( x ′ , y ′ ) (x',y') (x,y)是连接的

3.1.2. 边缘跟踪

将检测的边缘点连接成线,形成有意义的边界。

3.1.2.1. 光栅跟踪

采用电视光栅行扫描顺序,结合阈值检测,对遇到的像素进行分析从而确定是否为边缘的跟踪方法,具体步骤如下:
(1) 选取一个较大的检测阈值 d d d,对图像第一行进行阈值化。大于 d d d的像素作为对象点,并作为下一步跟踪的起始点
(2) 选取一个较小的跟踪阈值 k k k,例如灰度差阈值
(3) 扫描下一行像素(像素 ( i , j ) (i,j) (i,j)的下一行像素 ( i + 1 , j − 1 ) (i+1,j-1) (i+1,j1) ( i + 1 , j ) (i+1,j) (i+1,j) ( i + 1 , j + 1 ) (i+1,j+1) (i+1,j+1)为跟踪邻域),凡与上一行对象点相邻接的像素灰度差小于 k k k的且值最小的点接受为新对象点,反之去除
(4) 对未被接受为对象点的其他各行像素再次从步骤(1)开始重复
图像分割—基于边界的图像分割_第4张图片

3.1.2.2. 全向跟踪

全向跟踪是指跟踪方向可以是任意方向,并且有足够大的跟踪距离的跟踪方法。是一种改变了邻域定义和跟踪准则的光栅跟踪法,其跟踪步骤和原则与光栅跟踪法一致
(1) 邻域:选取适当的、能进行全向跟踪的邻域,例如八邻域等
(2) 跟踪准则:选择一个适当的跟踪准则,如灰度阈值、对比度和空间距离等

3.2. Hough变换

在找出边界点集之后,需要连接形成完整有意义的边界图像描述。在预先知道区域形状的条件下,利用Hough变换不仅可以方便地得到边界曲线将不连续的像素点连接起来,而且可以用数学公式来表达该直线,性能优异。

3.2.1. 基本思想

对于边界上 n n n个点的点集,找出其满足形状的点集和曲线方程

这里介绍一下利用Hough变换检测直线边界的例子:
已知任意两点的直线方程 y = a x + b y=ax+b y=ax+b有一个未知数平面 x y xy xy和一个参数平面 a b ab ab,且在未知数平面上任一条直线 y = a x + b y=ax+b y=ax+b都在参数平面上对应着一个点。

那么可得,过未知数平面一个点 ( x , y ) (x,y) (x,y)的所有直线,构成参数平面上的一条直线 b = − a x + y b=-ax+y b=ax+y显然这是一条参数平面上的直线方程

若有两点 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2)且这两点在未知数平面上共线,那么这两点在参数平面上的直线将会交于 ( a , b ) (a,b) (a,b) { y 1 = a x 1 + b y 2 = a x 2 + b → { b = − a x 1 + y 1 b = − a x 2 + y 2 \begin{cases} y_1=ax_1+b \\ y_2=ax_2+b \\ \end{cases} \to\begin{cases} b=-ax_1+y_1 \\ b=-ax_2+y_2 \\ \end{cases} { y1=ax1+by2=ax2+b{ b=ax1+y1b=ax2+y2据此可以推断,在未知数平面上共线的点最终都会交于参数平面上的 ( a , b ) (a,b) (a,b)点,因此若在参数平面上有多条直线相交于某一个点,则该点的坐标 ( a , b ) (a,b) (a,b)可以作为未知数平面上直线方程的参数,这样就检测出了这条直线边界。

3.2.2. Hough变换检测直线算法
  1. 在算法的实际使用过程中,为了避免出现无穷大,常用极坐标形式代替直角坐标形式。此时,参数平面就为 ρ θ 平 面 \rho\theta平面 ρθ,而不是直角坐标下的 a b ab ab平面:
    x cos ⁡ θ + y sin ⁡ θ = ρ x\cos\theta+y\sin\theta=\rho xcosθ+ysinθ=ρ

图像分割—基于边界的图像分割_第5张图片

  1. 创建交点累加器或交点统计直方图,找出相交线最多的参数空间的点
  2. 找出该点对应的未知数平面的直线线段,即检测完成

实例:
图像分割—基于边界的图像分割_第6张图片

3.2.3. Hough变换的扩展
  1. 检测圆
    将Hough变换应用到对圆的检测上时,其参数方程变换为 ( x − c 1 ) 2 + ( y − c 2 ) 2 = c 3 2 (x-c_1)^2+(y-c_2)^2=c_3^2 (xc1)2+(yc2)2=c32此时需要三个参数的参数空间
  2. 检测椭圆
    参数方程设为 ( x − x 0 ) 2 a 2 + ( y − y 0 ) 2 b 2 = 1 \frac{(x-x_0)^2}{a^2}+\frac{(y-y_0)^2}{b^2}=1 a2(xx0)2+b2(yy0)2=1微分后有 x − x 0 a 2 + y − y 0 b 2 ⋅ d y d x = 0 \frac{x-x_0}{a^2}+\frac{y-y_0}{b^2}·\frac{\text{d}y}{\text{d}x}=0 a2xx0+b2yy0dxdy=0微分后的方程只有三个独立参数,只需从 ( a , b , x 0 , y 0 ) (a,b,x_0,y_0) (a,b,x0,y0)中选择三个参数进行检测即可

你可能感兴趣的:(数字图像处理,数字图像处理,图像分割,边界分割,霍夫变换,光栅)