Как рассчитать FOV в градусах от фокусного расстояния или расстояния?

11

Как рассчитать поле зрения (или угол обзора) в градусах из следующих деталей:

  1. размер датчика (например, 1 ")
  2. расстояние до цели (например, 7 футов)
  3. фокусное расстояние (например, 30 мм)

Я нашел калькуляторы для этого здесь и здесь , но как они работают?

Виктор Мехта
источник
Как отметил Дэвид, (2) не имеет значения.
Унапьедра
@Unapiedra Но, посмотрите калькуляторы - многие предоставляют поля ввода и могут работать с этим.
Пожалуйста, прочитайте мой профиль
@mattdm, сбор данных и работа с ними тривиальны на бумаге. Если вы или OP хотите знать, как это сделать на веб-странице, StackOverflow будет место, чтобы спросить.
Унапьедра
В общем, два из трех деталей из вопроса достаточно. Мой ответ касается одного случая , но в других случаях может быть определена так же , как легко из модели.
Unapiedra
Ваш ответ хороший, и я думаю, что он охватывает то, что ищет Виктор, за исключением того, что я думаю, что вместо того, чтобы объявлять часть «неактуальной», было бы лучше объяснить, как это подходит. И я не думаю, что это вопрос веб-программирования. , только один о расчетах.
Пожалуйста , прочтите мой профиль

Ответы:

13

Калькуляторы, которые вы разместили, предназначены для довольно стандартных прямолинейных линз. Это означает , что вы можете использовать модель камеры Pinhole для расчета информации.

Графические довольно хорошо показывает, что происходит: Модель камеры-обскуры в одной плоскости

На горизонтальной оси вы видите f. Это фокусное расстояние объектива. Затем стрелка меченного Y1 представл ет изображение плоскость (где датчик сидит). Если датчик имеет половину размера y1, то угол зеленой линии с горизонтальным составляет половину вашего поля зрения .

Базовая геометрия может дать вам FOV: FOV = 2 * arctan(y1 / f)

Имейте в виду две вещи:

  1. Единицы измерения.
  2. y1это половина размера вашего датчика. Если у вас есть 1-дюймовый датчик, то половина размера будет 8 мм (как указано в комментариях mattdm), и ваш расчет даст вам FOV вдоль диагонали датчика. Если вы хотите его по горизонтали , то вы необходимо рассчитать ширину датчика и использовать это в качестве значения для y1.
Unapiedra
источник
2
Кроме того, имейте в виду, что то, что обозначено как 1-дюймовый датчик, на самом деле составляет около 16 мм по диагонали, намного меньше дюйма. См. Почему 1-
Пожалуйста, прочитайте мой профиль
2

№ 2 не должен иметь значения, за исключением возможной незначительной регулировки для изменения поля зрения с фокусировкой, но соотношение сторон будет иметь влияние. Также может потребоваться указать, ищете ли вы горизонтальное поле зрения или диагональ

Если бы у меня был объектив, я бы просто занялся низкими технологиями и сделал бы снимок с объектом известного размера. Это также будет учитывать любые другие факторы, которые могут быть в игре. Например, объектив типа «рыбий глаз» может иметь определенное поле зрения для полнокадрового датчика, но если у вас датчик меньшего размера, вы не сможете легко рассчитать значение поля зрения по какой-то простой формуле из-за искажения в объективе.

Дэвид Голдвассер
источник
Он хочет знать, как работают калькуляторы, которые явно не фотографируют известный объект.
Унапьедра