正确的方法来获取0到180之间的无符号角度的梯度直方图

时间:2019-01-28 22:02:37

标签: python numpy cv2

目前,我有一些代码,可以从Sobel衍生物计算出幅度和方向。

mag, ang = cv2.cartToPolar(gx, gy, angleInDegrees=True)
ang = ang.clip(min=0, max=179.99999)

长话短说,如何在不修剪的情况下强迫角度无符号且介于[0,180]度之间,这似乎会破坏直方图分布。

是否有一个numpy函数的角度大于180,例如200,并拆分为160,或者我必须自己编写类似的代码。

是否有可能使numpy数组仅包含-180到180之间的值,然后我可以采用abs值。

1 个答案:

答案 0 :(得分:1)

使用{p>代替ang = ang.clip(min=0, max=179.99999)

ang = ang % 180

%是Python中的modulo operation。 例如,这会将-135转换为45,我怀疑这是您想要的。也就是说,这两个角度都对应于斜率为1的线。