Two cameras, 2000 points, four classical triangulators. The 3-D points and both camera
| cameras | 1280 × 960, focal length 1000 px, second camera verged on the scene centre |
| scene | 2000 points at depths 4.0 to 8.0, mean depth 6 |
| ground truth | the 3-D points themselves; only the pixel measurements are perturbed |
| methods | `cv2.triangulatePoints` (DLT) · midpoint of rays · `cv2.correctMatches` + DLT · Gauss-Newton on reprojection error (the ML estimate) |
| swept | pixel noise σ = 0 to 10 px, baseline 0.02 to 4.0 scene units |
Both hold to within 1.2%. The baseline fit uses baselines of 0.1 and above: below that the error is a sizeable fraction of the scene depth, points start landing behind the camera and the error saturates instead of growing, so a fit across that boundary would be measuring the saturation.



Code and full results on GitHub
Every number is read from the file the run produced. github.com/hammasbuilds · kaggle.com/muhammadhammas13