Matlab 立体匹配

Matlab 立体匹配,matlab,stereoscopy,Matlab,Stereoscopy,我正在使用Matlab的摄像机校准工具箱。校准后,我有立体相机系统的内在和外在参数。接下来,我想确定摄影机系统和对象之间的距离。为了获得这些信息,我使用了工具箱中包含的函数stereo_triangulation。输入两个矩阵,包括左右图像中对应的像素坐标 我尝试使用基本块匹配方法获得对应的坐标,该方法在Matlab的立体视觉帮助中描述 我的图片分辨率为1280x960像素。我知道最大的差异大约是520像素。我将最大视差范围设置为520。但是确定坐标需要很长时间。这在实践中是不可能使用的。使用M

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

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

我的图片分辨率为1280x960像素。我知道最大的差异大约是520像素。我将最大视差范围设置为520。但是确定坐标需要很长时间。这在实践中是不可能使用的。使用Matlab的函数Distance()计算视差图要快得多。但我想先看一步——通信的坐标


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

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

  • f-焦距,以像素为单位
  • B-摄像机之间的间隔
  • u、 v-系统中以图像中间为中心的行和列
  • d-差距
  • x、 y,z-三维坐标


1280x960分辨率太大,任何相关立体声都无法实时工作。想想看:你必须在2d图像上循环,在2d相关窗口上循环,在差异范围内循环。这意味着5个嵌入式循环!我不再使用Matlab,但我知道它非常慢。

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

  • f-焦距,以像素为单位
  • B-摄像机之间的间隔
  • u、 v-系统中以图像中间为中心的行和列
  • d-差距
  • x、 y,z-三维坐标


1280x960分辨率太大,任何相关立体声都无法实时工作。想想看:你必须在2d图像上循环,在2d相关窗口上循环,在差异范围内循环。这意味着5个嵌入式循环!我不再使用Matlab,但我知道它非常慢。

我已经解决了这个问题,但感谢公式和建议!一个小问题,我可以问你你用什么来代替Matlab进行立体视觉吗?我用openCV进行校准和校正。但不要将其用于立体匹配,请编写自己的代码。如果执行相关立体,请确保至少有4种类型的验证:最大错误、最小纹理、后退和强制以及斑点噪声。如果你不使用多分辨率,我已经解决了这个问题,但是谢谢你的公式和建议!一个小问题,我可以问你你用什么来代替Matlab进行立体视觉吗?我用openCV进行校准和校正。但不要将其用于立体匹配,请编写自己的代码。如果执行相关立体,请确保至少有4种类型的验证:最大错误、最小纹理、后退和强制以及斑点噪声。如果你不这样做,请使用多分辨率。
z=f*B/d;
x=z*u/f;
y=z*v/f;