【问题标题】:Stereo matching立体声匹配
【发布时间】:2013-12-10 10:40:05
【问题描述】:

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

我尝试使用基本块匹配方法获取对应坐标,该方法在 Matlab 的立体视觉帮助中有所描述。

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

请您建议我如何使用 Matlab 有效地获取坐标?

【问题讨论】:

    标签: matlab stereoscopy


    【解决方案1】:

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

    • f - 以像素为单位的焦距,
    • B - 相机之间的分离,
    • u,v - 系统中的行和列以图像中间为中心,
    • d-视差,
    • x、y、z - 3D 坐标。

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

    1280x960 的分辨率太大,任何相关立体都无法实时工作。想一想:您必须遍历 2d 图像、2d 相关窗口和视差范围。这意味着 5 个嵌入式循环!我不再使用 Matlab,但我知道它很慢。

    【讨论】:

    • 我已经解决了这个问题,但感谢您的公式和建议!一个小问题,请问你用什么来做立体视觉而不是 Matlab?
    • 我使用openCV进行校准和校正。不要将它用于立体匹配,编写你自己的代码。如果您做相关立体,请确保您至少有 4 种类型的验证:最多。错误,分钟。纹理、反作用力和斑点噪声。如果你做概率立体声,请使用多分辨率。
    猜你喜欢
    • 2012-10-12
    • 2014-01-16
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 2015-08-15
    • 1970-01-01
    • 2017-07-28
    相关资源
    最近更新 更多