基于Hessian矩阵的Steger算法VisualApplets仿真

一、Steger算法原理

Hessian矩阵的2个特征值分别为图像灰度函数的二阶导数的极大值和极小值,所对应的2个特征向量则表示2个极值所取的方向,且相互正交。图像线条边缘法线方向(nx,ny)对应于Hessian矩阵最大绝对特征值的特征向量。

Hessian矩阵表示为:     

                                  基于Hessian矩阵的Steger算法VisualApplets仿真

根据Steger算法令:

                                基于Hessian矩阵的Steger算法VisualApplets仿真

                

则临近二维图像任意像素点的图像灰度极大或极小点为:

                              基于Hessian矩阵的Steger算法VisualApplets仿真

基于Hessian矩阵的Steger算法VisualApplets仿真,即一阶导数为零的点位于当前像素内,且(nx,ny)方向的二阶方向导数大于指定的阈值则该点为中心点。

Hessian矩阵负极大绝对特征值:

                              基于Hessian矩阵的Steger算法VisualApplets仿真

                             基于Hessian矩阵的Steger算法VisualApplets仿真

二、程序总流程图

基于Hessian矩阵的Steger算法VisualApplets仿真

1、高斯滤波 

 高斯滤波模板有3x3和5x5两种:

                                                     基于Hessian矩阵的Steger算法VisualApplets仿真           

                                           基于Hessian矩阵的Steger算法VisualApplets仿真

基于Hessian矩阵的Steger算法VisualApplets仿真

2、计算偏导数 

     分别计算一阶导数rx、ry,二阶导数rxx、rxy、ryy。

基于Hessian矩阵的Steger算法VisualApplets仿真

根据上述计算结果依次计算基于Hessian矩阵的Steger算法VisualApplets仿真

基于Hessian矩阵的Steger算法VisualApplets仿真

基于Hessian矩阵的Steger算法VisualApplets仿真算式的分母项(两者分母项相同) 

基于Hessian矩阵的Steger算法VisualApplets仿真

基于Hessian矩阵的Steger算法VisualApplets仿真算式的分子项也部分相似 

基于Hessian矩阵的Steger算法VisualApplets仿真

为防止计算结果数据丢失(精度位数不够,结果直接被0覆盖),对基于Hessian矩阵的Steger算法VisualApplets仿真的分子项进行相应的扩大(左移)。 

基于Hessian矩阵的Steger算法VisualApplets仿真

对应不同的左移位数,阈值判断条件也做对应变化。

基于Hessian矩阵的Steger算法VisualApplets仿真

3、原始图像

基于Hessian矩阵的Steger算法VisualApplets仿真

 

4、条纹中心线 

 

基于Hessian矩阵的Steger算法VisualApplets仿真

 

三、总结

因为在VisualApplets软件中,只有整数精度。所以才程序设计过程中进行数据扩大精度调整。最后会造成一定的误差。