What camera viewing angle do you need for a multi-camera stitched 360 degree picture?

23 Views Asked by At

TL;DR Is there a way to work out what field of view angle you need for a camera lens in order to stitch multiple images together (say four images) to produce a seamless 360 degree panorama?

Details

I would like to set up a camera on the highest point of my land, to give a 360 degree view.

360 degree cameras are available but they are expensive, so I would like to use multiple cheaper cameras and stitch the images together.

However I am uncertain as to what viewing angle (horizontal field-of-view, HFoV) each camera would need, in order to facilitate stitching into a 360 degree view.

If you imagine having four cameras positioned at the corners of a square, each looking away from the centre point of the square, then naively you'd need a HFoV of 270 degrees to see everything, but there would be a lot of overlap with multiple cameras capturing the same part of the scene (thus wasting pixels that could be better used to give a higher definition image).

As you reduce this HFoV down below 270 degrees you'd still have a panorama of the horizon, you'd just end up with a few blind spots close to the camera array, between each pair of cameras. It wouldn't be until you got down to a 90 degree FoV that you'd have a blind spot between each camera pair extending out to infinity.

So I am looking for a formula that given a HFoV, will calculate how far away from the camera array until a complete panorama can be formed - and in reverse, given a distance from the camera array, what HFoV is needed to capture a complete panorama from that distance out to the horizon?

I am only looking at four cameras at this point but if the formula worked for an arbitrary number of cameras spaced equally apart in a circle of a given radius, it might be more useful for the future.

I am sure this could be calculated fairly simply by treating the space between two cameras as fitting a triangle (with one edge of the viewing angle as the hypotenuse) however I'm wondering whether there's a more elegant way, especially taking into account more than four cameras.

EDIT: Here is a diagram that shows an example with a HFov of 102 degrees resulting in a blind spot up to 134 cm/inches from the cameras if the cameras are on opposite corners of a 20 cm/inch square.

Diagram showing the angles and desired measurement