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