现在我有两个摄像头并完成立体声校准步骤以获取内在和外在参数。我在左相机中提取了一些特征点,并想知道在右图上映射它们的方法。有人可以帮忙吗?
我试图通过每个相机的旋转和平移矩阵来计算它们。
SolvePnP
中有openCV
功能,左侧摄像头为R1 T1,右侧摄像头为R2 T2。
到同一个世界点[X,Y,Z],我可以得到
[x1,y1,z1] = R1[X,Y,Z]+T1
和
[x2,y2,z2] = R2[X,Y,Z]+T2
相机在自己的坐标系中坐标。
当我尝试通过
映射[x1,y1,z1]和[x2,y2,z2]时R2*inv(R1)[x1,x2,x3]+(T2-R2*inv(R1)*T1) = [x2,y2,z2]
我得到了这个结果。
左边的图像是通过上面的方法从左图像映射棋盘角的结果;右边的图像是findChessBoardCorner正确图像计算的角落:
答案 0 :(得分:0)
旋转和平移矩阵将世界坐标系中的3D坐标映射到摄像机本地 3D坐标为了找到 2D-2D 变换,我建议您使用单应性:
答案 1 :(得分:0)
Results From function "findHomography"
通过" findHomography"计算点映射关系只适用于棋盘的平面(我从棋盘上的角落得到了关系)。然而,当我用H计算前景/背景点时,结果如上所示。
问题应该是&#34;矩阵H在2-D坐标系上工作(或像上面棋盘这样的平面上的物体,这就是为什么如果我将棋盘点反射到另一个图像上它的原因),对象前/后它们的坐标是在三维坐标系上,它在图像上映射,这意味着矩阵失效工作(实际上我认为它没有失败工作,它映射了棋盘延伸位置上的点)&#34; < / p>
为了解决上面提到的问题,我认为想法是将图像重新投影到三维坐标系(也许是借助于ToF相机或其他方式),调用“解决方案”和“解决方案”。在左右相机的世界点之间得到姿势关系R,T的函数。选择左图像上的任意点,重新投影回3D坐标系,然后通过R,T&#34;
重新投影到右图像