Canny算法中的非极大值抑制

在canny边缘检测算法中,为了检测边缘,其中会用到非极大值抑制的原理。其基本思想如下:
Canny算法中的非极大值抑制
其目的就是寻找像素点局部最大值,将非极大值点所对应的灰度值置为0,这样可以剔除掉一大部分非边缘的点。
其中蓝色的线为像素点c的梯度方向,假如g1,g2,c,g3,g4为图像上的点,dTmp1、dTmp2为亚像素点(不是真正的像素点)。
Canny算法中的非极大值抑制
w定义如上图,我们用这种方法近似表示dTmp1点的梯度大小,同理得到dTmp2点的大小,这两点梯度方向很明显与c点梯度方向相同。

为什么不比较c与g1,g2,g3,g4的梯度大小那,因为他们的梯度方向不同,不属于同一方向的边界点(梯度方向与边界垂直)而我们寻找非边界点肯定是要按同一方向的
这个是我的理解,不知道对不对,希望有人给我指出。