论文:《 Subpixel edge detection based on edge gradient directional interpolation and Zernike moment》
 地址: http://www.dpi-proceedings.com/index.php/dtcse/article/view/24488
摘要
在本文中,我们提出了一种基于边缘梯度方向插值和 Zernike 正交矩的新型亚像素边缘检测方法。由于对边缘邻域进行插值,所提出的方法能够丰富边缘信息,并确保矩模板内只有一个边缘。边缘信息的丰富不仅增加了基于矩的方法的检测精度,还增加了检测到的亚像素边缘点的数量。实验结果表明,该方法可以极大地提高边缘检测的准确性,并且在图像中存在复杂边缘时能够避免边缘干扰的问题。
一、引言
边缘检测是图像处理中的基本任务。传统基于梯度的边缘检测方法只能定位到像素级别的边缘。一般来说,通过增加采样频率可以提高边缘检测的准确性。然而,最大采样率受到物理设备条件的限制,无法无限增加。此外,在实际的工业应用中,成本也是一个重要的不可避免的考虑因素。这一问题导致了亚像素边缘检测算法的诞生。亚像素边缘检测可以理解为一种通过图像处理算法,在不改变摄像机系统硬件条件的情况下使边缘精度小于一个像素的方法。
 早期的边缘检测算法是基于梯度的,通过计算局部梯度或导数的最大值来定位边缘点。其中最典型的算子包括 Sobel、Prewitt 和 Robert 算子。后来,Canny 综合了以前的工作,提出了一种基于非极大值抑制和形态连通操作的方法来寻找最优边缘。这种方法取得了良好的结果,并且在今天被广泛使用。其他的边缘检测算法包括 Malik 的边缘检测方法,这种方法很出色,但也比较复杂。其他像素级边缘检测算法可以在文献[6-8]中找到。对于亚像素边缘检测,目前流行的方法包括基于拟合的方法、基于矩的方法和基于插值的方法。拟合方法是通过拟合假设边缘模型的灰度值来解决亚像素边缘位置的方法,通常是基于高斯函数的边缘模型。插值方法的核心思想是通过插值像素的灰度值或灰度值的导数来增加边缘信息。二次插值算法简单且易于实现。特别是当光学系统的扩散函数是对称的时,插值边缘的检测精度很高。然而,其缺点是容易受到噪声的干扰。基于矩的方法的核心思想是利用图像的矩信息来解决边缘参数。矩有很多种,例如空间矩、Zernike 矩等。Ghosal 首先使用的 Zernike 矩方法只需要计算3个模板。计算量比空间矩小,精度也高。后来,Qu 提出了一个改进算法,通过增加 Zernike 矩的阶数或增加模板的大小来提高亚像素定位的准确性。
 目前,通过矩方法检测亚像素已被证明是一种简单而准确的方法。即便如此,在实际应用中,并没有一种普遍适用的方法,精度仍有很大提升空间。基于矩的建模是基于图像边缘是理想的阶跃边缘的假设。为了提高检测精度,一个有效且简单的方法是增加矩的模板大小。然而,当模板内部存在复杂的边缘时,这些边缘可能会相互干扰,导致边缘定位错误。由于很难确保模板内只有一个边缘,如果模板内存在多个边缘,那么就需要重新对边缘进行建模。然而,经过分析,普遍重新对边缘进行建模不仅困难,而且很难获得准确的分析解决方案。通过严格的边缘参数重新建模图像边缘也很难找到尽可能多的亚像素边缘点。此外,基于严格的边缘参数重新建模后的阈值进行后续边缘过滤也非常复杂。随着硬件计算的快速加速,更精确的方法也随之而来。
 通过总结亚像素边缘检测算法的优缺点,本文提出了一种改进方法。首先,基于像素级别获得边缘的粗略位置,并追踪边缘点的邻域。为了提高边缘的准确性,同时避免上述问题,本文提出通过在边缘邻域进行梯度方向的插值来丰富边缘信息。由于对边缘邻域进行了插值,扩大了矩模板进行卷积的区域。因此,能够确保模板内只有一个边缘,从而有效地避免了边缘之间的干扰。同时,丰富的边缘信息不仅增加了基于矩方法的检测准确性,还增加了检测到的亚像素边缘点的数量。此外,如果在插值后对邻域进行Canny像素级边缘定位操作,则可以检测到双边缘,这意味着可以获得具有厚度特性的亚像素边缘。最后,采用大规模掩模Zernike矩方法来检测邻域边缘并推导出亚像素级别的边缘参数。
 本文的结构如下所述。第3节简要介绍了Zernike矩的原理。在第4节中,讨论了基于7*7掩模的Zernike矩的亚像素边缘检测,并给出了理论推导。第5节讨论了在边缘点邻域内的梯度插值方法。在第6节中,设计了两个实验来验证边缘亚像素定位的准确性以及复杂边缘定位的能力。最后,在第7节中给出了一些结论。
二、Zernike图像矩
在连续域中,可以证明一个函数可以用单位圆内的多项式的组合来描述,即 
     
      
       
        
        
          x 
         
        
          2 
         
        
       
         + 
        
        
        
          y 
         
        
          2 
         
        
       
         ≤ 
        
       
         1 
        
       
      
        x^2 + y^2\le1 
       
      
    x2+y2≤1。Zernike 多项式是一种正交完备的多项式,因此函数可以无冗余地描述。对于一幅图像 
     
      
       
       
         f 
        
       
         ( 
        
       
         x 
        
       
         , 
        
       
         y 
        
       
         ) 
        
       
      
        f(x,y) 
       
      
    f(x,y) 的阶数为  
     
      
       
       
         n 
        
       
      
        n 
       
      
    n 且重复次数为 
     
      
       
       
         m 
        
       
      
        m 
       
      
    m的 Zernike 矩被定义为 [17]:
  
      
       
        
         
         
           Z 
          
          
          
            n 
           
          
            m 
           
          
         
        
          = 
         
         
          
          
            n 
            
          
            + 
            
          
            1 
           
          
         
           π 
          
         
         
         
           ∬ 
          
          
           
           
             x 
            
           
             2 
            
           
          
            + 
           
           
           
             y 
            
           
             2 
            
           
          
            ≤ 
           
          
            1 
           
          
         
        
          f 
         
        
          ( 
         
        
          x 
         
        
          , 
         
        
          y 
         
        
          ) 
         
         
         
           V 
          
          
          
            n 
           
          
            m 
           
          
         
           ∗ 
          
         
        
          ( 
         
        
          ρ 
         
        
          , 
         
        
          θ 
         
        
          ) 
         
        
          d 
         
        
          x 
         
        
          d 
         
        
          y 
         
         
        
          ( 
         
        
          1 
         
        
          ) 
         
        
       
         Z_{n m}=\frac{n\!+\!1}{\pi}\iint_{x^{2}+y^{2}\le1}f(x,y)V_{n m}^{\ast}(\rho,\theta)d x d y \qquad(1) 
        
       
     Znm=πn+1∬x2+y2≤1f(x,y)Vnm∗(ρ,θ)dxdy(1)
 在离散图像中,当 
     
      
       
        
        
          x 
         
        
          2 
         
        
       
         + 
        
        
        
          y 
         
        
          2 
         
        
       
         ≤ 
        
       
         1 
        
       
      
        x^2 + y^2 \le 1 
       
      
    x2+y2≤1 时, 
     
      
       
        
        
          Z 
         
        
          ( 
         
        
       
         n 
        
       
         m 
        
       
         ) 
        
       
      
        Z_(nm) 
       
      
    Z(nm)可以如下表示,其中  
     
      
       
       
         n 
        
       
      
        n 
       
      
    n 和 
     
      
       
       
         m 
        
       
      
        m 
       
      
    m 是非负整数。
  
      
       
        
         
         
           Z 
          
          
          
            n 
           
          
            m 
           
          
         
        
          = 
         
         
         
           Σ 
          
         
           x 
          
         
         
         
           Σ 
          
         
           y 
          
         
        
          f 
         
        
          ( 
         
        
          x 
         
        
          , 
         
        
          y 
         
        
          ) 
         
        
          , 
         
         
         
           V 
          
          
          
            n 
           
          
            m 
           
          
         
           ∗ 
          
         
        
          ( 
         
        
          ρ 
         
        
          , 
         
        
          θ 
         
        
          ) 
         
         
        
          ( 
         
        
          2 
         
        
          ) 
         
        
       
         Z_{n m}=\Sigma_x \Sigma_y f(x,y),V_{n m}^{\ast}(\rho,\theta) \qquad(2) 
        
       
     Znm=ΣxΣyf(x,y),Vnm∗(ρ,θ)(2)
 Zernike多项式 
     
      
       
        
        
          V 
         
         
         
           n 
          
         
           m 
          
         
        
       
      
        V_{nm} 
       
      
    Vnm可以表示为:
  
      
       
        
         
         
           V 
          
          
          
            n 
           
          
            m 
           
          
         
        
          = 
         
         
         
           R 
          
          
          
            n 
           
          
            m 
           
          
         
        
          ( 
         
        
          ρ 
         
        
          ) 
         
         
         
           e 
          
          
          
            i 
           
          
            m 
           
          
            θ 
           
          
         
        
          , 
         
        
          ∣ 
         
        
          ρ 
         
        
          ∣ 
         
        
          ≤ 
         
        
          1 
         
         
        
          ( 
         
        
          3 
         
        
          ) 
         
        
       
         V_{nm}=R_{nm}(\rho)e^{i m\theta},|\rho|\leq1 \qquad(3) 
        
       
     Vnm=Rnm(ρ)eimθ,∣ρ∣≤1(3)
其中 
     
      
       
        
        
          R 
         
         
         
           n 
          
         
           m 
          
         
        
       
         ( 
        
       
         ρ 
        
       
         ) 
        
       
      
        R_{nm}(\rho) 
       
      
    Rnm(ρ)是径向函数,当 
     
      
       
       
         n 
        
       
         − 
        
       
         m 
        
       
      
        n-m 
       
      
    n−m是奇数时, 
     
      
       
        
        
          R 
         
         
         
           n 
          
         
           m 
          
         
        
       
         ( 
        
       
         ρ 
        
       
         ) 
        
       
         = 
        
       
         0 
        
       
      
        R_{nm}(\rho)=0 
       
      
    Rnm(ρ)=0。当 
     
      
       
       
         n 
        
       
         − 
        
       
         m 
        
       
      
        n-m 
       
      
    n−m是偶数时, 
     
      
       
        
        
          R 
         
         
         
           n 
          
         
           m 
          
         
        
       
         ( 
        
       
         ρ 
        
       
         ) 
        
       
      
        R_{nm}(\rho) 
       
      
    Rnm(ρ)可以表示为:
  
      
       
        
         
         
           R 
          
          
          
            n 
           
          
            m 
           
          
         
        
          ( 
         
        
          ρ 
         
        
          ) 
         
        
          = 
         
         
         
           Σ 
          
          
          
            k 
           
          
            = 
           
          
            0 
           
          
          
          
            ( 
           
          
            n 
           
          
            − 
           
          
            ∣ 
           
          
            m 
           
          
            ∣ 
           
          
            ) 
           
          
            / 
           
          
            2 
           
          
         
         
          
          
            ( 
           
          
            − 
           
          
            1 
           
           
           
             ) 
            
           
             k 
            
           
          
            ( 
           
          
            n 
           
          
            − 
           
          
            k 
           
          
            ) 
           
          
            ! 
           
          
          
          
            k 
           
          
            ! 
           
          
            ( 
           
           
            
            
              n 
             
            
              + 
             
            
              ∣ 
             
            
              m 
             
            
              ∣ 
             
            
           
             2 
            
           
          
            − 
           
          
            k 
           
          
            ) 
           
          
            ! 
           
          
            ( 
           
           
            
            
              n 
             
            
              − 
             
            
              ∣ 
             
            
              m 
             
            
              ∣ 
             
            
           
             2 
            
           
          
            − 
           
          
            k 
           
          
            ) 
           
          
            ! 
           
          
         
         
         
           ρ 
          
          
          
            n 
           
          
            − 
           
          
            2 
           
          
            k 
           
          
         
         
        
          ( 
         
        
          4 
         
        
          ) 
         
        
       
         R_{n m}(\rho)=\Sigma_{k=0}^{(n-|{\bf m}|)/2}\frac{(-1)^{k}(n-k)!}{k!(\frac{n+|{\bf m}|}{2}-k)!(\frac{n-|{\bf m}|}{2}-k)!}\rho^{n-2k} \qquad(4) 
        
       
     Rnm(ρ)=Σk=0(n−∣m∣)/2k!(2n+∣m∣−k)!(2n−∣m∣−k)!(−1)k(n−k)!ρn−2k(4)
结合方程 (2) 和 (3) 计算 Zernike 多项式。因此,我们可以通过查表来找到 Zernike 多项式 V n m V_{nm} Vnm。根据方程 (2),我们可以轻松地计算图像 f ( x , y ) f(x,y) f(x,y)的 Zernike 矩。此外,Zernike 矩具有一个重要的特性,即旋转不变性,即:
Z n m ′ = Z n m e − i m ϕ ( 5 ) Z_{n m}^{\prime}=Z_{n m e}^{}-i m\phi \qquad(5) Znm′=Znme−imϕ(5)
其中 Z n m ′ Z_{nm}^{\prime} Znm′ 是旋转后图像的 Zernike 矩, Z n m Z_{nm} Znm是原始图像的 Zernike 矩。方程 (5) 显示了图像旋转后 Zernike 矩的变化,即旋转后图像的 Zernike 矩的大小,而原始图像的 Zernike 矩不会改变。
基于Zernike Moment的边缘检测
为了定位亚像素边缘位置,建立一个2-D单位圆模型,其中有一个理想的阶跃边缘。正如图1所示, k k k是阶跃的高度, h ℎ h是背景的高度, l l l是边缘与单位圆中心之间的距离。当理想的边缘线旋转时,它将垂直于 x x x轴。接下来,我们将使用Zernike矩来计算这组边缘位置参数,即 h 、 k 、 l ℎ、k、l h、k、l。

图1. 亚像素边缘检测的理想模型。

 图2. Zernike 7*7掩码模型。
现在假设这个模型是 
     
      
       
       
         f 
        
       
         ( 
        
       
         x 
        
       
         , 
        
       
         y 
        
       
         ) 
        
       
      
        f(x,y) 
       
      
    f(x,y),根据方程(2)和方程(5)计算其旋转的 Zernike 矩 7。解方程得到$ ℎ,k,l$ 的值
  
      
       
        
        
          k 
         
        
          = 
         
         
          
          
            3 
           
           
           
             Z 
            
           
             ′ 
            
           
          
          
          
            2 
           
          
            ( 
           
          
            1 
           
          
            − 
           
           
           
             l 
            
           
             2 
            
           
             2 
            
           
           
           
             ) 
            
            
            
              3 
             
            
              / 
             
            
              2 
             
            
           
          
         
         
        
          ( 
         
        
          6 
         
        
          ) 
         
        
       
         k={\frac{3Z^{\prime}}{2(1-l_{2}^{2})^{3/2}}} \qquad(6) 
        
       
     k=2(1−l22)3/23Z′(6)
  
      
       
        
        
          h 
         
        
          = 
         
         
         
           1 
          
         
           π 
          
         
        
          [ 
         
         
         
           Z 
          
         
           00 
          
         
        
          − 
         
         
          
          
            k 
           
          
            π 
           
          
         
           2 
          
         
        
          + 
         
        
          k 
         
        
          a 
         
        
          r 
         
        
          c 
         
        
          s 
         
        
          i 
         
        
          n 
         
        
          ( 
         
         
         
           l 
          
         
           2 
          
         
        
          ) 
         
        
          + 
         
        
          k 
         
         
         
           l 
          
         
           2 
          
         
         
          
          
            1 
           
          
            − 
           
           
           
             l 
            
           
             2 
            
           
             2 
            
           
          
         
        
          ] 
         
         
        
          ( 
         
        
          7 
         
        
          ) 
         
        
       
         h=\frac{1}{\pi}\Big[Z_{00}-\frac{k\pi}{2}+k a r c s i n(l_{2})+k l_{2}\sqrt{1-l_{2}^{2}}\Big]\qquad(7) 
        
       
     h=π1[Z00−2kπ+karcsin(l2)+kl21−l22](7)
  
      
       
        
        
          l 
         
        
          = 
         
         
          
           
           
             l 
            
           
             1 
            
           
          
            + 
           
           
           
             l 
            
           
             2 
            
           
          
         
           2 
          
         
        
          = 
         
         
         
           1 
          
         
           2 
          
         
        
          [ 
         
         
          
           
           
             5 
            
            
            
              Z 
             
            
              40 
             
            
              ′ 
             
            
           
             + 
            
           
             3 
            
            
            
              Z 
             
            
              20 
             
            
              ′ 
             
            
           
           
           
             8 
            
            
            
              Z 
             
            
              20 
             
            
              ′ 
             
            
           
          
         
        
          + 
         
         
          
           
           
             5 
            
            
            
              Z 
             
            
              11 
             
            
              ′ 
             
            
           
             + 
            
            
            
              Z 
             
            
              11 
             
            
              ′ 
             
            
           
           
           
             6 
            
            
            
              Z 
             
            
              11 
             
            
              ′ 
             
            
           
          
         
        
          ] 
         
         
        
          ( 
         
        
          8 
         
        
          ) 
         
        
       
         l=\frac{l_{1}+l_{2}}{2}=\frac{1}{2}\Biggl[\sqrt{\frac{5Z_{40}^{\prime}+3Z_{20}^{\prime}}{8Z_{20}^{\prime}}}+\sqrt{\frac{5Z_{11}^{\prime}+Z_{11}^{\prime}}{6Z_{11}^{\prime}}}\Biggr]\qquad(8) 
        
       
     l=2l1+l2=21[8Z20′5Z40′+3Z20′+6Z11′5Z11′+Z11′](8)
  
      
       
        
        
          ϕ 
         
        
          = 
         
        
          arctan 
         
        
           
         
         
         
           [ 
          
          
           
           
             I 
            
           
             m 
            
           
             [ 
            
            
            
              Z 
             
             
             
               n 
              
             
               1 
              
             
            
           
             ] 
            
           
           
           
             R 
            
           
             e 
            
           
             [ 
            
            
            
              Z 
             
             
             
               n 
              
             
               1 
              
             
            
           
             ] 
            
           
          
         
           ] 
          
         
         
        
          ( 
         
        
          9 
         
        
          ) 
         
        
       
         \phi=\arctan\left[\frac{I m[Z_{n1}]}{R e[Z_{n1}]}\right]\qquad(9) 
        
       
     ϕ=arctan[Re[Zn1]Im[Zn1]](9)
如上所述,我们推导出边缘参数  
     
      
       
       
         h 
        
       
         , 
        
       
         k 
        
       
         , 
        
       
         l 
        
       
      
        h,k,l 
       
      
    h,k,l和 
     
      
       
       
         ϕ 
        
       
      
        \phi 
       
      
    ϕ。因此,边缘在单位圆内的亚像素位置可以标记为
  
      
       
        
         
         
           [ 
          
          
           
            
             
              
              
                x 
               
              
                s 
               
              
             
            
           
           
            
             
              
              
                y 
               
              
                s 
               
              
             
            
           
          
         
           ] 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                x 
               
              
                + 
               
              
                l 
               
              
                cos 
               
              
                 
               
              
                ( 
               
              
                ϕ 
               
              
                ) 
               
              
             
            
           
           
            
             
              
              
                y 
               
              
                + 
               
              
                l 
               
              
                sin 
               
              
                 
               
              
                ( 
               
              
                ϕ 
               
              
                ) 
               
              
             
            
           
          
         
           ] 
          
         
         
        
          ( 
         
        
          10 
         
        
          ) 
         
        
       
         \left[{\begin{array}{c}{x_{s}}\\ {y_{s}}\end{array}}\right]={\left[\begin{array}{c}{x+l\cos(\phi)}\\ {y+l\sin(\phi)}\end{array}\right]}\qquad(10) 
        
       
     [xsys]=[x+lcos(ϕ)y+lsin(ϕ)](10)
然而, 
     
      
       
       
         ( 
        
       
         x 
        
       
         , 
        
       
         y 
        
       
         ) 
        
       
      
        (x,y) 
       
      
    (x,y)在实际的离散图像中,我们使用 
     
      
       
       
         N 
        
       
         ∗ 
        
       
         N 
        
       
      
        N*N 
       
      
    N∗N像素范围来近似单位圆,如图2所示。单位圆被划分为 
     
      
       
       
         7 
        
       
         ∗ 
        
       
         7 
        
       
      
        7*7 
       
      
    7∗7个区域。上述计算结果基于单位圆内的 
     
      
       
       
         7 
        
       
         ∗ 
        
       
         7 
        
       
      
        7*7 
       
      
    7∗7区域。我们将实际图像上每个点的像素值放入单位圆的 
     
      
       
       
         7 
        
       
         ∗ 
        
       
         7 
        
       
      
        7*7 
       
      
    7∗7区域中,以计算亚像素边缘参数。但实际上,将一个像素划分为 
     
      
       
       
         7 
        
       
         ∗ 
        
       
         7 
        
       
      
        7*7 
       
      
    7∗7个邻域是不可能的。因此,从单位圆导出的边缘位置参数 
     
      
       
       
         l 
        
       
      
        l 
       
      
    l最终要乘以缩放因子 
     
      
       
       
         N 
        
       
         / 
        
       
         2 
        
       
      
        N/2 
       
      
    N/2。只有这样,才能检测到图像边缘的亚像素位置。
  
      
       
        
        
          S 
         
        
          u 
         
        
          b 
         
        
          p 
         
        
          i 
         
        
          x 
         
        
          e 
         
        
          l 
         
        
          = 
         
         
         
           [ 
          
          
           
           
           
             y 
            
           
             s 
            
           
           
           
             X 
            
           
             s 
            
           
          
         
           ] 
          
         
        
          = 
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                x 
               
              
                + 
               
               
                
                
                  l 
                 
                
                  N 
                 
                
               
                 2 
                
               
              
                cos 
               
              
                 
               
              
                ( 
               
              
                ϕ 
               
              
                ) 
               
              
             
            
           
           
            
             
              
              
                y 
               
              
                + 
               
               
                
                
                  l 
                 
                
                  N 
                 
                
               
                 2 
                
               
              
                sin 
               
              
                 
               
              
                ( 
               
              
                ϕ 
               
              
                ) 
               
              
             
            
           
          
         
           ] 
          
         
         
        
          ( 
         
        
          11 
         
        
          ) 
         
        
       
         Subpixel=\left[_{y_{s}}^{X_{s}}\right]=={\left[\begin{array}{l}{x+{\frac{l N}{2}}\cos(\phi)}\\ {y+{\frac{l N}{2}}\sin(\phi)}\end{array}\right]}\qquad(11) 
        
       
     Subpixel=[ysXs]==[x+2lNcos(ϕ)y+2lNsin(ϕ)](11)
从以上讨论可以得知,通过推导图像的 
     
      
       
        
        
          M 
         
         
         
           n 
          
         
           1 
          
         
        
       
      
        M_{n1} 
       
      
    Mn1阶矩,可以使用方程(9)计算;然后,我们推导出图像的其他Zernike矩,并得到旋转后的图像Zernike矩。最后,我们通过方程(7)、(6)、(8)获得边缘参数  
     
      
       
       
         h 
        
       
         , 
        
       
         k 
        
       
         , 
        
       
         l 
        
       
      
        h,k,l 
       
      
    h,k,l。因此,在图像的 
     
      
       
       
         N 
        
       
         ∗ 
        
       
         N 
        
       
      
        N*N 
       
      
    N∗N区域内计算Zernike矩非常重要,这将决定整个检测的准确性。
 为了近似图像的Zernike矩,我们构建了一系列的掩模,可以通过下面公式来导出:
  
      
       
        
         
         
           M 
          
          
          
            n 
           
          
            m 
           
          
         
        
          ( 
         
        
          i 
         
        
          , 
         
        
          j 
         
        
          ) 
         
        
          = 
         
         
          
          
            ∬ 
           
           
            
            
              Ω 
             
             
             
               i 
              
             
               , 
              
             
               j 
              
             
            
           
             = 
            
           
             C 
            
           
             ∩ 
            
            
            
              S 
             
             
             
               i 
              
             
               , 
              
             
               j 
              
             
            
           
          
          
          
            V 
           
           
           
             n 
            
           
             m 
            
           
          
            ∗ 
           
          
         
           ( 
          
         
           ρ 
          
         
           , 
          
         
           θ 
          
         
           ) 
           
         
           d 
          
         
           x 
           
         
           d 
          
         
           y 
          
          
         
           ( 
          
         
           12 
          
         
           ) 
          
         
        
       
         M_{n m}(i,j)=\textstyle\iint_{\Omega_{i,j}=C\cap S_{i,j}}V_{n m}^{*}(\rho,\theta)\,dx\,dy\qquad(12) 
        
       
     Mnm(i,j)=∬Ωi,j=C∩Si,jVnm∗(ρ,θ)dxdy(12)
Zernike多项式是通过查找方程式(3)获得的,用于计算图像Zernike矩的掩模是通过Matlab计算获得的。将图像的每个点的N*N区域与这些掩模进行卷积,得到M 
 。
 最后,通过将M 
 代入方程(6)(8)(7)(9)中,我们可以得到边缘的参数 
     
      
       
       
         h 
        
       
         , 
        
       
         k 
        
       
         , 
        
       
         l 
        
       
      
        ℎ,k,l 
       
      
    h,k,l的和。通过设置特征阈值 
     
      
       
        
        
          l 
         
        
          T 
         
        
       
         , 
        
        
        
          k 
         
        
          T 
         
        
       
      
        l_T,k_T 
       
      
    lT,kT(如方程(13)(14)所示),我们可以过滤出特定的边缘位置或确保检测准确性。
  
      
       
        
        
          l 
         
        
          ≤ 
         
         
         
           l 
          
         
           T 
          
         
         
        
          ( 
         
        
          13 
         
        
          ) 
         
        
       
         l\leq l_{T}\qquad(13) 
        
       
     l≤lT(13)
  
      
       
        
        
          k 
         
        
          ≥ 
         
         
         
           k 
          
         
           T 
          
         
         
        
          ( 
         
        
          14 
         
        
          ) 
         
        
       
         k\geq k_{T}\qquad(14) 
        
       
     k≥kT(14)
基于方向插值的亚像素边缘检测
与连续域中的讨论不同,由于图像的离散性,亚像素边缘的检测必然会存在误差。使用 Zernike 矩来定位边缘的亚像素,主要误差的原因是  
     
      
       
        
        
          M 
         
         
         
           n 
          
         
           m 
          
         
        
       
      
        M_{nm} 
       
      
    Mnmmask 的大小。如果图像只有简单且稀疏的边缘,大尺寸的 mask 可以带来高精度。然而,正如在第1节中提到的,如果图像中存在彼此相邻的复杂边缘,边缘检测中将会出现误差。
  
      
       
        
        
          A 
         
        
          c 
         
        
          c 
         
        
          u 
         
        
          r 
         
        
          a 
         
        
          c 
         
        
          y 
         
        
          ∝ 
         
        
          N 
         
         
        
          ( 
         
        
          15 
         
        
          ) 
         
        
       
         Accuracy\propto N \qquad(15) 
        
       
     Accuracy∝N(15)
 此外,当掩模覆盖区域内的边缘信息较少时,描绘细节的能力也较差。
为了克服这一限制,本文提出了一种改进的亚像素边缘检测算法。其原理是根据边缘的梯度方向进行插值,丰富其位置信息,使得大尺寸的 Zernike 矩掩模可以发挥其准确的边缘定位能力。
Canny 算法被应用于近似边缘点。边缘点的梯度  
     
      
       
       
         f 
        
       
         ( 
        
       
         x 
        
       
         , 
        
       
         y 
        
       
         ) 
        
       
      
        f(x,y) 
       
      
    f(x,y)可以表示为:
  
      
       
        
        
          g 
         
        
          r 
         
        
          a 
         
        
          d 
         
        
          f 
         
        
          ( 
         
        
          x 
         
        
          , 
         
        
          y 
         
        
          ) 
         
        
          = 
         
        
          ∇ 
         
        
          f 
         
        
          ( 
         
        
          x 
         
        
          , 
         
        
          y 
         
        
          ) 
         
        
          = 
         
         
         
           { 
          
          
           
           
             ∂ 
            
           
             f 
            
           
             ( 
            
           
             x 
            
           
             , 
            
           
             y 
            
           
             ) 
            
           
           
           
             ∂ 
            
           
             x 
            
           
          
         
           , 
          
          
           
           
             ∂ 
            
           
             f 
            
           
             ( 
            
           
             x 
            
           
             , 
            
           
             y 
            
           
             ) 
            
           
           
           
             ∂ 
            
           
             y 
            
           
          
         
           } 
          
         
         
        
          ( 
         
        
          16 
         
        
          ) 
         
        
       
         gradf(x,y)=\nabla f(x,y)=\left\{\frac{\partial f(x,y)}{\partial x},\frac{\partial f(x,y)}{\partial y}\right\}\qquad(16) 
        
       
     gradf(x,y)=∇f(x,y)={∂x∂f(x,y),∂y∂f(x,y)}(16)
边缘点场的梯度方向插值可以表示为
  
      
       
        
         
         
           x 
          
         
           t 
          
         
        
          = 
         
         
         
           ⌊ 
          
          
          
            C 
           
          
            t 
           
          
          
           
           
             ∂ 
            
           
             f 
            
           
             ( 
            
           
             x 
            
           
             , 
            
           
             y 
            
           
             ) 
            
           
           
           
             ∂ 
            
           
             x 
            
           
          
         
           ⌋ 
          
         
        
          , 
         
         
         
           y 
          
         
           t 
          
         
        
          = 
         
         
         
           ⌊ 
          
          
          
            C 
           
          
            t 
           
          
          
           
           
             ∂ 
            
           
             f 
            
           
             ( 
            
           
             x 
            
           
             , 
            
           
             y 
            
           
             ) 
            
           
           
           
             ∂ 
            
           
             y 
            
           
          
         
           ⌋ 
          
         
         
        
          ( 
         
        
          17 
         
        
          ) 
         
        
       
         x_{t}=\left\lfloor C_{t}{\frac{\partial f(x,y)}{\partial x}}\right\rfloor,y_{t}=\left\lfloor C_{t}{\frac{\partial f(x,y)}{\partial y}}\right\rfloor\qquad(17) 
        
       
     xt=⌊Ct∂x∂f(x,y)⌋,yt=⌊Ct∂y∂f(x,y)⌋(17)
在公式17中, 
     
      
       
        
        
          x 
         
        
          t 
         
        
       
         , 
        
        
        
          y 
         
        
          t 
         
        
       
      
        x_t,y_t 
       
      
    xt,yt表示边缘点在 
     
      
       
       
         N 
        
       
         ∗ 
        
       
         N 
        
       
      
        N*N 
       
      
    N∗N域中在x方向和y方向上的扩展次数, 
     
      
       
        
        
          C 
         
        
          t 
         
        
       
      
        C_t 
       
      
    Ct是一个常数, 
     
      
       
       
         ⌊ 
        
       
         ⌋ 
        
       
      
        ⌊⌋ 
       
      
    ⌊⌋符号表示向上取整。
 应用图3中显示的双线性插值方法对边缘点进行扩展。如图4所示,如果插值后的图像经过Canny检测,则可以获得双边缘信息。通过与原始边缘的映射信息,可以找到原始边缘的双边缘信息。这将进一步增加边缘亚像素的检测深度,并获得原始边缘更丰富的亚像素信息。
  
      
       
        
        
          S 
         
        
          u 
         
        
          b 
         
        
          p 
         
        
          i 
         
        
          x 
         
        
          e 
         
        
          l 
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                x 
               
              
                s 
               
              
             
            
           
           
            
             
              
              
                y 
               
              
                s 
               
              
             
            
           
          
         
           ] 
          
         
        
          = 
         
         
         
           [ 
          
          
           
            
             
              
              
                x 
               
              
                / 
               
               
               
                 x 
                
               
                 t 
                
               
              
                + 
               
               
                
                
                  l 
                 
                
                  N 
                 
                
                
                
                  2 
                 
                 
                 
                   x 
                  
                 
                   t 
                  
                 
                
               
              
                cos 
               
              
                 
               
              
                ( 
               
              
                ϕ 
               
              
                ) 
               
              
             
            
           
           
            
             
              
              
                y 
               
              
                / 
               
               
               
                 y 
                
               
                 t 
                
               
              
                + 
               
               
                
                
                  l 
                 
                
                  N 
                 
                
                
                
                  2 
                 
                 
                 
                   y 
                  
                 
                   t 
                  
                 
                
               
              
                sin 
               
              
                 
               
              
                ( 
               
              
                ϕ 
               
              
                ) 
               
              
             
            
           
          
         
           ] 
          
         
         
        
          ( 
         
        
          18 
         
        
          ) 
         
        
       
         Subpixel=\left[{\begin{array}{l}{x_{s}}\\ {y_{s}}\end{array}}\right]=\left[{\begin{array}{c}{x/x_{t}+{\frac{l N}{2x_{t}}}\cos(\phi)}\\ {y/y_{t}+{\frac{l N}{2y_{t}}}\sin(\phi)}\end{array}}\right]\qquad(18) 
        
       
     Subpixel=[xsys]=[x/xt+2xtlNcos(ϕ)y/yt+2ytlNsin(ϕ)](18)
 如图4所示,如果经过插值处理的图像经过Canny边缘检测,就可以获得双边缘信息。通过与原始边缘的映射信息,可以找到原始边缘的双边缘信息。这将进一步增加边缘亚像素的检测深度,并获得原始边缘更丰富的亚像素信息。
 



















