我试图了解VLFeat SIFT算法的内部工作原理,并且在计算图像梯度时会注意到以下声明:

 *grad++ = vl_mod_2pi_f   (vl_fast_atan2_f (gy, gx) + 2*VL_PI);


我想知道此表达式是否与vl_fast_atan2_f (gy, gx)不同,因为我们要添加2 PI,并且RHS上的表达式的模数应计算为atan2(gy, gx)吗?

最佳答案

vl_fast_atan2_fatan2的近似版本(因此更快)(有关更多详细信息,请参见this doc)。

仍然会在[-pi, pi]中返回结果,因此加2.pi并取模数(vl_mod_2pi_f)将结果重新缩放为[0, 2.pi],这就是表示坡度角的方式。

关于c - VLFeat:vlmodulo_2pi_f函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30558610/

10-10 21:24