Matlab 如何根据立体几何参数估计视差/深度贴图限制?

Matlab 如何根据立体几何参数估计视差/深度贴图限制?,matlab,computer-vision,stereoscopy,disparity-mapping,Matlab,Computer Vision,Stereoscopy,Disparity Mapping,我试图估计立体像对中某些点之间的视差的上限。我知道以下参数: 会聚角:2.2° 基线:77毫米 焦距:6.3毫米 X分辨率:72 Y解决方案:72 分辨率单位:0x2(英寸) 我知道x方向(沿极线)上的响应点之间的距离变化高达约120像素。。。我已经看到,对于前景中的点,这个距离很小,对于背景中的点,这个距离更大,我想要一个方法来自动建立这个距离的上限。。。我的问题是,我是否可以使用这些参数估计这个上限(而不估计视差/深度贴图)。。我不需要视差的精确值,只需要一个近似值来改变我的安全上限 请注意

我试图估计立体像对中某些点之间的视差的上限。我知道以下参数:

会聚角:2.2°

基线:77毫米

焦距:6.3毫米

X分辨率:72

Y解决方案:72

分辨率单位:0x2(英寸)

我知道x方向(沿极线)上的响应点之间的距离变化高达约120像素。。。我已经看到,对于前景中的点,这个距离很小,对于背景中的点,这个距离更大,我想要一个方法来自动建立这个距离的上限。。。我的问题是,我是否可以使用这些参数估计这个上限(而不估计视差/深度贴图)。。我不需要视差的精确值,只需要一个近似值来改变我的安全上限

请注意,我没有指定传感器的大小:(


谢谢大家的回答!

首先要澄清一下——这个问题似乎把差距和距离混淆了,而它们(大致上)是这样的彼此相反。对于近距离点,视差的绝对值较大,而对于远距离点,视差的绝对值较小。例如,对于具有平行焦轴的相机,在同一轴方向上无限远的点的视差正好为零

至于传感器分辨率,如果你有EXIF头,看看它是否真的在那里。感兴趣的关键是“FocalPlaneXResolution”等。你引用的XResolution是打印分辨率,这是另外一种分辨率(完全无用)。有关详细信息,请参阅

对于平行摄影机,距离分辨率和边界更容易计算。例如,请参见。对于脚趾式摄影机,几何结构稍微复杂一些,特别是如果您不能假设焦距轴会聚(因此基线和两个焦距轴位于同一平面上)。无论哪种方式,您都可以按如下方式计算它们:

    对于最近的距离,你考虑一个平面和两个光线:

    • 该平面是左图像右边缘的反投影,即包含光学中心左侧和左图像右边缘的平面
    • 光线是右图像左上角和左下角的背面投影
    • 平面和光线之间的两个交点中最近的点是立体对可见和可测量的最近点
    -

  • 对于最远的距离,您可以考虑:
    • 右摄像机中平行于左摄像机焦轴F的光线Rf。反向投影Rf以找到其对应的像素。当然,该像素处的视差为零,因为它是两条平行光线的视差
    • 现在,将同一平面Rf-F中的一个像素向左移动,并找到反向投影第二个像素的光线Rd。Rd必须与F相交,因为它位于同一平面中,并且与F不平行。相交点位于可以测量一个像素的视差单位的最远距离处

您能否澄清“我没有传感器尺寸”是什么意思?您的“分辨率单位”和“X[Y]分辨率”是什么意思?我的意思是我不知道CCD的实际尺寸……最后三个参数取自EXIF(我认为它很有用)我对查找视差搜索范围感兴趣。链接已断开。我不了解您的方法。您能否提供一些有关查找视差范围详细信息的文档或链接?