繁体   English   中英

在OpenCV中测量角度的参考点是什么?

[英]What is the reference point for measuring angles in OpenCV?

我试图在OpenCV中使用密集光流来推断物体的运动方向。 我正在使用calcOpticalFlowFarneback()获取流量坐标,使用cartToPolar()来获取指示方向的矢量角度。

为了解释结果,我需要知道测量角度的参考点。 我发现这篇博文表明角度范围是360°。 这告诉我角度测量将沿着单位圆的线。 我无法理解这一点。

cartToPolar()的文档没有涵盖这一点,我测试它的尝试失败了。

似乎cartToPolar()产生的角度是指在左上角的图像坐标起点上以顺时针方向旋转90°的单位圆。 它看起来像这样。

我通过使用OpenCV提供的密集光流示例得出了这个结论。 我取代了线hsv[...,0] = ang*180/np.pi/2hsv[...,0] = ang*180/np.pi以获得从弧度正确的角度转换。 然后我测试了一个视频,人们从右上角移动到左下角,反之亦然。 我用GIMP对主色进行采样并得到RGB值,我将其转换为HSV值。 色调值对应于以度为单位的角度。

从右上角向左下方移动的人产生大约300°的角度,而相反移动的人产生大约120°的角度。 这暗示了单位圆的定位方式。

查看代码fastAtan32f用于计算角度。 这似乎是一个atan2实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM