目前,我有一些代码,可以从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值。
最佳答案
代替ang = ang.clip(min=0, max=179.99999)
,使用
ang = ang % 180
%
是Python中的modulo operation。例如,这会将-135转换为45,我怀疑这是您想要的。也就是说,这两个角度都对应于斜率为1的线。
关于python - 正确的方法来获取0到180之间的梯度直方图的无符号角度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54410940/