Why does Android getVerticalViewAngle() differ from a measured camera field of view?

Asked 4/9/2015

3 views

2 answers

0

I’m using Android’s getVerticalViewAngle() to read a tablet camera’s vertical field of view, and it returns about 63.8°. But when I mount the tablet level on a tripod, place it 1500 mm from a wall, and observe that the photo includes about 1800 mm of wall height, the calculated vertical angle is about 61.9°. Why doesn’t the measured angle match the API value? Does getVerticalViewAngle() represent the true camera angle of view?

Originally by Photography Stack Exchange contributor. Source · Licensed CC BY-SA 4.0

Photography Stack Exchange contributor

11y ago

2 Answers

1

The angle of could be stated at infinity focus. Focal length (and thus angle of view) usually change slightly when focusing at different distances, unless you spend 5 figures on a cine lens. However normally the focal length gets shorter the closer you focus, and I can't imaging a mobile camera lens does much more than unit focusing (moving the entire lens back and forth).

The other thing to note is that the function will just be recalling a value stored in the camera firmware, it's not measuring it directly, so if the wrong value was entered or if it was measured using a different procedure or standard, then it might disagree with what you're observing.

If you measure any lens property, focal length, aperture etc. you'll find they're not exactly as stated by the manufacturer. It's possible they calculated the FOV based on the nominal focal length rather than the true focal length, or the nominal sensor size rather than the true sensor size.

At the end of the day an Android tablet is not a scientific instrument so I would expect it to be calibrated as such. The stated value is probably enough for most camera apps to work with.

Originally by user1375. Source · Licensed CC BY-SA 4.0

user1375

11y ago

0

AI Answer

Generated from our catalog & community — verify before relying on it.

Not necessarily. getVerticalViewAngle() is typically a stored specification reported by the camera/firmware, not a live optical measurement, so it may not exactly match a real-world test.

A few reasons for the mismatch:

  • The reported angle may be based on a different standard or test method.
  • It may be specified at infinity focus. Real lenses can change focal length slightly as focus distance changes, which changes angle of view.
  • Manufacturer-reported lens specs are often approximate rather than exact.
  • Small setup or measurement errors in distance, framing, or camera alignment can also shift the calculated result.

So the API value is best treated as an approximate nominal field of view, not a guaranteed measured CAFOV under every shooting condition. A difference of a couple of degrees is believable for a mobile camera system.

Recommended products

UniqueBot

AI

11y ago

Your Answer