Harris 角点检测

2020-10-16  本文已影响0人  yuerxiaoshui

角点的定义有以下两种:

基本假设:如果在各个方向上移动窗口,窗口区域内的灰度值发生了较大变化,那么就认为在窗口内遇到了角点。


窗口平移 [u,v] 产生的灰度变化的自相关函数如下:
E(u,v)=\sum_{x,y}w(x,y)\left[I(x+u,y+v)-I(x,y)\right]^2
其中 w (权重矩阵) 可以是均值矩阵,也可以是高斯核
I(x+u,y+v)=I(x,y)+I_xu+I_yv+o(u^2,v^2)
E(u,v)=\sum_{x,y}w(x,y)\left[I_xu+I_yv+o(u^2,v^2)\right]^2
o(u^2,v^2)\approx0
\left[I_xu+I_yv\right]^2=\begin{bmatrix}u & v\end{bmatrix}\begin{bmatrix}I_x^2 & I_xI_y \\ I_xI_y & I_y^2 \end{bmatrix}\begin{bmatrix}u \\ v\end{bmatrix}
E(u,v)\cong\begin{bmatrix}u&v\end{bmatrix}M\begin{bmatrix}u\\v\end{bmatrix}
M=\sum_{x,y}w(x,y)\begin{bmatrix}I_x^2 & I_xI_y \\ I_xI_y & I_y^2 \end{bmatrix}
M=W\ast M_I
M_I=\nabla I\nabla I^T=\begin{bmatrix}I_x \\ I_y\end{bmatrix}\begin{bmatrix}I_x & I_y\end{bmatrix}=\begin{bmatrix}I_x^2 & I_xI_y \\ I_xI_y & I_y^2 \end{bmatrix}
其中,矩阵 M 又称为 Harris 矩阵,W 的大小决定了卷积的范围。

忽略余项之后的表达式为一个二项式函数,而二项式函数的本质是一个椭圆函数,椭圆的扁率和尺寸是由 M(x,y) 的特征值 \lambda1 \lambda2 决定的,椭圆的方向是由 M(x,y) 的特征矢量决定的。

椭圆函数特征值与图像中的角点、直线(边缘)和平面之间的关系如下:

定义角点函数 R
R=\det M-k(\mathrm{trace} M)^2
\mathrm{trace}M=\lambda1+\lambda2
\det M=\lambda1\lambda2
(其中,一般取k=0.04\sim 0.06)故:

上一篇下一篇

猜你喜欢

热点阅读