2013-11-25 42 views
1

我正在使用Camera Calibration Toolbox for Matlab。校准后,我有立体相机系统的内在和外在参数。接下来,我想确定相机系统和物体之间的距离。为了获得这些信息,我使用了包含在工具箱中的函数stereo_triangulation。输入是两个矩阵,包括左侧和右侧图像中对应的像素坐标。立体匹配

我试图通过在Matlab的Stereo Vision帮助中描述的使用基本块匹配方法来获得对应关系的坐标。

我的图片分辨率是1280x960像素。我知道最大的差距是520像素左右。我将视差范围的最大值设置为520.但是,然后确定坐标需要时间。在实践中不可能使用。通过使用Matlab的函数差异(),计算视差图要快得多。但我想要之前的一步 - 对应坐标。

请你能建议我怎样才能有效地得到与Matlab的坐标?

回答

1

视差和3D通过简单的公式(见下面)相关,因此计算3D数据和视差图的时间应该相同。符号是

  • 的F - 在像素焦距,
  • 乙 - 摄像机之间的分离,
  • U,V - 在居中于图像的中间系统的行和列,
  • d -disparity,
  • x,y,z - 三维坐标。

z=f*B/d; 
x=z*u/f; 
y=z*v/f; 

1280×960过大分辨率的任何相关立体实时工作。考虑一下:你必须循环二维图像,超过二维相关窗口和不同范围的差异。这意味着5个嵌入循环!我不再使用Matlab了,但我知道它很慢。

+0

我已经解决了这个问题,但感谢公式和建议!一个小问题,我可以问你,你用什么立体视觉而不是Matlab? – PrincAm

+0

我使用openCV进行校准和校正。不要将它用于立体匹配,但请编写自己的代码。如果您进行关联立体声确保您至少有4种类型的验证:最大。错误,分钟。纹理,反力和斑点噪声。如果你做概率立体声利用多分辨率。 – Vlad