Подтвердить что ты не робот

Можно ли измерить расстояние до объекта с помощью камеры?

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

Если возможно, где я могу найти учебник или информацию об этом?

4b9b3361

Ответ 1

Ну, вы должны прочитать, как ithinkdiff.com "измеряет" расстояние:

Использует угол iPhone для оценки расстояния до точки на земле. Держите iPhone перед собой, выровняйте точку в камере и получите прямой чтение расстояния. Затем расстояние можно использовать в инструменте скорости.

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

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

Ответ 2

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

alt text

На картинке выше показано, что я стоял вне дома. Горизонталь (d) - это расстояние, которое я хочу измерить, а вертикаль (h) - высота над землей, на которой я держу камеру. В этом случае "h" является известным значением, когда я держу камеру андроида на уровне глаз (около 67 дюймов или 1,7 метра). Когда я наклоняю камеру, чтобы направить ее прямо в точку, в которой мой дом встречает землю, все программное обеспечение, которое нужно сделать, это выработать угол (а) относительно вертикали, и он может вычислять "d", используя...

d = h * tan a

Ответ 3

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

Ответ 4

У вас есть угол в акселерометре телефона. Если вы вычислите касательную этого угла и умножьте ее на высоту объектива камеры, вы получите расстояние.

Ответ 5

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

1) Получите 2 изображения одного и того же объекта из двух разных положений камеры.

2) Расстояние или пиксели между объектами в 2 изображениях обратно пропорциональны расстоянию между камерой и объектом.

Реализация доступна на https://github.com/agnelvishal/Distance-between-camera-and-object Вот исследовательская статья http://dsc.ijs.si/files/papers/S101%20Mrovlje.pdf

Ответ 6

Нет. Только с двумя камерами в стерео режиме, например, с кинетом xbox 360. Требуется не менее 3 точек для триангуляции расстояния.

Ответ 7

Я думаю, что это приложение использует упомянутый подход MisterSquonk (его бесплатный). Смотрите технику "тригонометрии".

Ответ 8

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

Ответ 9

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