Steger算法
Steger算法基于Hessian矩阵,能够实现光条中心亚像素精度定位:
Steger算法原理
首先通过Hessian矩阵能够得到光条的法线方向,找到光条中心,步骤如下:
对图像每一点求二阶导,利用高斯函数二阶导的平滑核进行卷积(因为高斯核能覆盖周围点,而普通的拉普拉斯不行),然后利用hessian特征向量得到光条法线方向,某一方向上特征值最大即为该条中心(光条中心线上的点)
利用找到的中心点(x0,y0),利用泰勒展开近似该点附近的函数,再求该函数法向量方向上的导函数,再令这个导函数=0,则能找出亚像素
问题
1.高斯函数方差,为什么小于w/根号3.(w是线条宽度)。
2.为什么只有两条特征向量,为什么特征值最大一定是凸性最强。
然后在法线方向利用泰勒展开得到亚像素位置。
利用找到的中心点(x0,y0),利用泰勒展开近似该点附近的函数,再求该函数法向量方向上的导函数,再令这个导函数=0,则能找出亚像素。
代码实现
https://blog.csdn.net/dangkie/article/details/78996761
知识点补充
- 泰勒展开
- hessian矩阵
在二维图像中每个点都有2*2的hessian矩阵
在二维图像中其特征向量为,特征值最大,函数凸显约强
疑问
- hessian矩阵的由来,帮助我理解为什么特征向量是法向量(其最大特征向量代表了数据变化量剧烈的方向,那就刚好是法线)
-
正定矩阵
二维正定矩阵只有两个特征向量吗
-
对称矩阵特征向量两两正交
-
各向同性/异性
对图像来说各向异性就是在每个像素点周围四个方向上梯度变化都不一样 -
沿着某个方向的方向导数