2012-01-02 2 views
42

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

Может ли кто-нибудь дать мне/предложить мне правильный путь или какой-либо пример, чтобы я мог больше узнать об этом требовании.

Я попытался это:

http://android-er.blogspot.in/2012/04/gets-distances-from-camera-to-focus.html

+2

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

+0

У меня такая же проблема. Пожалуйста, помогите мне. Если любая идея. Спасибо заранее. – jagdish

+0

Вы нашли решение еще? –

ответ

2

Вы не можете .. Вы должны знать:

  • Насколько это объект (вы можете узнать свое местоположение GPS .. но местонахождение объекта?)
  • Что такое фокусное расстояние камеры

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

+0

Если вы знаете угол обзора камеры ... –

+4

да это возможно. здесь: http://stackoverflow.com/questions/5284493/get-angle-of-elevation – drulabs

7

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

height = arctan(angle) * distance 

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

viewportAngle = tan(ruler_length/distance) 

Тогда предположим, что ваша камера 480px высокий (дешевый веб-камера), а угол обзора составляет 20 °. Если у вас есть объект на экране, высота которого составляет 240 пикселей, то его угол составляет 10 °. Если вы знаете, что он находится в 2 футах от вас, вы бы сказали, что 2 feet * arctan(10°) = ~4.1 inches высокий. (Я думаю ... это 2 часа, так что это может быть немного)

+1

хорошо, но, как указал @ Péter Varga, вам нужно знать расстояние от объекта. – TheVillageIdiot

+2

Кажется, что приложение использует акселерометр для измерения угла к основанию объекта, а затем принимает высоту телефона от земли (обычно около 5 футов) для измерения расстояния. Вы могли бы сделать что-то подобное, но это было бы не особенно точно. – Tim

+0

@Mansi Сначала вы должны получить представление о концептуальных методах, используемых перед написанием любого кода. http://en.wikipedia.org/wiki/Inverse_trigonometric_functions – Tim

1

Прежде всего, я скажу, что Nice Thaught разрабатывает такое приложение.

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

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

Все самое лучшее. :))

+0

Спасибо iDroid .. :) – anddev

27

Я думаю, что знаю, о чем вы просите. Вот что вы можете сделать.

сначала получить высоту человека сказать h метров.

sample image

если вы можете рассчитать высоту камеры от земли (используя высоту, если человек есть ч) и получить углы A и B, используя гироскоп или что-то из Android, то вы можете рассчитать высоту объекта используя приведенную выше формулу.

Разве это не то, что вы искали ???

дайте мне знать, если вам нужно объяснение.

+0

Это сработало на android? Я пробовал, но не работал? если у вас есть демо-образец, вы можете загрузить его там, где он может помочь другим .. :) – Sumant

+2

действительно сложно вычислить значение «h» - для этого нет API! – Stan

+1

не требуется апи. Используйте математику для вычисления H по формуле. «h» - это то, что вы должны предполагать исходя из высоты человека. Возможно, возьмите высоту человека в качестве входного сигнала. – drulabs

13

Для измерения расстояний с помощью одной камеры вам необходимо знать некоторые цифры. Чтобы измерить высоту чего-либо, скажем, стул, единственное, что у вас есть, это размер его в камере (который находится в пикселях и может быть преобразован в дюймы с использованием размера экрана), вот и все. Шанс измерить высоту и ширину - это ссылка, скажем, человек высотой 6 футов, стоящий рядом со стулом.

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

Так что, используя камеру и только камеру, это невозможно. Вам нужно знать расстояние как-то, или нужна ссылка.

Если вы используете приложение для измерения высоты предметов, которые знаете местоположение, то с помощью GPS вы можете найти расстояние, а отдых - математика.

Я нашел некоторые ссылки с помощью Google, они могут помочь.

  1. http://forestjohnson.blogspot.com/2010/01/how-to-measure-size-of-object-using.html
  2. http://gigaom.com/mobile/how_to_measure_/
  3. http://www.iphonelife.com/blog/5/cameasure-use-your-camera-measure-size-or-distance

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

Один из способов - использование нескольких камер, которые могут быть скомпенсированы с использованием нескольких снимков, сделанных на известном расстоянии. Таким образом, приложение может попросить пользователя сделать несколько изображений, отслеживать расстояние с помощью GPS и, возможно, оно может работать.

Смотрите эти ссылки, а также:

  1. http://iopscience.iop.org/1742-6596/48/1/074/pdf/1742-6596_48_1_074.pdf
  2. http://www.optical-metrology-centre.com/Downloads/Papers/Photogrammetric%20Record%201994%20Automated%203-D%20measurement.pdf
3

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

Даже газета печатается с некоторыми отметками по углам.

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

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

2

Если у вас есть андроид смартфон, то Smart Measure приложение будет измерять расстояние и высоту объекта:

image

+1

Это приложение потрясающе на приемлемом уровне по сравнению с другими приложениями. Но он не может измерить правильную высоту объекта, когда камера близка к объекту. – nhoxbypass

Смежные вопросы