Как рассчитать расстояние до объекта на фотографии? - Фотопедия
35 голосов
/ 26 мая 2011

Если бы я сделал снимок ветряной мельницы на горизонте - учитывая, что я знаю размер сенсора, фокусное расстояние объектива и другие факторы, связанные с кадром - могу ли я рассчитать, насколько далеко объект находится от фотографа

Ответы [ 5 ]

34 голосов
/ 26 мая 2011

Единственный другой фактор, который вам нужен, - это высота объекта в реальной жизни (в противном случае вы могли бы фотографировать модель, которая гораздо ближе к камере).

Математика на самом деле не так сложна, соотношение размера объекта на датчике и размера объекта в реальной жизни такое же, как соотношение между фокусным расстоянием и расстоянием до объекта.

Чтобы определить размер объекта на датчике, определите его высоту в пикселях, разделите на высоту изображения в пикселях и умножьте на физическую высоту датчика.

Итак, вся сумма равна:

Distance to object equation

Давайте рассмотрим это уравнение.

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

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

Если мы сохраняем все остальное постоянным и увеличиваем высоту изображения, то расстояние увеличивается, как будто два объекта (одного размера, помните, что мы сохраняем все остальное постоянным) выглядят одинакового размера в обрезанном и необрезанном изображении тогда объект на необрезанном изображении должен быть дальше.

Если мы оставим все остальное постоянным и увеличим высоту объекта в пикселях, тогда расстояние уменьшится (мы сейчас находимся на знаменателе): два объекта одинакового размера, один занимает больше пикселей, это должно быть ближе.

Наконец, если мы оставим все остальное постоянным и увеличим размер сенсора, то расстояние уменьшится: два одинаковых по размеру объекта имеют одинаковую высоту в пикселях при съемке с помощью компактного устройства (маленький датчик, где 20 мм - длинный объектив) и при съемке с помощью зеркальной фотокамеры (большой сенсор, где 20 мм - широкая линза), тогда объект на DSLR-изображении должен быть дальше (потому что он появился того же размера, но с широкой линзой).

15 голосов
/ 26 мая 2011

Как отмечалось @ matt-grum, самая простая формула для оценки расстояния до объекта - это формула проекции точечного отверстия :

x/f = X/d

где x - размер объекта на датчике, f - фокусное расстояние объектива, X - размер объекта, и d - расстояние от узловой точки до объекта. x и f и X и d измеряются в одних и тех же единицах, например мм и м соответственно (для расчета x вам необходимо оценить размер пикселя для вашего датчика; например, для Pentax K20D это 23,4 мм / 4672 px ≈ 5.008e-3 мм / px, т.е. изображение длиной 100 пикселей соответствует x = 50,08e-3 мм).

В дальнейшем я предполагаю, что размер объекта ( X ) неизвестен, и единственными известными параметрами являются x (размер изображения) и f (фокусное расстояние).

Проблема в том, что мы не можем определить по одной фотографии, является ли маленький объект очень близким к камере или большим объектом далеко, потому что глубина резкости в пейзажных снимках обычно очень велика (и именно поэтому применима формула точечного отверстия ).

Чтобы решить эту проблему, мы можем использовать два или более изображений для измерения расстояния. При условии, что вы можете измерить все углы и расстояние между двумя положениями камеры, вы также можете рассчитать расстояние до удаленного объекта. Но измерение всех углов не легкая задача.

Более простой подход - сделать две фотографии, которые находятся на одной линии с объектом, с объектом в центре изображения. Пусть расстояние до объекта на первой фотографии будет d₁ , а размер изображения будет x₁ :

x_1/f = X/d_1

Затем, если мы переместим камеру с метров прямо к объекту, то на втором фото мы получим размер изображения x₂ , немного превышающий x₁ :

( note : знаменатель в следующем выражении неверен, вместо «d1» это должно быть «d2» или эквивалентно «d1-s»)

x_2/f = X/(d_1 - s)

Что дает нам

d_1 = s x_2 / (x_2 - x_1)

Очевидно, что если s недостаточно для существенного влияния на размер изображения, вы не можете надежно оценить расстояние и должны использовать более сложные методы. Чем больше разница x₂ - x₁ , тем лучше.

2 голосов
/ 12 августа 2015

Я знаю, что это старая ветка, но этот вопрос, похоже, возникает время от времени. Я добавил калькулятор для вычисления расстояния до объекта на изображении.

http://www.scantips.com/lights/subjectdistance.html

Вам все равно придется знать свои значения, чтобы заставить его работать, одно из которых - приблизительная реальная высота объекта. Обсуждается там.

1 голос
/ 10 сентября 2014

Вместо того, чтобы пытаться использовать формулы, если вы исследуете морские методы оценки расстояний, которые включают в себя некоторые основные "правила большого пальца", например, если вы стоите на высоте 1 фут над водой, вы находитесь в 3 морских милях от горизонта, если вы держите Ваш большой палец на расстоянии вытянутой руки от предмета, на который вы смотрите, покрыт, он имеет высоту 100 футов (я думаю). Большинство из них я забыл, так как я их больше не использую, но они работают, и как только они выучены и используются регулярно, они замечательно точны.

0 голосов
/ 06 января 2017

Простой ответ - нет. У вас есть две переменные и только одно уравнение.

Добро пожаловать на сайт Фотопедия, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...