Если бы я сделал снимок ветряной мельницы на горизонте - учитывая, что я знаю размер сенсора, фокусное расстояние объектива и другие факторы, связанные с кадром - могу ли я рассчитать, как далеко находится объект от фотографа?
Если бы я сделал снимок ветряной мельницы на горизонте - учитывая, что я знаю размер сенсора, фокусное расстояние объектива и другие факторы, связанные с кадром - могу ли я рассчитать, как далеко находится объект от фотографа?
Ответы:
Единственный другой фактор, который вам нужен, - это высота объекта в реальной жизни (в противном случае вы могли бы сфотографировать модель, которая гораздо ближе к камере).
Математика на самом деле не так сложна, соотношение размера объекта на датчике и размера объекта в реальной жизни такое же, как соотношение между фокусным расстоянием и расстоянием до объекта.
Чтобы определить размер объекта на датчике, определите его высоту в пикселях, разделите на высоту изображения в пикселях и умножьте на физическую высоту датчика.
Итак, вся сумма:
Давайте рассмотрим это уравнение.
Если мы сохраняем все остальное постоянным и увеличиваем фокусное расстояние, тогда расстояние увеличивается (так как фокусное расстояние указано в числителе). Это то, что вы ожидаете, если вам нужно увеличить объектив, чтобы сделать один объект размером с другой объект одинакового размера, первый объект должен быть дальше.
Если мы сохраняем все остальное постоянным и увеличиваем реальную высоту объекта, то расстояние снова увеличивается, как если бы два объекта с разными реальными высотами выглядели одинаково по высоте на изображении, то более высокий объект должен быть дальше.
Если мы сохраняем все остальное постоянным и увеличиваем высоту изображения, то расстояние увеличивается, как если бы два объекта (одного размера, помните, что мы сохраняем все остальное постоянным) выглядят одинакового размера в обрезанном и необрезанном изображении, чем объект на необрезанном изображении должно быть еще дальше.
Если мы оставим все остальное постоянным и увеличим высоту объекта в пикселях, то расстояние уменьшится (теперь мы находимся на знаменателе): два объекта одинакового размера, один занимает больше пикселей, он должен быть ближе.
Наконец, если мы оставим все остальное постоянным и увеличим размер сенсора, то расстояние уменьшится: два одинаковых по размеру объекта имеют одинаковую высоту в пикселях при съемке с помощью компактного (маленький датчик, где 20 мм - длинный объектив) и снятого с помощью зеркальной фотокамеры (большой датчик где 20 мм - широкая линза), тогда объект на зеркальном изображении должен быть дальше (потому что он был того же размера, но с широкой линзой).
Как отметил @ matt-grum, самая простая формула для оценки расстояния до объекта - это формула проекции крошечного отверстия :
где x - размер объекта на датчике, f - фокусное расстояние объектива, X - размер объекта, а d - расстояние от узловой точки до объекта. x и f , а X и d измеряются в тех же единицах, например, мм и м соответственно (для вычисления x вам потребуется оценить размер пикселя для вашего датчика; например, для Pentax K20D это 23,4 мм / 4672 px ≈ 5,008e-3 мм / пикс., Т. Е. Изображение длиной 100 пикселей соответствует x = 50,08e-3 мм).
Далее я предполагаю, что размер объекта ( X ) неизвестен, и единственными известными параметрами являются x (размер изображения) и f (фокусное расстояние).
Проблема состоит в том, что мы не можем определить по одной фотографии, является ли маленький объект очень близко к камере или большой объект далеко, потому что глубина резкости при пейзажной съемке обычно очень велика (и поэтому применима формула точечного отверстия).
Чтобы решить эту проблему, мы можем использовать два или более изображений для измерения расстояния. При условии, что вы можете измерить все углы и расстояние между двумя положениями камеры, вы также можете рассчитать расстояние до удаленного объекта. Но измерение всех углов не легкая задача.
Более простой подход - сделать две фотографии, которые находятся на одной линии с объектом, с объектом в центре изображения. Пусть расстояние до объекта на первой фотографии будет d₁ , а размер изображения будет x₁ :
Тогда , если мы перемещаем камеры сек метров непосредственно к объекту, а затем на втором фото мы имеем размер x₂ немного больше , чем x₁ :
( примечание : знаменатель в следующем выражении неверен, вместо «d1» он должен быть «d2» или эквивалентно «d1-s»)
Что дает нам
Очевидно, что если s не достаточно, чтобы существенно повлиять на размер изображения, вы не можете надежно оценить расстояние, и вам нужно использовать более сложные методы. Чем больше разница x₂ - x₁ , тем лучше.
Я знаю, что это старая тема, но этот вопрос, кажется, возникает время от времени. Я добавил калькулятор для вычисления расстояния до объекта на изображении.
http://www.scantips.com/lights/subjectdistance.html
Вам все равно придется знать свои значения, чтобы заставить его работать, одним из которых является приблизительная реальная высота объекта. Обсуждали там.
Вместо того, чтобы пытаться использовать формулы, если вы исследуете морские методы оценки расстояний, которые включают в себя некоторые основные «эмпирические правила», например, если вы стоите на высоте 1 фут над водой, вы находитесь в 3 морских милях от горизонта, если вы держите большой палец на Руки вытянуты, объект, на который вы смотрите, покрыт, он имеет высоту 100 футов (я думаю). Большинство из них я забыл, так как я их больше не использую, но они работают, и как только выучены и используются регулярно, они замечательно точны.
Простой ответ - нет. У вас есть две переменные и только одно уравнение.