harris角点检测

作者: 低调小帅哥 | 来源:发表于2020-05-11 06:29 被阅读0次

    一:harris基础

    计算点(u,v)处的harrirs响应,实际是计算两个窗口内所有像素值得加权差异

    以像素点(u,v)为中心的窗口W1经过平移(\Delta u,\Delta v)得到窗口W2,两个窗口像素差异定义为:

    E(\Delta u,\Delta v)=\sum_{x,y}   \omega (x,y)[I(x+\Delta u,y+\Delta v) -I(x,y) ]

                                    \approx \sum_{x,y}\omega (x,y)[\frac{δI}{δx}(x,y)\Delta u+\frac{δI}{δy} (x,y)\Delta v ]²

                            =[\Delta u,\Delta v]H[\Delta u,\Delta v]^T

    其中:

    (x,y)为窗口W1内的像素点,(x+\Delta u,y+\Delta v)为窗口W2内像素点。

    \omega (x,y)=\frac{e^{-(x^2 +y^2)}}{2\sigma ^2} 为窗口内的高斯卷积核(和窗口同样大小)

    H=\sum_{x,y}  \left[\begin{matrix}
  w(x,y)\cdot  (\frac{\delta I}{\delta x}(x,y))^2   & w(x,y)\cdot  \frac{\delta I}{\delta x}(x,y)\cdot \frac{\delta I}{\delta x}(x,y)  \\
  w(x,y)\cdot  \frac{\delta I}{\delta x}(x,y)\cdot \frac{\delta I}{\delta x}(x,y) &  w(x,y)\cdot (\frac{\delta I}{\delta y}(x,y))^2  
  \end{matrix}
\right]

    二:计算流程

    1)计算梯度图X,Y

                X=I\otimes (-1,0,1)

                Y=I\otimes (-1,0,1)^T

    2)计算梯度图的卷积

                A=X\cdot X\otimes w

                B=Y\cdot Y\otimes w

                C=X\cdot Y\otimes w

    其中\cdot 为梯度图矩阵对应位置相乘,w为5x5高斯卷积核(也可以为其他大小的高斯卷积核)

    则:

                H=\left[\begin{matrix}
   A(u,v) & C(u,v) \\
   C(u,v) & B(u,v) 
  \end{matrix}
\right]

    3)计算每个像素点(u,v)的harris响应值

    设矩阵H的特征值分别为\alpha ,\beta ,则:

                Tr(H)=\alpha +\beta =A(u,v)+B(u,v)

                Det(H)=\alpha \beta =A(u,v)B(u,v)-{C(u,v)}^2

    像素点(u,v)的harris的响应值(response)为:

                R(u,v)=Det(H)-k\cdot {Tr(H)}^2

    其中k=0.04(也可以为其他值),如果R(u,v)>M,则点(u,v)为预选harris角点

    4)harris角点筛选

    对步骤3中的预选harris角点执行非极大值抑制,得到最终的harris角点。

    相关文章

      网友评论

        本文标题:harris角点检测

        本文链接:https://www.haomeiwen.com/subject/hwtsnhtx.html