《机器视觉》笔记—视觉图像特征信息提取

3.1 图像边缘与图像平滑

3.1.1 图像边缘

  1. 阶跃边缘
    阶跃边缘表现为图像亮度在不连续处的两边的像素灰度值有明显差异,在实际图像中,阶跃边缘变成斜坡形边缘。如图(a)中的第三幅图,阶跃边缘图像亮度的一阶导数的幅度在阶跃边缘上非常大,而在非边缘上为零。而二阶导数值为零,但其左右分别有一正一负两个峰值。
    在这里插入图片描述
  2. 线条边缘
    线条边缘边线为图像亮度从一个灰度变化到另一个灰度,之后又很快返回原来的灰度。现实中,线条边缘呈屋顶形,其图像亮度一阶导数为零,二阶导数的幅度最大。

3.1.2 图像平滑滤波

  • 图像滤波是通过对原始图像 f ( x , y ) f(x,y) f(x,y)与脉冲响应 h ( x , y ) h(x,y) h(x,y)的卷积来实现的,卷积是对像素点的加权计算。
    在这里插入图片描述
    在这里插入图片描述
    常用的图像平滑滤波模板有均值滤波、中值滤波和高斯滤波。二维零均值高斯卷积模板为:
    在这里插入图片描述
    σ \sigma σ是高斯函数的均方差,控制着平滑的效果,值越大,平滑效果越好,但图像特征会过分模糊。当 σ = 1 \sigma=1 σ=1时,卷积模板宽度为 5 ∗ 5 5*5 55
    在这里插入图片描述
    为了方便计算,通常去模板的最小权值(模板角点处),选择c使得该最小权值为1,然后用c值乘以模板的所有权值,得到整数值模板
    在这里插入图片描述在这里插入图片描述
    在进行图像平滑时,像素点的输出值需进行归一化处理:
    在这里插入图片描述在这里插入图片描述

3.2 一阶微分边缘检测算子

3.2.1 梯度

  • 二维图像的局部显著变化可以用梯度来度量,梯度是一矢量,梯度给出方向导数最大的方向.梯度的指向给出了边缘的方向,梯度的模给出了边缘强度。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    对于图像,导数可以用差分来近似,近似表达为以下,这里的i,j表示列坐标和行坐标,应用时可以用卷积模板来计算。
    在这里插入图片描述

在这里插入图片描述

  • 然而,用以上卷积模板计算梯度近似值并不属于图像同一位置。实际上 f x f_x fx是内插点 [ i + 1 / 2 , j ] [i+1/2,j] [i+1/2,j]处的梯度近似值, f y f_y fy是内插点 [ i , j + 1 / 2 ] [i,j+1/2] [i,j+1/2]处的梯度近似值。因此,人们常用以下差分模板来近似偏导数,此时x和y方向的梯度的图像位置都是位于 [ i + 1 / 2 , j + 1 / 2 ] [i+1/2,j+1/2] [i+1/2,j+1/2]
    在这里插入图片描述

3.2.2 边缘算子

  1. Roberts边缘算子
    边缘算子通过计算梯度幅值来寻找边缘,Roberts边缘算子利用局部差分算子来近似计算,根据卷积模板,计算的是 [ i + 1 / 2 , j + 1 / 2 ] [i+1/2,j+1/2] [i+1/2,j+1/2]连续梯度的近似值,而非预期点 [ i , j ] [i,j] [i,j]处的近似值。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. Sobel边缘算子
    该算子是在 3 × 3 3\times3 3×3邻域内计算梯度值,避免在像素内插点上计算梯度值。用卷积模板计算, G x G_x Gx对垂直边缘响应最大, G y G_y Gy对水平边缘的响应最大,这一算子把重点放在接近于模板中心的像素点。
    在这里插入图片描述
  3. Prewitt边缘算子
    与Sobel一样,图像中的每个点都用这两个模板进行卷积
    在这里插入图片描述
  4. Kirsch边缘算子
    由8个卷积核组成算子,图像中的每个点都用8个模板进行卷积,每个模板都对某个特定边缘方向做出最大响应,所有8个方向中的最大值作为边缘幅度图像的输出。
  5. Canny边缘算子
    实际在检测时,由于存在噪声,会导致检测出来的是噪声引起的假边缘点。解决的办法是先对原图像 f ( x , y ) f(x,y) f(x,y),运用平滑滤波 h ( x , y ) h(x,y) h(x,y),再计算图像梯度:
    在这里插入图片描述
    在这里插入图片描述
    由于卷积特性,图像的梯度也可以直接采用原始图像与平滑滤波的一阶微分的卷积来计算,常用的平滑滤波器为高斯函数,可以用高斯函数的一阶导数作为算子。
    在这里插入图片描述
    在这里插入图片描述
    图像经过平滑后的边缘变得模糊,由计算梯度得到的边缘就具有一定的宽度,具有这种宽边缘变细的方法,叫做非极大值抑制。在垂直于边缘的方向(梯度方向)上互相比较相邻像素的梯度幅值,并去除比领域处小的梯度幅值,这样就留下极大幅值。
    另外,为去除由噪声和纹理引起的假边缘,可以采用双阈值算法去除。对非极大值抑制图像作用双阈值 T 1 T_1 T1 T 2 T_2 T2,得到两个双阈值边缘图像 G 1 [ x , y ] G_1[x,y] G1[x,y] G 2 [ x , y ] G_2[x,y] G2[x,y],由于 G 2 [ x , y ] G_2[x,y] G2[x,y]是用高阈值得到的,含有较少的假边缘,但边缘可能有间断。因此,要将 G 2 [ x , y ] G_2[x,y] G2[x,y]中的边缘连接成轮廓,当到达轮廓端点时,就在 G 1 [ x , y ] G_1[x,y] G1[x,y]的8邻域中寻找可以连接轮廓的边缘,这样算法将不断在 G 1 [ x , y ] G_1[x,y] G1[x,y]收集边缘,直到将 G 2 [ x , y ] G_2[x,y] G2[x,y]中所有间隙连接起来。

3.3 二阶微分边缘检测算子

对于计算一阶导数的边缘检测,如果当所求的一阶导数高于某一阈值,就确定该点为边缘点,这样有时会导致检测的边缘点不唯一。对于阶跃边缘,其二阶导数在边缘点出现零交叉,即在边缘点两边的二阶导数取异号。这样,通过寻找二阶导数的零点就可以精确找到边缘点。

3.3.1 拉普拉斯算子

  • 对于每个像素点,计算二阶偏导数之和,使用差分方程表示如下。拉普拉斯算子常用的模板有两个,基本要求是它们的中心像素的系数是负的,邻近像素的系数是正的,并且它们的和为零。
    在这里插入图片描述
    在这里插入图片描述
    当拉普拉斯算子出现过零点时就表明有边缘信息存在。如下图所示,对于阶跃边缘,边缘的零交叉点位于两个像素之间,可以使用左边或右边的像素来标记,但整张图像的标记必须一致;对于斜坡边缘,零交叉点对应着图像中的一个像素。
    在这里插入图片描述在这里插入图片描述

3.3.2 LoG算子

  • LoG算子又称马尔算子,是先对图像进行平滑处理,再用拉普拉斯算子进行边缘检测。LoG算子中采用高斯函数,由于卷积的性质,可直接使用高斯函数的二阶导数作为算子,因此也称为拉斯高斯算子。
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 由于LoG算子相当光滑,在与图像卷积时会模糊图像,模糊程度与 σ \sigma σ成正比。所以当图像边缘模糊或噪声较大时,可以提供比较可靠的边缘位置。LoG是按零交叉检测阶跃边缘的最佳算子,其判定边缘内点的依据是,二阶导数零交叉点且对应的一阶导数的较大的峰值,
    在这里插入图片描述

3.4 子像素级边缘检测

  • 第一种子像素级边缘检测的算法:在像素级边缘的一定区域进行内插,如曲线拟合或曲面拟合。对于阶跃边缘,以曲线或曲面一阶导的极值位置作为边缘。对于线条边缘,以曲线或曲面二阶导的极值位置作为边缘。
  • 第二种子像素级边缘检测的算法:通过计算像素级边缘区域的一阶矩(或称为重心)。对于线条边缘,可直接计算区域的一阶矩。对于阶跃边缘,先对图像进行一阶求导,使其变成线条边缘,再计算边缘区域的一阶矩。

3.4.1 Hessian 矩阵法

  1. 一维边缘检测
    对于一幅离散的一维图像,任意像素 x 0 x_0 x0的相邻像素的灰度值可以表示为二次泰勒展开。其中,图像与高斯核 h ( x ) , h ′ ( x ) , h ′ ′ ( x ) h(x),h'(x),h''(x) h(x),h(x),h(x)卷积得到 g ( x ) , g ′ ( x ) , g ′ ′ ( x ) g(x),g'(x),g''(x) g(x),g(x),g(x)。线条边缘的一阶导数为0,故边缘中心点x的导数 f ′ ( x ) = 0 f'(x)=0 f(x)=0
    在这里插入图片描述
    在这里插入图片描述
    通过上式求出 x x x后,如果 ( x − x 0 ) (x-x_0) (xx0)在区间 [ − 1 / 2 , 1 / 2 ] [-1/2,1/2] [1/2,1/2],说明找到了亚像素的边缘中心。否则,以 ( x 0 + 1 ) (x_0+1) (x0+1)为新展开点,继续上述过程。
  2. 二维边缘检测
    二维情况下,图像的二次泰勒展开为
    在这里插入图片描述
    其中,用以下高斯卷积核分别计算偏导数:
    在这里插入图片描述
    线条边缘中出的一阶导数为0,即边缘方向 n ( x , y ) n(x,y) n(x,y)上的一阶方向导数为0,二阶方向导数取得极大值。设边缘法线方向 n ( x , y ) n(x,y) n(x,y) ( n x , n y ) (n_x,n_y) (nx,ny)表示,若已知法线方向,则泰勒展开可以表示为:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    求得的边缘中心点为,同样,该点必须位于当前像素内;
    在这里插入图片描述
    为了求法线方向 ( n x , n y ) (n_x,n_y) (nx,ny)和在该方向的二阶导数,引入海森矩阵。海森矩阵的最大绝对特征值的特征向量对应法线方向 ( n x , n y ) (n_x,n_y) (nx,ny),海森矩阵的最大绝对特征值对应在该方向的二阶导数。
    在这里插入图片描述
  3. 边缘连接
    当边缘出现间隙时,可以通过搜索一个以某端点为中心的邻域,找出其他端点并填充必要的边界像素。且需要规定,两个端点只有在边缘强度和走向相近的情况下才能连接。
    流程为:由具有最大二阶导数的像素开始,沿垂直于方向的两个方向进行搜索。只有与法线方向相同的三个邻域像素才会被考虑。

3.4.2 曲面拟合法

  • f ( x , y ) f(x,y) f(x,y)在点 ( x , y ) (x,y) (x,y)出的梯度方向、梯度方向上的一阶导数和二阶导数分别为:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    设在点 ( x , y ) (x,y) (x,y)处的灰度值可以用三次多项式曲面拟合,表达为:
    在这里插入图片描述
    在这里插入图片描述
    因此,图像在梯度方向上的导数可以也可以表达为:
    在这里插入图片描述
    对于边缘中心 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)处有:
    在这里插入图片描述

3.5 角点探测器

角点是指图像中具有高曲率的点,通常是由边缘曲率较大的地方或边缘的交点组成。

3.5.1 K-R 法

  • 梯度,梯度方向角,梯度方向角的变化率分别表示为:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 由于梯度矢量 G ( x , y ) = ( f x ′ , f y ′ ) G(x,y)=(f'_x,f'_y) G(x,y)=(fx,fy)指向该点灰度变化最大的方向,而 t ( − f y ′ , f x ′ ) t(-f'_y,f'_x) t(fy,fx)是与G垂直的,其反应的是边缘的局部走向。梯度方向变化率在边缘走向上的投影反映了边缘转弯的尖锐程度。 θ ′ = ( θ x ′ , θ y ′ ) \theta'=(\theta'_x,\theta'_y) θ=(θx,θy)在边缘上的投影 θ ∗ ( t / ∣ t ∣ ) \theta*(t/|t|) θ(t/t),乘以梯度的幅值,作为角点存在可能性的测度,k的绝对值越大, 角点存在的可能性越大。
    在这里插入图片描述

3.5.2 图像灰度法

  1. Harris角点检测
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值