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

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

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

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

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

Ответы (2)

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

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

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

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

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

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

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

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

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