MATLAB Answers

What should be the distance between the two cameras?

4 views (last 30 days)
alireza akbari
alireza akbari on 12 Sep 2021
Commented: Walter Roberson on 13 Sep 2021
HI
I have 2 separate cameras
What should be the distance between the two cameras for stereo vision?
  1 Comment
Julius Muschaweck
Julius Muschaweck on 12 Sep 2021
At what distance from the camera are the objects you want to view in 3D?
And what is the field size of the cameras (the angle between the optical axis and the corner of the field of view?

Sign in to comment.

Answers (2)

Julius Muschaweck
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
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.
  2 Comments
Walter Roberson
Walter Roberson on 13 Sep 2021
For example, if you wanted to be able to see how the right face of the top of the two blocks is cut, you would need a wider separation than normal (and you might need extra cameras if you wanted to be able to reconstruct the objects without ambiguity.)

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by