[英]What is the reference point for measuring angles in OpenCV?
我试图在OpenCV中使用密集光流来推断物体的运动方向。 我正在使用calcOpticalFlowFarneback()
获取流量坐标,使用cartToPolar()
来获取指示方向的矢量角度。
为了解释结果,我需要知道测量角度的参考点。 我发现这篇博文表明角度范围是360°。 这告诉我角度测量将沿着单位圆的线。 我无法理解这一点。
cartToPolar()
的文档没有涵盖这一点,我测试它的尝试失败了。
似乎cartToPolar()
产生的角度是指在左上角的图像坐标起点上以顺时针方向旋转90°的单位圆。 它看起来像这样。
我通过使用OpenCV提供的密集光流示例得出了这个结论。 我取代了线hsv[...,0] = ang*180/np.pi/2
与hsv[...,0] = ang*180/np.pi
以获得从弧度正确的角度转换。 然后我测试了一个视频,人们从右上角移动到左下角,反之亦然。 我用GIMP对主色进行采样并得到RGB值,我将其转换为HSV值。 色调值对应于以度为单位的角度。
从右上角向左下方移动的人产生大约300°的角度,而相反移动的人产生大约120°的角度。 这暗示了单位圆的定位方式。
查看代码 , fastAtan32f
用于计算角度。 这似乎是一个atan2
实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.