Почему расчетное расстояние до объекта на изображении меняется при масштабировании?

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

Есть ли что-то, что я должен изменить в уравнении, кроме фокусного расстояния? объект на моем изображении - мяч для настольного тенниса размером 40 мм.

при условии, что вы не обрезаете / масштабируете изображение, единственная переменная, которую вам нужно изменить при масштабировании, — это фокусное расстояние. Если бы вы могли опубликовать изображения и свои расчеты, возможно, было бы возможно выяснить, что пошло не так. В противном случае ответ на ваш вопрос — простое «нет»!
@MattGrum извините, из-за моей репутации я не могу публиковать изображения. из данных Exif я обнаружил, что фокусное расстояние меняется каждый раз, когда я увеличиваю. и в приведенном выше уравнении я менял это каждый раз и ожидаю одного и того же ответа, но, к сожалению, получаю разные значения для разного масштаба.
@MattGrum Я упомянул уравнение, которое использую в вопросе, каждый раз, когда я фокусирую фокусное расстояние, высота объекта меняется, включая это.
Вы можете загрузить изображения на imgur.com и опубликовать ссылку?
NB указанное фокусное расстояние exif, вероятно, не очень точное!
(Этот вопрос на самом деле является комментарием к ответу, не так ли? В любом случае я проголосовал за это; еще один голос, и вы сможете публиковать изображения.)
@mattdm Нет, это мне не нужно для моего текущего проекта, и я нашел это уравнение, и я был очень доволен, пока не обнаружил проблему с масштабированием. Сделал много поисков, но безрезультатно, поэтому я спросил здесь.
правда, данные Exif, которые я получил из Windows PhotoViewer и других приложений exif, различаются.
@MattGrum Еще одна деталь: я использую мяч для настольного тенниса в качестве объекта, потому что он имеет точный размер 40 мм.

Ответы (2)

Теоретически единственный фактор, который вам нужно учитывать в следующем уравнении при масштабировании, — это фокусное расстояние:

distance to object (mm) = focal length (mm) * real height of the object (mm) * image height (pixels)
                          ---------------------------------------------------------------------------
                          object height (pixels) * sensor height (mm)

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

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

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

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

вы правы, весь мой подход предназначен для измерения, и, используя формулу, которую вы упомянули, я мог рассчитать с очень хорошей точностью до 1 м без увеличения, даже проверил свой результат с помощью лазера, я мог получить точность, близкую к этому, разница в 5мм была.

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

вы имеете в виду "высоту изображения" или "высоту объекта" ??
если бы вы говорили о высоте объекта в пикселях, то да, каждый раз она меняется, и я тоже меняюсь в уравнении.
Вы сказали, что меняете только фокусное расстояние в своем вопросе ... высота объекта ( я говорю о пикселях.
при увеличении фокусного расстояния высота объекта также увеличивается, извините, я забыл упомянуть об этом в вопросе.
Насколько сильно отличаются результаты?
около 14-15 мм разница есть.
Мм понятно. Я не знал, что разница была такой незначительной.
я хотел бы иметь разницу намного меньше, скажем, 1 мм
@user1767798 user1767798 вы используете неправильный инструмент для работы, центр проекции будет перемещаться намного больше, чем на 1 мм при масштабировании, вам придется полностью откалибровать объектив на всех фокусных расстояниях. Для чего именно вы используете это измерение?