What should be the distance between the two cameras?
38 views (last 30 days)
Julius Muschaweck on 13 Sep 2021
With a stereo vision camera pair, intended to create pairs of images for 3D vision, the key quantity is the "stereo angle": The angle between the two cameras as seen from the object you're imaging. Taking @Dave B's number of 63 mm, that angle would be 100 mrad = 5.7° when the object is 630mm away from the cameras. With the same camera separation, a more distant object is seen with a smaller stereo angle, and the 3D impression is less strong.
So, if you take a picture of a scene, and you want to present the result to a human using a 3D monitor, aiming for a realistic result, 63 mm is an excellent starting point. Larger camera separation creates a stronger 3D impression, which may look unnatural. For professional video (like shooting a movie), the cameras and lenses are way too big to put them 63 mm apart, and the two big cameras are then mounted on a beam splitter to make smaller camera separation possible.
However, when magnification comes into play, things change. Typical binoculars have a lateral shift of the (parallel) optical axes of eye and viewing line. Binocular makers choose to set the viewing lines further apart, precisely to create good 3D impression when looking at distant objects. If you use cameras with very long focal length tele lenses, do it like the binocular makers. On the other hand, if you look at small objects with small cameras (e.g. cell phone camera modules) from a very short distance, then the cameras must be much closer to each other. This is what 3D stereo digital surgery microscopes do: They look at the human tissue from about 200 mm, with a distance of about 30 mm between the lens apertures, which corresponds to looking with your eyes at an object about 450 mm away, like you would when you work with your hands without optics in between.
In my experience, a viewing angle af 5° to 8° is a good starting point for such 3D images.
However, when stereo cameras are used for technical purposes (3D measurements), I agree with @Walter Roberson : The separation may be much larger.
Dave B on 12 Sep 2021
This isn't a very MATLAB-y answer, but the lenses in stereo cameras typically try to replicate the distance between the eyes (according to wikipedia).
The average interocular distance for an adult is about 63mm: https://www.allaboutvision.com/eye-care/measure-pupillary-distance.