了解opencv的decompostehomographymat输出

2024-10-02 12:37:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到移动相机所需的角度,这样它就在物体的正前方。如果我的相机从左边以30度角观察对象,那么脚本应该返回30度。我用cv2.decomposteHomographyMat来找到一个运行良好的旋转矩阵。这个函数返回了4个解,所以在我的脚本中我输出了4个角度。在这些角度中,只有两个独特的角度。我的问题是我不知道这两个角度中哪一个是正确的。在

我知道decomposteHomographyMat返回四个可能的解,但是角度不应该相同吗?我还发现了投影到二维平面上的点的坐标,但我不确定如何处理这些信息,以确定哪个角度是正确的(这里pts3D是从相机图像中获取的对象的2D点,z列加上0,使其成为3D pts):

for i in range(len(Ts)):
    projectedPts = cv2.projectPoints(pts3D, Rs[i], Ts[i], CAM_MATRIX, DIST_COEFFS)[0][:,0,:]

这是我的代码片段。也许我从旋转矩阵中确定的角度不正确?在下面的例子中,y1和y2是相同的角度,y3和y4是相同的角度。有人能帮我解释一下我是如何确定哪个角度是正确的,以及为什么会返回两个不同的角度?在

^{pr2}$

谢谢!在


Tags: 对象函数图像脚本信息矩阵cv2平面

热门问题