我正在使用相机追踪蓝色球上的一个黑色标记,如下图所示。
我可以可靠地检测到球形图像顶部的标记位置,但需要知道 如何根据标记位置计算球的旋转角度。
当标记位于中间时,如图所示,两个角度应为0度。当标记在左边缘只有一半可见时,如图所示,水平角度应为-90度。我理解从2D图像计算角度是非线性的,在边缘附近类似的像素运动意味着旋转的变化比中间更大,但我无法想出公式。
答案 0 :(得分:0)
绕垂直轴旋转:
Phi = ArcSin((Marker.X - Center.X) / Radius)
一般情况下,如果在半径为1的球操纵器前表面抓取2D坐标(x0,y0)的初始点,并将其拖动到终点(x1,y1),则旋转方向向量
d0 = (x0, y0, Sqrt(1 - x0^2 - y0^2))
to
d1 = (x1, y1, Sqrt(1 - x1^2 - y1^2))
如何处理这些载体?我取决于你将用于轮换的方法