Stereoscopy uses images from different viewpoints to convey or recover depth. In scientific photography, identifying the same feature in two calibrated views permits stereoscopic triangulation: intersecting the directions inferred from the two images.[ref]
What Is Stereo Reconstruction? by MathWorks. How Does Stereo Reconstruction Work? and Stereo Camera Calibration
Consider ideal cameras with parallel axes, separated by a baseline . With matching forward-projection coordinates and common focal length in image-coordinate units, a point at projects toSubtracting gives the stereo disparity , hence . If and are measured in pixels, has the same length unit as .
For an original example, , pixels and pixels give . First-order propagation of uncertainty gives . Thus fixed disparity precision produces increasing depth uncertainty for more distant objects. Correctly matching the same feature is also essential; ambiguous or hidden features can defeat the reconstruction even when the geometry is known.
Epipolar geometry describes the projective relationship between two camera views. A scene point away from the camera baseline and the two camera centers determine an epipolar plane. Its intersections with the image planes are corresponding epipolar lines. Knowing one image point therefore constrains its partner to a line rather than the whole second image.[ref]
Epipolar Geometry in the OpenCV-Python tutorials. Basic Concepts, two-camera plane and epipolar constraint
With image points in homogeneous coordinates, a fundamental matrix expresses the constraintFor an ideal horizontally rectified pair this reduces to equality of image-row coordinates, while horizontal displacement remains free and carries stereo disparity. A line constraint does not determine depth: many scene points along one viewing ray satisfy the geometry. Correct stereo correspondence selects a partner, and camera calibration then supports metric stereoscopic triangulation.
The fundamental matrix encodes the epipolar geometry of two distinct camera centers using image homogeneous coordinates. For matching image points , the ideal constraint isThus is an epipolar line in the right image, while is an epipolar line in the left image. A nondegenerate fundamental matrix has matrix rank two and is defined only up to nonzero scale.[ref]
Epipolar Geometry in the OpenCV-Python tutorials. Basic Concepts: correspondence constraint, rank-two matrix and point-to-line mapping
For an ideal horizontally aligned stereo pair with matched image coordinate origins, one possible scale convention isPutting gives , so the right point must satisfy . Its horizontal coordinate remains free: the constraint reduces the search to a line but does not determine stereo disparity or depth. Repeated texture can still make stereo correspondence ambiguous.
With camera calibration matrices and relative pose under the convention , the relation is , where . Translation direction affects the geometry, but multiplying by a scalar only rescales : the fundamental matrix alone cannot establish a metric camera baseline. Pure rotation has and requires a different geometric description.[ref]
Epipolar Geometry in the OpenCV-Python tutorials. Basic Concepts: essential and fundamental matrices, intrinsic calibration and degrees of freedom
An epipolar plane contains both camera centers and a scene point. For a scene point away from the camera baseline, these three points determine a unique plane. Its intersection with each image plane is an epipolar line, so corresponding image points lie on the two traces of the same plane.[ref]
Epipolar Geometry in the OpenCV-Python tutorials. Basic Concepts, diagram of the baseline, scene point and epipolar plane
To see the geometry directly, take camera centers and , and a scene point . The plane they span satisfies . For parallel forward-facing image planes at common focal length , its traces have in both views. This is why an ideal horizontal stereo pair places corresponding image points on the same row.
Moving the scene point within that plane leaves its epipolar lines unchanged. A single trace therefore cannot recover depth. If the scene point lies on the baseline, the three defining points are collinear and no unique epipolar plane is determined. These degeneracies explain both the usefulness and the limits of line-based stereo correspondence.
An epipolar line is the image-plane trace of an epipolar plane. Given one point in the first camera image, the partner of that scene point must lie on the corresponding epipolar line in the other view. A fundamental matrix maps the first point to coefficients of that line.[ref]
Epipolar Geometry in the OpenCV-Python tutorials. Basic Concepts, point-to-line mapping and computeCorrespondEpilines example
For example, let andThen , so a candidate satisfies . The partner can have different horizontal coordinate , but must lie on row 50 in this ideal model. Intersecting candidate matches with this line reduces the search; it does not resolve repeated textures or guarantee that a visible partner exists.
Stereo correspondence identifies image positions in two views that depict the same scene point. This is the matching step needed before stereoscopic triangulation can recover that point. Epipolar geometry restricts a candidate match to an epipolar line; after horizontal stereo rectification, that search follows a corresponding image row.[ref]
What Is Stereo Reconstruction? by MathWorks. How Does Stereo Reconstruction Work?; Epipolar Geometry and Camera Rectification
For example, matching a corner at horizontal coordinate 120 in the left view with coordinate 96 in the right gives stereo disparity 24 pixels. A repeated window pattern might offer equally plausible candidates at 96 and 72, producing different inferred depths. Geometry alone does not choose the correct window. A foreground object can also hide the feature in one view: occlusion in stereo vision then prevents a visible match. Texture, agreement of nearby matches and explicit rejection of ambiguous locations supply evidence beyond mere proximity along a row. A confident disparity map must represent locations where stereo correspondence failed as well as those where it succeeded.
Occlusion in stereo vision occurs when a scene feature visible from one camera is hidden behind another surface from the second viewpoint. Such a feature has no visible partner, even if camera calibration is exact. Stereo correspondence must allow unmatched locations instead of forcing every image location to have a partner.[ref]
Disparity map post-filtering in the OpenCV documentation. Introduction, half-occlusions, depth discontinuities and invalidating inaccurate disparities
Consider a nearby post in front of a distant wall. Moving the viewpoint sideways shifts the post's projection more than the wall's because their depths differ. A strip of wall exposed beside the post in one image can therefore be covered in the other. Matching that strip to the post invents a depth belonging to the wrong surface. Missing-value masks and consistency checks can help represent this limitation, while smoothing a disparity map across the boundary can conceal it rather than recover the hidden wall.
Stereo rectification transforms a pair of images so that corresponding epipolar lines become aligned scan lines. In a horizontal stereo arrangement, a scene point visible in both rectified views should have the same vertical image coordinate. This turns a two-dimensional matching search into a one-dimensional search along a row.[ref]
Camera Calibration and 3D Reconstruction by OpenCV. stereoRectify(), horizontal stereo case, R1/R2 and P1/P2
For example, a feature initially at left row 100 and right row 104 can be mapped to the same row in virtual aligned views. Camera calibration supplies geometry for the transforms, and image resampling evaluates the transformed images on a new pixel grid. The new images need not retain every border region. Stereo rectification aligns the geometric search; it does not identify the correct partner among repeated patterns or restore a feature hidden in one view. The rectified focal length and coordinate offsets must also be used when converting stereo disparity to depth.
The camera baseline is the separation between the camera centers of two views. For centers , its length is . It measures translation, so turning a stationary camera without moving its camera center does not create a nonzero camera baseline. A known camera baseline supplies the length scale in stereoscopic triangulation.[ref]
What Is Stereo Reconstruction? by MathWorks. opening baseline definition and How Does Stereo Reconstruction Work?
In the ideal aligned model with matched coordinate origins, stereo disparity satisfies . For focal length 800 pixels and depth 5 metres, a camera baseline 0.10 metres gives 16 pixels; doubling the camera baseline gives 32 pixels. With unchanged disparity precision, the larger separation improves depth sensitivity. It can also increase occlusion in stereo vision and reduce overlap of the views. Finally, multiplying both and all reconstructed lengths by the same factor leaves the projections unchanged: a small reprojection error alone cannot certify the metric scale.
Stereoscopic triangulation reconstructs a scene point from corresponding image positions and known camera geometry. Each image position determines a viewing direction. Two correctly matched views constrain the point to lie on both viewing rays; one view alone leaves its position along a ray undetermined.
For an ideal aligned pair, put the left camera at the origin and the right one at in a Cartesian coordinate system, with their axes pointing in the positive direction. Assume a common focal length , square pixels, corrected distortion and image coordinates measured from aligned principal points. Forward perspective projection givesThe stereo disparity therefore determines all three coordinates:Here is depth along the camera axis; the Euclidean distance from the left camera is instead . If use pixels and the camera baseline uses metres, the recovered coordinates use metres. Without a known length scale, the images alone do not determine metric size.[ref]
Camera Calibration and 3D Reconstruction by OpenCV. Detailed Description, camera intrinsic matrix and the distortion-free pinhole projection equations
Real cameras require calibration before these simplified equations apply. Stereo rectification transforms the images to an aligned geometry. With noisy measurements, viewing rays need not intersect exactly; minimizing reprojection error instead seeks a point whose projected positions agree as closely as possible with the observations. Reconstruction also depends on stereo correspondence: a mathematically precise intersection of mismatched viewing directions can still describe the wrong scene point.[ref]
What Is Stereo Reconstruction? by MathWorks. Stereo Camera Calibration; Stereo Image Rectification; Disparity Map Computation; 3-D Scene Reconstruction
A reprojection error compares an observed image point with the position predicted by projecting a reconstructed scene point through a camera model. If is an observed position and its prediction, the residual is . One possible aggregate is the per-point root mean square Euclidean norm:Coordinates in pixels give an error in pixels. Least squares instead minimizes the associated sum of squares; normalization conventions should be stated when reporting a summary.[ref]
Camera Calibration in the OpenCV-Python tutorials. Re-projection Error, projecting known points and comparing image positions
For an observation and prediction , the Euclidean norm of the residual is 5 pixels. Camera calibration can adjust model parameters to reduce many such residuals, while stereoscopic triangulation can adjust a reconstructed point with the camera parameters fixed. Low reprojection error tests agreement with observations under that model; incorrect stereo correspondence or an incorrect camera baseline can still produce wrong scene geometry.
Stereo disparity is the difference between the image positions of the same scene feature in two views. For an ideal horizontally aligned pair, use signed horizontal coordinates with matched principal points and defineWith the orientation and camera baseline convention of stereoscopic triangulation, a point in front of the cameras has : stereo disparity measures inverse depth, rather than depth itself. Halving doubles when the camera baseline and focal length stay fixed.
A disparity map assigns this difference to matched image locations. Finding the matches is a separate stereo correspondence problem. A repeated pattern can give several plausible matches; a feature hidden from one camera has no visible partner. A small measured stereo disparity is therefore not, by itself, proof of a distant object: the match and calibration must also be credible.[ref]
What Is Stereo Reconstruction? by MathWorks. Stereo Image Rectification and Disparity Map Computation: aligned rows, matching pixels and disparity-to-depth conversion
The ideal relation also explains why far-away reconstruction becomes sensitive to measurement error. Differentiating gives ; the first-order propagation of uncertainty is . Thus equal disparity errors produce larger depth errors at greater depth. The example and curves under stereoscopy quantify this effect.
A disparity map assigns an estimated stereo disparity to image locations having accepted matches in another view. For a horizontally rectified pair, a left-image map can storewhere is the matching right-image horizontal coordinate. Constructing the map therefore requires stereo correspondence, rather than only reading individual pixel intensities. OpenCV's tutorial demonstrates block matching and shows how weak texture and spurious matches affect the result.[ref]
Depth Map from Stereo Images in the OpenCV-Python tutorials. Code; disparity image; texture_threshold, speckle and uniqueness filters
For matched coordinate origins, focal length 800 pixels and camera baseline 0.12 metres, valid disparities 20 and 40 pixels imply depths 4.8 and 2.4 metres. Thus a disparity map is not itself a metric depth map: its values must be interpreted using the calibrated geometry and representation. Rejected matches need an explicit validity convention. A displayed dark patch can mean an unavailable match rather than an infinitely distant surface, and an encoded invalid value must not be blindly substituted into .
Articles by others on the same topic
There are currently no matching articles.

