首先进行一些澄清 - 这个问题似乎将差异与距离混淆,而它们(大致)是彼此的倒数。近距离点的差异绝对值大,远点的差异小。例如,对于具有平行焦轴的相机,在同一轴方向上的无限远点将具有精确的零视差。
至于传感器分辨率,如果您有 EXIF 标头,请查看它是否确实存在。感兴趣的关键是“FocalPlaneXResolution”等。你引用的那个,XResolution,是打印分辨率,这是别的东西(而且完全没用)。有关详细信息,请参阅此页面。
对于平行相机,距离分辨率和边界更容易计算。例如,参见这篇文章。对于前束相机,几何形状稍微复杂一些,特别是如果您不能假设焦轴是会聚的(因此基线和两个焦轴位于同一平面上)。无论哪种方式,您都可以按如下方式计算它们:
对于最近的距离,您考虑一个平面和两条射线:
- 该平面是左图像右边缘的反投影,即包含光学中心左侧和左图像右边缘的平面。
- 光线是右图左上角和左下角的反投影。
- 平面和光线之间的两个交点中最近的点是立体对可见和可测量的最近点。
-
- 对于最远距离,您考虑:
- 右侧相机中与左侧相机焦轴 F 平行的射线 Rf 。Backproject Rf 以找到其对应的像素。当然,这个像素的视差正好为零,因为它是两条平行光线的视差。
- 现在在同一平面 Rf-F 中向左移动一个像素,并找到反向投影第二个像素的射线 Rd。Rd 必须与 F 相交,因为它在同一平面上,并且与 F 不平行。相交处是可以测量一个像素的视差单位的最远距离。