链接:https://www.zhihu.com/question/54106600/answer/138484840
双目标定后的下一件事是外极线校准,通俗地讲就是让同一个实际点在左右图像中的投影点处于一条水平线上,这是为了后面立体匹配的时候只需要在同一行上搜索匹配点,降低匹配的复杂度。完成这个过程需要用到几乎所有的标定参数(包括结构参数R和T)。
然后是立体匹配,如果愿意自己写匹配算法的话有很多选择,基于SAD、SSD、NCC,或基于神经网络、聚类,可以出无数种匹配算法。因为已经做了外极线校准,所以匹配的时候在同一行上搜索就好,否则计算量十分巨大。考虑到外极线校准有误差,可以把一行的上下几行都搜索一下。如果不想自己写,OpenCV有现成的类,可以实现BM、GC、SGBM算法,通过GPU模块还能实现BP、CSBP算法。把每一个匹配点的横坐标相减得到视差,把视差作为灰度值即得到视差图D。
最后是三维反求,本质是三角测量原理。在矩阵上体现为左图像坐标(x,y)、重投影矩阵Q、视差图D三者的运算。重投影矩阵在外极线校准的时候已经得到。三维反求的过程就是将图像坐标系上的点重投影到左摄像机坐标系上的过程。
至此双目视觉的流程已经走完了。因为三角测量原理得到的结果是以摄像机的位置为基准的,所以重投影得到的三维坐标是左摄像机坐标,如果没什么特别的需求,就直接将世界坐标系与左摄像机坐标系重合即可,结果也直观。但是按照题主的描述,题主是想另设世界坐标系,那就要加多一步:自己另外摆放标定板,求解左摄像机坐标系与标定板上的世界坐标系上的旋转平移关系,然后将左摄像机坐标系的点变换过这边即可。