基于Hessian矩阵的Steger算法VisualApplets仿真
一、Steger算法原理
Hessian矩阵的2个特征值分别为图像灰度函数的二阶导数的极大值和极小值,所对应的2个特征向量则表示2个极值所取的方向,且相互正交。图像线条边缘法线方向(nx,ny)对应于Hessian矩阵最大绝对特征值的特征向量。
Hessian矩阵表示为:
根据Steger算法令:
则临近二维图像任意像素点的图像灰度极大或极小点为:
若,即一阶导数为零的点位于当前像素内,且(nx,ny)方向的二阶方向导数大于指定的阈值则该点为中心点。
Hessian矩阵负极大绝对特征值:
二、程序总流程图
1、高斯滤波
高斯滤波模板有3x3和5x5两种:
2、计算偏导数
分别计算一阶导数rx、ry,二阶导数rxx、rxy、ryy。
根据上述计算结果依次计算
算式的分母项(两者分母项相同)
算式的分子项也部分相似
为防止计算结果数据丢失(精度位数不够,结果直接被0覆盖),对的分子项进行相应的扩大(左移)。
对应不同的左移位数,阈值判断条件也做对应变化。
3、原始图像
4、条纹中心线
三、总结
因为在VisualApplets软件中,只有整数精度。所以才程序设计过程中进行数据扩大精度调整。最后会造成一定的误差。