Ask Your Question

Revision history [back]

The disparity algorithms in OpenCV only look for matches of a small square window patch in the left and right image, with only the x value differing. For this to be effective, each stereo camera has been previously calibrated for distortion, rotation, translation and then the images from each camera are rectified (simple matrix multiplication) before the disparity match attempt.

A disparity match algorithm could vary y as well as x offset between left and right images. If uncalibrated image views are coming in, then significant rotation, focal length, or distortion differences amounting to a large fraction of a pixel between the cameras also have to be searched. This is computationally very expensive, when calibration and rectification can effectively cancel all this extra repeated work.

The disparity algorithms in OpenCV only look for matches of a small square window patch in the left and right image, with only the x value differing. For this to be effective, each stereo camera has been previously calibrated for distortion, rotation, translation and then the images from each camera are rectified (simple matrix multiplication) before the disparity match attempt.

A disparity match algorithm could vary search y as well as x offset between left and right images. If uncalibrated image views are coming in, then significant rotation, focal length, or distortion differences amounting to a large fraction of a pixel between the cameras also have to be searched. This is computationally very expensive, and senseless, when calibration and allows rectification can to effectively cancel all this extra repeated work.