我试图在visual studio 2013中使用OpenCV C ++计算两点之间的角度。一点是跟踪对象,另一点是我点击鼠标的位置。然而,对于我的代码,我得到了一个非常长且波动的答案,似乎不正确......
代码提取:
float angle = (atan2(mousex - posX, mousey - posY) * 180) / 3.14159265;
sprintf_s(textA, "%d", angle);
putText(imgOriginal, textA, Point(posX, posY + 20),
FONT_HERSHEY_COMPLEX_SMALL, 0.8, Scalar(200, 200, 250), 1, CV_AA);
我已经包括但仍然没有结果。
我得到的结果在50368和10732之间波动(在同一地点)。
所以,如果有人能帮助我,我将不胜感激!
谢谢。
答案 0 :(得分:1)
您的代码存在许多问题。
正如@kuroineko在评论中提到的那样:
atan2
首先获取y分量。如果您以错误的顺序传递参数,则计算旋转90°的角度。此外,您的角度为float
,因此在%d
中使用sprintf
会输出垃圾。